전체 글

TIL(Today I Learned)

[Today I Learned - 17] ArrayList 의 sort() 오류 분석

1. 무슨 문제가 있었는지 기능 개발 이후 테스트 하는 중에 NumberForamtException 이 발생했다. Long.parseLong("주문번호") 메서드를 사용하고 있었고 주문번호는 일반적으로 Long 타입이지만 수동으로 생성한 주문의 경우 랜덤 문자열을 사용한다. 수동으로 생성한 주문 번호를 고려하지 못한 코드였고 이러한 경우 당연히 NumberFormatException 이 발생할 수 있다고 생각했다.   하지만 예외가 발생하는 상황이 일관되지 않다는 것이다. 아래의 코드는 예외가 발생한 코드이고 리스트에 담긴 오더 객체를 오더번호로 정렬하는 로직을 수행하는 도중에 예외가 발생했다.List orderList = Lists.of(order1, order2, order3);orderList.so..

TIL(Today I Learned)

[Today I Learned - 16] JpaAuditing 적용으로 인한 단위 테스트 실패

1. 무슨 문제가 있었는지? 현재 프로젝트 환경은 SpringSecurity를 통해 사용자를 인증하고 JpaAuditing 기능을 통해 {생성한 사람, 생성일, 수정한 사람, 수정일} 을 자동으로 주입해주고 있다. JpaAuditing 기능을 적용하면서 기존에 {생성한 사람, 생성일, 수정한 사람, 수정일} 에 대해 직접 설정했던 코드를 제거하였는데 이후 데이터를 저장하는 단위 테스트에서 아래와 같은 오류가 발생하였다. could not execute statement [Column 'create_user' cannot be null] 2. 문제의 원인은? JpaAuditing 을 도입하면서 기존에 {생성한 사람, 생성일, 수정한 사람, 수정일} 에 대해 직접 설정했던 코드를 제거하였고 아래와 같이 Sp..

TIL(Today I Learned)

[Today I Learned - 15] JpaPagingItemReader Limit, Offset not working - (3)

1. 무슨 문제가 있었는지? Chunk 기반의 스프링 배치를 개발하고 있는데 JpaPagingItemReader를 사용했을 때 PageSize를 설정해도 limit과 offset이 설정되지 않는 문제가 발생해서 원인을 분석중이다. 지난 번 포스팅에서는 ItemReader 의 동작 과정을 따라가던 중 설정했었던 LIMIT 정보가 사라지는 것을 확인하였다. 이번 포스팅에서는 그 원인을 찾아보려고 한다. https://lazy-man.tistory.com/86 [Today I Learned - 13] JpaPagingItemReader Limit, Offset not working - (1) 1. 무슨 문제가 있었는지? 스프링 배치를 이용하여 Chunk 기반으로 개발하고 있었는데 ItemReader를 구현하는..

TIL(Today I Learned)

[Today I Learned - 14] JpaPagingItemReader Limit, Offset not working - (2)

1. 무슨 문제가 있었는지? Chunk 기반의 스프링 배치를 개발하고 있는데 JpaPagingItemReader를 사용했을 때 PageSize를 설정해도 limit과 offset이 설정되지 않는 문제가 발생해서 원인을 분석중이다. 지난 번 포스팅에서는 Chunk 기반의 트랜잭션이 어떻게 설정되고 ItemReader, ItemProcessor, ItemWriter 가 어떻게 사용되는지 살펴보았다. 이번 포스팅에서는 문제의 원인일 가능성이 높은 ItemReader에 대해 좀 더 자세히 분석해보도록 하자. https://lazy-man.tistory.com/86 [Today I Learned - 13] JpaPagingItemReader Limit, Offset not working - (1) 1. 무슨 문제..

lazy man
Lazy Man's Blog