100일 코딩 도전! 11일차
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
시스템 설계
대상자
- 초보 개발자 및 중급 개발자
- 분산 시스템 설계에 관심 있는 개발자
- 중간 난이도의 기술 개념 이해를 원하는 학습자
핵심 요약
- CAP 정리는 일관성(Consistency), 가용성(Availability), 분할 내성(Partition Tolerance) 간의 트레이드오프를 설명한다.
- 강일관성과 최종일관성 모델은 실시간 협업 앱(예: Google Docs)의 데이터 동기화 전략을 이해하는 데 핵심이다.
- 로드 밸런싱(Round Robin, Least Connections)은 서버 과부하 방지 및 서비스 가용성을 보장하는 분산 시스템 설계 핵심 기술이다.
섹션별 세부 요약
1. CAP 정리
- CAP 정리는 분산 시스템에서 3가지 속성(일관성, 가용성, 분할 내성) 중 2가지만 동시에 보장할 수 있음을 명시한다.
- 데이터베이스 설계에서 일관성 vs. 가용성의 선택은 시스템 목적에 따라 달라진다. 예: 뱅킹 시스템은 일관성을, SNS 플랫폼은 가용성을 우선시.
- 실제 사례로 AWS DynamoDB는 CAP 정리에 기반한 하이브리드 접근 방식을 사용.
2. 일관성 모델
- 강일관성(Strong Consistency)은 모든 노드에서 동시에 동일한 데이터를 보장하지만, 성능 저하 가능.
- 최종일관성(Eventual Consistency)은 일시적인 불일치를 허용하지만 최종적으로 동기화되며, 스케일링 효율성이 높음.
- WhatsApp 같은 앱은 최종일관성을 통해 대규모 사용자의 실시간 메시지 전송을 실현.
3. 로드 밸런싱
- Round Robin 알고리즘은 트래픽을 순차적으로 분배하여 서버 균형을 유지.
- Least Connections는 현재 연결 수가 적은 서버에 요청을 할당, 성능 최적화 가능.
- Health Check 기능을 통해 장애 발생 시 자동 대체되어 서비스 중단 방지.
결론
- CAP 정리, 일관성 모델, 로드 밸런싱은 분산 시스템 설계의 핵심 원칙으로, 실제 시스템에서 트레이드오프를 고려해 적용 전략을 수립해야 함.
- 실습 예제로 Kubernetes의 Service 객체와 LoadBalancer 설정을 통해 로드 밸런싱 구현을 실습해보는 것을 추천.