Spring Batch로 구현한 랭킹 시스템, 메모리 지키기
·
카테고리 없음
들어가며매일 쌓이는 대량의 메트릭 데이터를 집계해서 주간/월간 랭킹을 실시간으로 산출하는 과정을 쉽지 않다. 단순히 "데이터를 읽어서 계산한다"는 직관적인 접근으로 시작한다면, 대량의 데이터를 안정적으로 처리할 수 없을 것이다. 이 글에서는 Spring Batch를 사용한 랭킹 배치 시스템 구현 과정과, 메모리를 지키기 위한 리팩토링 경험을 공유하고자 한다. 요구사항과 초기 설계사용자들에게 인기 상품을 추천하기 위해 주간/월간 랭킹 기능을 제공한다. 요구사항은 다음과 같다. 주간 랭킹 : 매주 월요일부터 일요일까지의 기간 동안 Top 100 상ㅍ품월간 랭킹 : 매월 1일부터 말일까지의 기간 동안 Top 100 상품배치 실행 : 매일 새벽 3시에 전날 데이터를 기반으로 주간/월간 랭킹 계산 데이터 구조..