
싱글벙글 회원 서비스 성능 튜닝기
두줄요약
회원 서비스의 트랜잭션 범위, DTO 변환, Tomcat 스레드 설정을 분석해 병목을 제거했습니다.\nRepository 단위 트랜잭션과 웜업으로 응답 시간을 약 8배 개선했습니다.
문제 상황
- 성수기 프로모션에서 평소 대비 약 150% 트래픽 증가와 1000% 이상 응답 시간 증가
- 인증 서비스 개편 이후에도 회원 서비스 병목으로 대규모 요청 처리 지연
원인 분석
- 읽기 조회 메서드의 넓은 트랜잭션 범위로 외부 API 호출 동안 DB 커넥션 점유
- ObjectMapper 직렬화·역직렬화 기반 DTO 변환에 따른 리플렉션·힙 할당·GC 비용
- 1코어 Pod 환경의 기본 Tomcat 최대 200개 스레드로 인한 컨텍스트 스위칭 증가
해결 방법
- 읽기 전용 트랜잭션 적용 후 트랜잭션 범위를 Repository로 축소
- DTO 직접 생성 방식으로 변환 로직 단순화
- Tomcat 최대 스레드 30개 설정 및 주요 API 사전 호출 웜업 추가
성능/운영 포인트
- 스레드 수별 부하 테스트에서 30~50개 구간의 높은 처리량과 안정성 확인
- 개선 후 응답 시간 약 8배 향상 및 응답 편차 2~10ms 수준 확보
- DB 커넥션 증설보다 점유 시간 단축을 우선하는 개선 방향
