어떻게 했냐고 물어보는 분이 계셔서, 별거 아닌데요.
HTTPS 호출을 하면 namelookup 부터 TCP, SSL 핸드쉐이크까지 연결 작업이 꽤 여러 단계가 있는데, 이걸 API 호출 전에 미리해서 서버에 먼저 연결을 열어 두는겁니다. SSL 핸드쉐이크만해도 길면 100~200ms 까지도 걸리거든요.
그리고 데이터 수발신도 Chunked Transfer Encoding을 이용해서 데이터 전체를 기다리지 않고 바로 전송하거나 First byte가 도착한 뒤부터 데이터 처리를 시작하도록 합니다.
전체 파이프라인이 여러 단계에 걸쳐 있고, 서버 상황이나 ISP간 거리에 따라 latency가 더 길어질 수 있어서, 결과적으로 최대 500ms 까지 줄일 수 있었네요.
골빈해커
Chief Maker
며칠간에 걸쳐 HTTP 프로토콜 해킹을 통해 2초 전후대의 실행 시간을 100ms 정도 줄였습니다. 잘 한 것일까요? 괜한 짓을 한 것일까요?
더 많은 콘텐츠를 보고 싶다면?
이미 회원이신가요?
2024년 8월 2일 오후 1:32