패스잇
시스템 설계 · 중급

마이크로서비스 아키텍처에서 서비스 디스커버리(Service Discovery)가 필요한 이유를 설명하고, 클라이언트 측 디스커버리(Client-side Discovery)와 서버 측 디스커버리(Server-side Discovery) 방식의 동작 원리와 장단점을 비교해 주세요.

힌트 · 서비스 디스커버리는 동적으로 변화하는 서비스 인스턴스의 위치를 찾아 통신하게 합니다. 클라이언트 측은 클라이언트가 레지스트리에서 직접 조회하고, 서버 측은 로드 밸런서가 대신 조회합니다.

동적 IP서비스 레지스트리로드 밸런싱복잡성 증가유연성

모범답안

마이크로서비스 아키텍처에서는 서비스 인스턴스가 동적으로 생성되고 소멸되기 때문에, 각 서비스의 IP 주소와 포트가 계속 변합니다. 서비스 디스커버리는 이러한 변화에 맞춰 서비스들이 서로를 찾아 통신할 수 있도록 해주는 핵심 메커니즘입니다.

클라이언트 측 디스커버리는 클라이언트가 서비스 레지스트리에서 직접 서비스 인스턴스 목록을 조회하고, 로드 밸런싱을 수행하여 통신합니다. 장점은 유연성이 높고, 클라이언트가 로드 밸런싱 전략을 직접 제어할 수 있다는 점입니다. 단점은 클라이언트에 디스커버리 로직이 추가되어 복잡성이 증가하고, 각 언어별로 구현해야 한다는 점입니다.

서버 측 디스커버리는 로드 밸런서가 서비스 레지스트리에서 서비스 인스턴스 목록을 조회하고, 클라이언트 요청을 적절한 인스턴스로 라우팅합니다. 장점은 클라이언트가 디스커버리 로직을 알 필요가 없어 단순해지고, 중앙 집중적인 관리가 가능하다는 점입니다. 단점은 로드 밸런서에 의존성이 생기고, 클라이언트 측에 비해 유연성이 떨어진다는 점입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 분산 시스템 면접 질문

← 분산 시스템 면접 질문 전체 보기