피드로 돌아가기
Dev.toBackend
원문 읽기

BullMQ 도입을 통한 API p95 Latency 212배 개선
#2 Why I Chose BullMQ Instead of Processing Files Inside the API
AI 요약
Context
API 내부에서 파일 변환을 직접 처리하는 Synchronous 구조로 인한 요청 지연 발생. 파일 크기 증가에 따른 서버 리소스 점유 및 사용자 대기 시간 증가라는 병목 지점 확인.
Technical Solution
- BullMQ와 Redis를 결합한 Asynchronous Worker 구조로의 전환
- Upload 후 Job을 Queue에 추가하고 즉시 응답하는 Non-blocking 흐름 설계
- Worker Concurrency 설정을 통한 무거운 파일 처리 작업의 분산 처리
- Queue 기반의 내장 Retry 메커니즘을 통한 예외 상황 대응력 확보
- Request Path에서 무거운 연산을 제거하여 API 응답 속도 최적화
Impact
- API p95 Latency: 800ms에서 3.8ms로 212배 단축
- Throughput: 1.3 req/sec에서 6.2 req/sec로 4.8배 증가
- 20 Concurrent Requests 환경에서 검증 완료
Key Takeaway
개별 작업의 처리 속도를 높이는 것보다 Critical Request Path에서 무거운 작업을 분리하는 것이 시스템 전체 성능 향상에 효율적임.
실천 포인트
1. 사용자 응답에 즉각적인 결과가 필요 없는 작업인지 검토
2. Redis 기반 Queue 도입 시 운영 복잡도 증가와 Eventual Consistency 수용 가능 여부 판단
3. Worker Concurrency 조절을 통한 인프라 확장성 확보 전략 수립