Spring Boot 웜업, 커스텀 어노테이션과 리플렉션으로 초기 응답 속도 UP!
by DD
1년 전
조회수 0
@WarmUp 어노테이션과 리플렉션을 활용하여 Spring Boot 애플리케이션의 초기화 지연 문제를 해결함
AppStartupWarmupRunner를 통해 웜업 로직을 비동기적으로 실행하여 성능을 향상시킴
Redis 연결 및 외부 API 연결 웜업으로 초기 응답 속도를 최대 81% 개선
AppStartupWarmupRunner의 동작 원리
AppStartupWarmupRunner는 Spring 컨텍스트에서 @WarmUp 어노테이션이 붙은 메서드를 리플렉션으로 찾아 실행한다. 구체적으로, 코루틴을 사용하여 비동기적으로 웜업 작업을 처리하며, ExecutorService를 통해 스레드 풀을 관리한다. 따라서 애플리케이션 시작 시간을 단축하고, 병렬 처리를 통해 성능을 향상시킨다.
기존 방식 vs 개선된 웜업 로직
기존 WarmUpRunner는 코드 중복과 유지보수 어려움을 야기했다. 반면, @WarmUp 어노테이션과 AppStartupWarmupRunner를 사용하면 코드 중복 감소 및 확장성 확보가 가능하다. 결과적으로, 비동기 처리를 통해 애플리케이션 시작 시간을 단축하고, 초기 응답 속도를 개선했다.
실전 적용 가이드: 웜업 로직 설계
웜업 로직 설계 시, @WarmUp 어노테이션을 활용하여 웜업 대상을 명시한다. 구체적으로, Redis 연결 및 외부 API 연결과 같은 리소스 초기화에 적용한다. 따라서, 데이터베이스 연결 풀 초기화와 초기 데이터 로딩을 통해 초기 요청 지연을 최소화하고, 사용자 경험을 개선한다.