피드로 돌아가기
Dev.toBackend
원문 읽기
3ms 응답 뒤에 숨겨진 Background Job의 전 계층적 오버헤드 분석
The Hidden Machinery Behind Background Jobs
AI 요약
Context
단순히 비동기 큐 도입만으로 소프트웨어가 빨라진다는 오해와 실제 시스템 동작 간의 괴리 분석. API 응답 속도 개선 이면에 존재하는 Serialization, Network Stack, Broker 저장 비용 등 보이지 않는 복잡성 식별.
Technical Solution
- JSON.stringify를 통한 Payload의 Byte 직렬화 및 Envelope 메타데이터 래핑 과정 수행
- TCP Connection Pool 관리를 통한 연결 오버헤드 최소화 및 가용 연결 부족 시 Block 발생 구조
- Syscall write() 호출을 통한 Application Memory에서 Kernel TCP Send Buffer로의 데이터 복사
- Broker의 Event Loop(epoll_wait) 기반 소켓 데이터 수신 및 메모리/디스크 저장 로직 처리
- Worker의 Kernel Wait Queue 대기 상태에서 Socket Callback을 통한 프로세스 깨움 및 Job 처리
- 처리 완료 후 ACK 전송을 통한 Broker 내 메시지 삭제 및 최종 상태 동기화
실천 포인트
- 큐 깊이(Queue Depth) 모니터링을 통한 병목 지점 식별 - Dead Letter Queue(DLQ) 분석을 통한 실패 패턴 및 예외 처리 검증 - ACK Timeout 설정을 통한 Broker와 Worker 간의 신뢰성 계약 최적화 - 결과 즉시 반환 필요 여부 및 Latency 예산에 따른 Inline 처리와 Queue 처리 선택