시스템 설계 · 기초
분산 시스템에서 서비스 디스커버리(Service Discovery)가 필요한 이유와 그 개념을 설명해 주세요.
힌트 · 분산 시스템에서 서비스 인스턴스의 위치를 동적으로 찾고 통신할 수 있도록 돕는 메커니즘입니다. 서비스의 IP 주소와 포트를 관리합니다.
동적 IP로드 밸런싱서비스 등록/검색헬스 체크확장성
모범답안
분산 시스템에서 서비스 디스커버리는 서비스들이 서로를 찾고 통신할 수 있게 해주는 핵심적인 메커니즘입니다. 왜냐하면 분산 환경에서는 서비스 인스턴스의 IP 주소나 포트가 동적으로 변할 수 있기 때문입니다.
서비스 디스커버리가 없으면, 각 서비스는 다른 서비스의 정확한 위치를 미리 알 수 없어서 통신이 불가능해집니다. 서비스 디스커버리는 서비스가 시작될 때 자신의 정보를 등록하고, 다른 서비스가 필요할 때 등록된 정보를 검색하여 통신할 수 있도록 해줍니다.
이를 통해 로드 밸런싱, 장애 극복, 그리고 시스템의 확장성을 높일 수 있습니다. 예를 들어, 서비스 A가 서비스 B를 호출할 때, 서비스 디스커버리를 통해 서비스 B의 여러 인스턴스 중 하나를 선택하여 요청을 보낼 수 있습니다. 또한, 헬스 체크 기능을 통해 비정상적인 인스턴스를 자동으로 제외하고 정상적인 인스턴스만 연결해줄 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 분산 시스템 면접 질문
- CAP 이론에 대해 설명하고, 각 요소(Consistency, Availability, Partition tolerance)가 무엇을 의미하는지 간략히 설명해 주세요.
- 분산 시스템에서 데이터 복제(Data Replication)가 필요한 주요 이유와 그 목적은 무엇인가요?
- 로드 밸런싱(Load Balancing)이 분산 시스템에서 어떤 역할을 하며, 가장 기본적인 로드 밸런싱 알고리즘에는 어떤 것들이 있나요?
- 분산 시스템의 확장성(Scalability)이란 무엇이며, 수평 확장(Horizontal Scaling)과 수직 확장(Vertical Scaling)의 차이를 설명해 주세요.
- 분산 트랜잭션이란 무엇이며, 이를 처리하기 위한 2단계 커밋(2PC) 프로토콜의 기본 원리를 간략히 설명해 주세요.
- 분산 시스템 설계 시 CAP 이론이 제시하는 세 가지 속성(일관성, 가용성, 분할 내성) 중 두 가지를 선택해야 하는 트레이드오프에 대해 설명하고, 실제 시스템에서 이 트레이드오프가 어떻게 나타나는지 구체적인 예를 들어 설명해 주세요.