일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- java
- nodeJS
- spring security
- Effective Java
- Babel
- javascript 기초
- 자바스크립트
- requestbody
- Intellij
- javascript 값
- 이펙티브 자바
- webpack
- spring batch #스프링 배치 #스프링 배치 중복 실행
- 자바
- javascript type
- javascript
- you don't know js
- Redis
- java.util.LinkedHashMap cannot be cast
- Spring Session
- CAS
- webstorm
- Spring
- ES6
- javascript value
- 이펙티브자바
- JetBrains
- effectivejava
- ECMA2015
- javascript native
- Today
- Total
귀찮지만 만들어보자
스프링 배치를 제대로 개발해본 경험이 없어서 이런 경우에 어떻게 할지 난감했습니다 실행 주기가 5분인 배치에서 이전에 실행했던 배치가 아직 끝나지 않았는데 다음 배치가 시작되면 어떻게 할까? 처음에 이런 상황에서 어떻게 대처할지 생각하다가 떠올랐던건 상태 플래그를 두고 관리하는 방법이었습니다 아래와 같이 thread-safe한 set 을 만들고 job의 중복 여부를 set으로 관리하는 방법이었는데... 썩 좋아보이는 코드는 아니어서 조금 더 찾아봤습니다 @Bean fun rewardJobListener(): JobExecutionListener { return object : JobExecutionListener { val RUNNING_JOBS: Set = Collections.synchronizedS..
다중정의는 신중히 사용하라 public class CollectionClassfier { public static String classify(Set s) { return "집합"; } public static String classify(list list) { return "리스트"; } public static String classify(Collection c) { return "그 외"; } public static void main(String[] args) { Collection[] collections = { new HashSet(), new ArrayList(), new HashMap().values() }; for (Collecstion c: collections) { System.out..
메서드 시그니처를 신중히 설계하라 - 메서드 이름을 신중히 짓자.이게 제일 어렵다 우웩 - 편의 메서드를 너무 많이 만들지 말자이건 유틸성으로 사용하는 메서드를 만들어서 사용하는 경우뿐만 아니라, 외부 라이브러리를 사용하는 경우 또한 마찬가지다. 자바의 장점이 활용할 수 있는 라이브러리가 많다는 점인데.. 간혹 이게 장점인지 단점인지 분간이 안갈때가 있다. 분명 같은 역할을 하는 유틸인데 spring에서 만든것도 있고, apache에서 만든것도 있고.. 그래서 협업하는 단계에서 골치아플 때가 많다. - 매개변수 목록은 짧게 유지하자4개 이하가 좋다고한다. 과하게 긴 매개변수 목록을 짧게 줄이는 방법 1. 메서드를 쪼갠다 - 여러개의 메서드를 조합해서 사용하는 방식이다. 잘못하면 메서드의 개수만 많아질 수..