API 응답 압축 전략 (네트워크 효율, CPU 부담, 최적화)
API 응답 압축을 처음 적용할 때 무조건 좋은 거라고만 생각했습니다. 데이터 크기가 줄어들면 당연히 속도도 빨라지고 서버 부담도 줄어들 거라는 막연한 기대가 있었죠. 하지만 실제로 프로덕션 환경에서 적용하고 나서 보니 놓친 부분이 있었습니다. 압축이라는 건 공짜로 얻어지는 마법이 아니라 CPU라는 비용을 지불하고 얻는 거래였던 겁니다. 이 글에서는 API 응답 압축 전략이 실제로 어떤 효과를 내는지, 그리고 어떤 상황에서 오히려 독이 될 수 있는지 제 경험을 바탕으로 정리해보겠습니다. 네트워크 효율, 압축으로 얼마나 개선되는가 일반적으로 gzip이나 brotli 같은 압축 알고리즘을 적용하면 데이터 크기가 70~80% 정도 줄어든다고 알려져 있습니다. 제가 담당했던 서비스에서 JSON 형식의 대용량 응답 데이터에 gzip 압축을 적용했을 때, 평균 200KB였던 응답이 약 50KB로 줄어들었습니다. 이론상으로는 전송 시간이 4분의 1로 단축되는 셈이죠. 특히 모바일 환경에서 이 효과가 두드러졌습니다. 4G 네트워크 환경에서 테스트했을 때 압축 전에는 응답 시간이 평균 1.2초였는데, 압축 후에는 0.4초로 줄어들었습니다. 사용자 입장에서 체감할 수 있는 수준의 개선이었죠. 모바일 데이터 요금제를 사용하는 사용자 입장에서도 데이터 사용량이 줄어드니 비용 절감 효과까지 있었습니다. 하지만 여기서 중요한 건 압축 효율이 데이터 특성에 따라 크게 달라진다는 점입니다. JSON이나 XML 같은 텍스트 기반 데이터는 압축률이 높지만, 이미지나 동영상처럼 이미 압축된 형태의 데이터는 추가 압축 효과가 거의 없습니다. 처음에는 모든 API 응답에 일괄적으로 압축을 적용했는데, 썸네일 이미지를 반환하는 API에서도 압축이 작동하고 있었던 겁니다. 결과적으로 압축 효과는 거의 없으면서 서버 CPU만 쓸데없이 소모하고 있었죠. CPU 부담, 압축의 숨겨진 비용 압축이라는 건 결국 연산 작업입니다. 서버는 응답 데이터를 압축하기 위해 CPU 자원을 사용하고, 클...