시스템 설계 · 기초
분산 시스템의 확장성(Scalability)이란 무엇이며, 수평 확장(Horizontal Scaling)과 수직 확장(Vertical Scaling)의 차이를 설명해 주세요.
힌트 · 시스템이 증가하는 부하를 처리할 수 있는 능력입니다. 수평 확장은 서버 수를 늘리는 것이고, 수직 확장은 단일 서버의 성능을 높이는 것입니다.
확장성수평 확장수직 확장탄력성분산 시스템
모범답안
분산 시스템의 확장성이란, 시스템이 증가하는 사용자 요청이나 데이터 처리량과 같은 부하를 얼마나 잘 감당할 수 있는지를 의미합니다. 즉, 시스템이 성능 저하 없이 더 많은 작업을 처리할 수 있는 능력을 말합니다.
확장성에는 크게 두 가지 방법이 있습니다. 첫 번째는 수평 확장(Horizontal Scaling)으로, 기존 서버에 더 많은 서버를 추가하여 부하를 분산시키는 방식입니다. 마치 여러 대의 작은 트럭으로 짐을 옮기는 것과 같습니다. 이 방식은 유연하고 비용 효율적이며, 단일 실패 지점을 줄여 탄력성을 높이는 데 유리합니다.
두 번째는 수직 확장(Vertical Scaling)으로, 기존 서버의 성능을 향상시키는 방식입니다. CPU를 더 좋은 것으로 교체하거나 메모리를 늘리는 것처럼, 단일 서버의 사양을 높이는 것입니다. 이는 마치 더 크고 강력한 트럭 한 대로 짐을 옮기는 것과 같습니다. 수직 확장은 구현이 비교적 간단할 수 있지만, 하드웨어 업그레이드에는 물리적인 한계와 비용이 따릅니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 분산 시스템 면접 질문
- 분산 시스템에서 데이터 복제(Data Replication)가 필요한 주요 이유와 그 목적은 무엇인가요?
- 로드 밸런싱(Load Balancing)이 분산 시스템에서 어떤 역할을 하며, 가장 기본적인 로드 밸런싱 알고리즘에는 어떤 것들이 있나요?
- 분산 시스템에서 서비스 디스커버리(Service Discovery)가 필요한 이유와 그 개념을 설명해 주세요.
- 분산 트랜잭션이란 무엇이며, 이를 처리하기 위한 2단계 커밋(2PC) 프로토콜의 기본 원리를 간략히 설명해 주세요.
- 분산 시스템 설계 시 CAP 이론이 제시하는 세 가지 속성(일관성, 가용성, 분할 내성) 중 두 가지를 선택해야 하는 트레이드오프에 대해 설명하고, 실제 시스템에서 이 트레이드오프가 어떻게 나타나는지 구체적인 예를 들어 설명해 주세요.
- 분산 시스템에서 강한 일관성(Strong Consistency)과 결과적 일관성(Eventual Consistency)의 차이점을 설명하고, 각각 어떤 종류의 애플리케이션에 적합하며 어떤 장단점을 가지는지 비교해 주세요.