spring.config.import 내에서 원하는대로 override 가 이루어질까?

Spring Boot application 을 구성하다보면 여러 yaml 이나 properties 파일들을 이용해 properties 를 정의한다. 또한 프로젝트 구성에 따라 분리된 여러 파일에 나누고 조합하며, 여러 서브 모듈에 properties 가 분리 되는 구성을 가져가기도 한다. 그리고 이 경우 불러오는 순서는 꽤 복잡하지만 대부분 익숙하게 알고 있는 범위는 이 순서이다. 이 외에도 spring.config.import 더보기…

non-blocking UUID generator

UUID UUID 레코드 레이아웃 이름 길이 (byte) 길이 (hex) 길이 (bits) 내용 time_low 4 8 32 시간의 low 32비트를 부여하는 정수 time_mid 2 4 16 시간의 middle 16비트를 부여하는 정수 time_hi_and_version 2 4 16 최상위 비트에서 4비트 “version”, 그리고 시간의 high 12비트 clock_seq_hi_and_res clock_seq_low 2 4 16 최상위 비트에서 1-3비트는 더보기…

[Spring Batch] Implement of Aggregated Item reader

들어가기에 앞서 SQL 을 이용하다보면 GROUP BY 절을 자주 사용하게됩니다. Batch 의 Item reader 에서도 GROUP BY 절을 사용하여 grouped item 을 가져오면 좋겠으나 집계되어 반환되는 record 의 수가 1이기 때문에 item reader 에 사용하기에는 애로사항이 있었습니다. 이를 Custom row mapper 와 Custom result set extractor 구현으로 해결했던 사례를 공유하고자 더보기…

[Spring Batch] CSV Item reader 구현하기

1. 들어가기에 앞서   현재 파트 내에서 Batch 관련 작업을 많이 하고 있습니다. SCDF 와 Confluent Kafka 로 전향하는 것을 다음 페이즈로 준비하고 있어, 현재 개발환경은 Spring Batch 프레임워크를 이용하고 있습니다. 따라서 한동안 Spring batch 를 사용하며 겪었던 내용들을 작성하고자 합니다.     2. FlatFileItemReader Spring batch 로 다양한 Batch 더보기…

Spring framework test 실행시 로그 줄이기 (logback-test.xml)

Logback Spring framework 환경에서 테스트 코드 실행시, testbed profile 에 대해 별다른 logback 설정이 없다면 , 아래와 같이 debug 로그부터 info 로그까지 바리바리 올라온다.   하지만 대부분의 로그는 assertion 에 관한 로그가 아닌, springframe context load, configuration 등에 관한 로그이다. 따라서 test 에 집중할 수 있도록 환경을 조성한다.   logback-test.xml 더보기…

[Java] 당신이 SimpleDateFormat 을 쓰지 말아야 할 이유

Why need to not use SimpleDateFormat? 들어가기에 앞서 제목이 좀 자극적이었나요? 전혀 자극적이지 않습니다. 엄밀하게는, production 에 SimpleDateFormat 을 쓰면 안되는 이유입니다. 더 엄밀하게는, multi-thread 환경에서 사용하면 안되는 이유입니다.   SimpleDateFormat 이란? Java7 에서 제공하는 (locale sensitive 한) SimpleDateFormat 클래스는 다음과 같은 역할을 합니다. String 을 파싱하여 Date 객체를 생성합니다. 더보기…

[Chrome] 시스템의 hosts 정보를 변경했는데 즉각 반영되지 않을때

들어가기에 앞서 프론트엔드 개발자분들이 주로 겪을 법한 상황입니다.   /etc/hosts 혹은 drivers/etc/hosts 파일로 host 정보를 바꾸었는데, 크롬에서 아무리 새로고침해도 해당사항이 반영되지 않을 때의 조치사항입니다. 이럴 때 대부분 개발자 분들이 secret 창을 띄우거나 다른 브라우저를 사용하는데, context 를 유지해야하는 경우 해당 방법은 사용할 수 없습니다.   이 참에 아래 팁을 숙지하고 더보기…

[Spring] Excel Download 구현 – AbstractXlsxView 커스터마이징 하기

들어가기에 앞서 관리자 혹은 유지보수 툴에서는, 화면에 보여지는 데이터를 Excel 파일 형식으로 다운받을 일이 많다. 흔히 Excel Controller (API Gateway의 일종으로 이름은 그냥 관용적인 표현인 듯)에서 요청을 받으면, 주어진 조건에 맞는 데이터를 xlsx 파일로 만들어 응답해주는 형태로 구성된다. 현재 진행하는 프로젝트에서도 관리자 페이지 구현시, 스프레드 시트 형태의 데이터를 다운받도록 하는 더보기…

[JDBC] Datasource Proxy 에 대하여

JPA 구현체인 Hibernate 의 문제점 Java 의 ORM 인 JPA(Java Persistence API)와 그 구현체 중 하나인 Hibrernate 를 사용하다보면 몇 가지 불편사항이 생긴다. Native Query 를 사용하지 않으면 (JPA) 쿼리 실행 계획이 어떻게 되는지 알 수 없다 Hibernate debug log 를 이용하면 Bulk insert 여부를 알 수 없다 Hibernate debug log 더보기…