서론 Spring Batch를 사용해본 경험이 없었다. 최근에 간단한 배치 잡(Batch Job)을 개발하게 되었다. 간단한 배치 잡 코드를 작성 후 테스트 코드를 통해 검증을 하려고 해 보았는데, 설정해주는 과정에서 배우고 삽질한 내용을 공유한다. spring-batch-test 의존성은 최신 버전으로 진행했다. 의존성 추가 https://mvnrepository.com/artifact/org.springframework.batch/spring-batch-test Spring Boot로 시작했다면 starter-test 의존성은 있을 거고, spring-batch-test 의존성을 따로 추가해준다. 이 의존성 추가로 @SpringBatchTest 어노테이션 및 배치 잡 테스트에 사용되는 Util 클래스..
PageableExecutionUtils (Spring Data Core 2.5.4 API) docs.spring.io PageableExecutionUtils는 Spring Data 모듈에 있는 추상 클래스다. 이 클래스에는 getPage()라는 메서드만이 있고, 웹 서비스에서 빈번히 제공해야 하는 Paging 기능을 제공한다. public static Page getPage(List content, Pageable pageable, LongSupplier totalSupplier) 메서드를 보면 3개의 인자를 받는다. content는 실제 page에 담길 데이터를 뜻한다. pageable은 paging 관련된 정보를 닮고 있는 Pageable 객체를 의미한다. totalSupplier는 내가 호출하는..
이전에 재밌는 문제를 풀었다. 관련 내용은 아래 포스팅 참고. 1828. Queries on Number of Points Inside a Circle Queries on Number of Points Inside a Circle - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. l.. doljae.tistory.com 사실 이 문제는 문제 자체가 주는 의미도 있지만, Python을 알고리즘 문제 해결에 사용하는 사람들은 한 번쯤은 생각해볼 부분이 있다. 바로 거듭제곱 연산이다. Py..
21.10.08. 업데이트 Xcode homebrew iterm 폰트 바꾸기 한글 깨짐 해결 투명도 조절 color scheme 수정 oh-my-zsh 설치 테마 변경 플러그인 설치 호스트 이름 가리기 문단 줄바꿈 자주 사용하는 명령어 alias 설정 커서 vertical 맥 자체 설정 키보드 반응속도 올리기 caps lock 한영 전환 끄기 독 및 기타 애니메이션 속도 없애기 트랙패드 피드백 최대로 spotlight 끄기 전역 다크 테마 finder에 user(사용자) 폴더 보이게 하기 다운로드 부채모양으로 펼쳐지는 것 없애기 스크린샷 저장 경로 설정 한글 키보드 시 백틱을 원화가 아니라 `로 설정 핫 코너 스크롤 막대 보기 항상으로 설치 애플리케이션 AppStore easyres runcat hidd..
비즈니스 로직 구현상의 편의와 하위 호환성을 위해 아무것도 하지 않는 메서드를 호출하게 되는 경우가 있다. public abstract class Beer { private String name; private LocalDateTime expirationDate; abstract void addAlcohol(int amount); } 주류회사의 서비스이고, Beer 클래스의 구현체가 굉장히 많다고 가정하자. 비즈니스 로직에는 반드시 addAlcohol()을 호출하고 있다. public class Coffee extends Beer { @Override void addAlcohol(int amount) { // do nothing } } 그런데 갑자기 커피를 만들어 팔려고 한다면...? 커피는 알코올이 들..
서비스에서 생성된 객체에 대한 검증 과정은 반드시 필요하다. 검증하는 방법 및 검증하는 대상은 도메인과 비즈니스 로직에 따라 다르기 때문에 이에 맞는 테스트 코드를 작성하는 건 쉽지 않다. 그럼 객체가 특정 인터페이스 및 클래스를 상속받았다는 것을 테스트 코드로 작성하려면 어떻게 해야 할까? AppleSilicon.java @Getter @Setter @NoArgsConstructor @AllArgsConstructor public abstract class AppleSilicon { private int ram; private int ssd; private int gpu; private String deviceType; public static AppleSilicon makeAppleDevice(int..