올리브영 테크블로그 · 2025. 12. 31.
SQS 기반 알림톡 처리에서 발생한 DB 커넥션 데드락 분석기
AI 엔지니어링 브리핑
알림톡 발송을 SQS 기반 비동기 구조로 바꾸는 과정에서 발생한 DB 커넥션 데드락의 원인과 해결 방법을 설명한 글입니다.
문제 & 배경
- 문제 & 배경: 알림톡 로직이 여러 업무 코드와 비즈니스 트랜잭션에 흩어져 유지보수와 재처리가 어려웠고, 배포 후에는 SQS의 병렬 처리, 작은 DB 커넥션 풀, 중첩 트랜잭션이 겹치며 커넥션 부족으로 타임아웃이 발생했습니다.
기술 & 해결책
- 기술 & 해결책: 알림 요청은 SQS에 먼저 넣고 별도 컨슈머가 Messaging API로 발송하도록 분리했으며, 실패 이력은 DB에 저장해 EventBridge로 재시도하고, 불필요한 REQUIRES_NEW를 제거하면서 동시에 처리할 메시지 수를 커넥션 수 이하로 제한했습니다.
교훈 & 주의점
- 교훈 & 주의점: 비동기 시스템에서는 메시지 병렬 처리량과 작업 한 건당 필요한 커넥션 수를 함께 계산해야 하며, 각 설정이 실제 실행 환경에서 자원을 어떻게 점유하는지 검증해야 데드락을 예방할 수 있습니다.
함께 읽을 글
내용이 비슷해요내용이 비슷한 글을 먼저 보여드려요. 같은 문제나 해결책을 다룬다는 뜻은 아니에요.