콘텐츠로 건너뛰기

Programmer

Lombok @Data에서 기본 생성자는?

Lombok을 사용했을 때, @Data를 붙이면 기본생성자로 @NoArgsConstructor를 생성해주는 줄 알았다. 그런데 누가 물어봐서 대답하려고 보니, 명확하게 모르는 것을 깨닫고 찾아보았다. 1 @Data를 붙이게 되면, 일반적으로는 @NoArgsConstructor를 만들어주는 것처럼 보인다. 하지만 엄밀히 말하면 @NoArgsConstructor가 아니라 @RequiredArgsConstructor가 생성된다. 즉, final접근자가 붙어있거나 @Nonnull 애노테이션을… 더 보기 »Lombok @Data에서 기본 생성자는?

ApiService에 대한 Mock Test 예제

Api를 호출하는 서비스에 대한 테스트는 잘 하지 않는 경우가 많다. 혹은 @Ignore를 붙여놓고 필요시에만 풀어서 쓰는 경우도 있다. Mock Server를 제공해서 테스트 할 수 있는 걸 알고 있는데, 자주 쓰지 않으니 쓸 때마다 헷갈려서 기록해둔다.

 

Spring Batch에서 Application 설정

새로 스프링 배치 프로그램을 만들었는데, 테스트 환경에서는 특별히 이슈가 없다가 운영 환경에서 오류가 발생했다.

결국은 8080 포트가 충돌나서 오류가 발생한 것이었다. 배치를 여러 번 실행시키는 경우 톰캣이 제대로 shutdown시키지 못해서 발생하는 문제였다. 그런데 스프링 배치인데, 굳이 톰캣을 8080 포트로… 더 보기 »Spring Batch에서 Application 설정

EntityUtil.java 구현체

Java에서 Jpa를 쓰다보면, 항상 select를 선으로 진행하게 되는 경우가 많다. 예를 들어, name과 age를 입력했는데, name이 unique하다면, DB에서 name으로 select를 해보고, 있으면 setAge()를 통해서 update를 진행해야 하고, 없으면 해당 Entity를 새로 생성해서 insert를 해야한다. 그래서 아래와 같은 로직을 사용하는 경우가… 더 보기 »EntityUtil.java 구현체

Spring @ConfigurationProperties 분석

배경 현재 개발하고 있는 것은 ‘서비스의 정산’에 대한 서비스이다. 그런데 정산이라는 것이 결제가 있다면 항상 들어가야 하는 미들웨어와 같은 성격을 지니고 있다.그러다보니 서비스의 설정 정보들이 각 프로젝트에 혼재해있어서 정리를 해보려고 한다.   현재 상황 전체적으로 정산에 대한 공통 부분을 사용하기… 더 보기 »Spring @ConfigurationProperties 분석

intellij 단축키 – 최근 수정 내용 탐색 / 비교

별 건 아닌데, 기존에는 몰랐던 intellij 단축키 중에 편리할 것 같은 걸 찾아서 기록해둔다. 평상시에는 cmd+]랑 cmd+[를 사용해서 코드를 탐색했었는데, 수정된 것만 탐색해주는 기능이 있었다.   cmd+shift+back은 가장 최근에 수정하게 된 지점으로 커서를 옮겨준다. 거기에 cmd+option+shift+화살표를 누르면, 수정된 내용까지 diff… 더 보기 »intellij 단축키 – 최근 수정 내용 탐색 / 비교

Spring Data Rest URL 생성 분석

최근 업무에서 /api/entities이란 URL이 존재하는데, 아무리 Source를 뒤져봐도 해당 URL을 찾을 수 없었다.

몇 번 삽질을 하다가 결국 spring-data-rest를 사용했음을 알게 되었고, 해당 Library를 초기 분석한 내용을 기록해둔다. 공식문서1에 따르면 dependency는 아래처럼 설정해주면 된다.

그리고 기본 BaseUrl은 아래처럼… 더 보기 »Spring Data Rest URL 생성 분석

Future return에 대한 테스트 만들기

주로 오류에 대한 모니터링 메시지 등은 logical flow에 크게 영향을 주지 않기 때문에 @Async를 사용하여 분리하는 경우가 많다.

그런데 이런 경우 Future type의 return을 가지면 어떻게 테스트 코드를 만들어야 할 지 곤란한 경우가 있어서 기록해둔다. 1 이럴 때 사용하는… 더 보기 »Future return에 대한 테스트 만들기

intellij console log line 증가

배치 작업을 하다보니까 테스트 케이스를 돌렸을 때, 로그가 넘쳐흘러서 보이지 않는 케이스가 발생했다. 예전에 이런 걸로 한 번씩 설정하곤 했었는데, 할 때마다 기억이 나지 않아 구글에 의존하게 된다. 어느 블로그1에서 아래와 같은 해답을 찾았다. 텍스트 편집기를 열고 idea.cycle.buffer.size 속성을 바꿔준다… 더 보기 »intellij console log line 증가

JPA Page 쿼리는 Immutable List를 반환한다

이번에 맡은 업무에서 Spring Batch를 중점적으로 사용하고 있는데, 기존 로직을 리팩토링하면서 겪게 된 이슈를 기록해본다. 먼저 기존 로직은 아래와 같다. (코드 스니핏이고, 일부 업무와 관계된 네이밍은 모두 dummy로 치환하였다) 결국 배치로직에서 bulk로 읽어온 것을 하나씩 read/process/write 구조로 처리하고, 해당 내용이… 더 보기 »JPA Page 쿼리는 Immutable List를 반환한다