Day 38 · 3/5
🌿 중급 백엔드

API 응답 시간 최적화

쉽게 이해하기

햄버거 가게에서 주문하고 기다리는 시간을 줄이는 것과 같아요. 미리 재료를 준비해두거나(캐싱), 주문이 많을 때 직원을 더 배치하거나(스케일링), 불필요한 작업을 생략하면(쿼리 최적화) 음식이 더 빨리 나오죠.

핵심 정리

API 응답 속도를 빠르게 만들어 사용자 경험을 개선하는 방법입니다.

자세히 알아보기

API 응답 시간은 사용자가 요청을 보낸 후 결과를 받기까지 걸리는 시간이에요. 이 시간이 길면 앱이 느리게 느껴지고, 짧으면 빠르고 쾌적하게 느껴집니다. 보통 200ms 이하면 빠르다고 평가받고, 1초 이상이면 개선이 필요해요. 응답 시간을 줄이는 첫 번째 방법은 캐싱입니다. 자주 요청되는 데이터는 메모리에 저장해두고 다음 요청 때 바로 꺼내 쓰는 거예요. 예를 들어 상품 목록을 매번 데이터베이스에서 조회하는 대신, 5분간 캐시에 저장해두면 응답 시간을 10배 이상 줄일 수 있습니다. 두 번째는 데이터베이스 쿼리 최적화예요. 불필요한 데이터를 가져오지 않고, 인덱스를 적절히 사용하고, N+1 쿼리 문제를 해결하면 데이터베이스 조회 시간을 크게 줄일 수 있어요. 100개 데이터를 가져올 때 반복문으로 100번 조회하는 대신 한 번에 가져오면 훨씬 빨라집니다. 세 번째는 페이징입니다. 한 번에 모든 데이터를 보내는 대신 10개씩 나눠서 보내면 응답 크기가 줄어들고 속도가 빨라져요. 네 번째는 비동기 처리인데, 시간이 오래 걸리는 작업은 백그라운드에서 처리하고 일단 응답부터 보내는 거예요. 이메일 발송 같은 작업이 여기 해당합니다. API 응답 시간을 모니터링하는 것도 중요해요. New Relic이나 Datadog 같은 도구로 어느 엔드포인트가 느린지 파악하고 개선할 수 있습니다. 사용자 경험에 직접 영향을 주는 부분이라 백엔드 개발자가 항상 신경 써야 하는 지표예요.