마이크로서비스의 함정, 누적되는 지연시간
모놀리식 아키텍처를 마이크로서비스로 분리하면 개발과 배포는 유연해지지만, 하나의 요청이 여러 서비스를 순차적으로 거쳐야 하는 만큼 지연시간이 누적되는 함정이 생깁니다. 각 홉의 지연이 30ms로 작아 보여도 5단계를 거치면 150ms를 훌쩍 넘기며, 여기에 통신 오버헤드까지 더해지면 사용자가 체감하는 응답 속도는 눈에 띄게 느려집니다.
이 계산기는 요청이 거치는 서비스 홉 수와 홉당 평균 지연시간을 곱해 기본 지연을 구하고, 여기에 직렬화·TLS 핸드셰이크 등에서 발생하는 네트워크 오버헤드(%)를 추가로 반영해 실제에 가까운 전체 지연시간을 예측합니다.
예상 지연이 너무 크다면 불필요한 홉을 줄이거나, 순차 호출 대신 병렬 호출로 전환하고, gRPC 같은 경량 프로토콜이나 캐싱 계층을 도입하는 것을 검토해보세요. 지연시간은 사용자 경험뿐 아니라 서버 자원 사용량에도 직접 영향을 미치므로 아키텍처 설계 초기에 점검하는 것이 좋습니다.
자주 묻는 질문
하나의 요청을 처리하기 위해 순차적으로 호출해야 하는 서비스의 개수를 의미합니다. API 게이트웨이부터 최종 데이터베이스까지 거치는 서비스 단계를 세면 됩니다.
서비스 간 통신에는 직렬화, 역직렬화, TLS 핸드셰이크 등 순수 처리 시간 외의 부가 비용이 발생하기 때문에 이를 오버헤드로 반영합니다.
불필요한 홉을 줄이거나, 병렬로 호출 가능한 요청을 동시에 처리하고, gRPC 같은 경량 프로토콜과 캐싱을 도입하는 것이 대표적인 개선 방법입니다.