[Spring] Spring Batch 병렬 처리로 배치 시간 7배 단축하기
“배치가 7시간이나 걸려요. 새벽에 시작해도 업무 시작 전에 안 끝나요.”
“배치가 7시간이나 걸려요. 새벽에 시작해도 업무 시작 전에 안 끝나요.”
매일 새벽 2시, 은행 시스템에서는 수백만 개의 거래 내역을 처리합니다.
Spring Boot 애플리케이션에 APM을 얹을 때 가장 먼저 만나는 것이 Actuator다. 하지만 Actuator 자체가 모니터링·알림·대시보드까지 다 해주는 것은 아니다. 이 글은 Actuator가 무엇을 제공하고 무엇을 제공하지 않는지를 분리해 정리한다.
Spring Boot로 REST API를 개발하다 보면 반복되는 고민이 생깁니다.
JPA를 사용하는 개발자라면 거의 반드시 한 번은 겪게 되는 문제가 있습니다. 바로 N+1 쿼리 문제입니다. 개발 초기에는 괜찮다가, 데이터가 많아지면서 갑자기 수백, 수천 개의 쿼리가 날아가는 걸 보고 당황하게 되죠.
Spring Boot 개발자라면 누구나 @Transactional을 사용해봤을 거에요. 하지만 단순히 “메서드에 붙이면 트랜잭션이 된다”고 생각하는 것만으로는 충분하지 않습니다.
@Component는 왜 사용하는 걸까?
Spring 프레임워크에서 @Component 어노테이션은 매우 중요한 역할을 합니다. 이 글에서는 @Component가 왜 생겨났는지, 어떤 역할을 하는지, 그리고 어떻게 사용하는지에 대해 알아보겠습니다.