핵심 요약
NAVER D2는 Yappi를 활용해 FastAPI 서버 병목을 찾아내고 직렬화 최적화와 비동기 호출 정리를 통해 응답 시간을 약 60% 줄이고 리소스 사용을 약 65% 감소시켰다.
구현 방법
- FastAPI에 Yappi ProfileMiddleware를 적용해 멀티스레드 프로파일링과 결과 저장
- ORJsonResponse로 교체해 불필요한 jsonable_encoder 제거
- asyncio.gather의 호출 그래프 단절에 주의하고 필요 시 순차 await로 교정
주요 결과
- 평균 응답 시간 44ms → 14ms(약 60%), p99 87ms → 37ms
- 필요한 CPU 코어 272→96, 인스턴스 17대→6대
- 리소스 사용 약 65% 감소


