시스템 설계 · 심화
대규모 분산 데이터베이스 시스템에서 일관성(Consistency), 가용성(Availability), 파티션 허용(Partition Tolerance) 중 두 가지를 선택해야 하는 CAP 이론의 제약사항을 극복하기 위한 데이터베이스 설계 전략을 설명하고, 특정 비즈니스 요구사항(예: 금융 거래 vs. 소셜 미디어 피드)에 따라 어떤 일관성 모델(강력, 최종, 세션 등)과 분산 트랜잭션 처리 방식을 선택할지 구체적인 시나리오와 함께 논하시오.
힌트 · CAP 이론의 한계를 이해하고, 비즈니스 요구사항에 맞춰 강력한 일관성, 최종 일관성 등 다양한 일관성 모델을 선택하는 기준을 제시해야 합니다. 분산 트랜잭션 처리를 위한 2PC, Saga 패턴 등도 고려할 수 있습니다.
CAP 이론분산 트랜잭션일관성 모델 (ACID, BASE)멱등성2PC/3PC
모범답안
CAP 이론은 분산 시스템에서 일관성, 가용성, 파티션 허용성을 모두 만족할 수 없다는 제약 사항을 제시합니다. 이를 극복하기 위해 비즈니스 요구사항에 맞는 일관성 모델을 선택하고 분산 트랜잭션을 효율적으로 관리하는 전략이 필요합니다.
예를 들어, 금융 거래 시스템에서는 강력한 일관성이 중요합니다. 2PC (Two-Phase Commit)와 같은 분산 트랜잭션 처리 방식을 사용하여 ACID 속성을 보장해야 합니다. 반면, 소셜 미디어 피드 시스템에서는 최종 일관성을 선택할 수 있습니다. 사용자 경험을 위해 가용성을 높이고, Saga 패턴과 같은 방식을 통해 최종적으로 데이터 정합성을 맞출 수 있습니다. 또한, 멱등성을 고려하여 오류 발생 시에도 안전하게 재시도할 수 있도록 설계해야 합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 데이터베이스 설계 면접 질문
- 대용량 테이블의 관리 및 성능 향상을 위해 파티셔닝(Partitioning)을 고려할 때, 어떤 종류의 파티셔닝(예: Range, List, Hash)을 선택할 수 있으며, 각각의 장단점과 적합한 사용 시나리오는 무엇인가요?
- 데이터베이스 트랜잭션의 격리 수준(Isolation Level)이 무엇이며, 'READ COMMITTED'와 'REPEATABLE READ' 수준의 차이점과 각각 어떤 상황에서 사용해야 하는지 설명해 주세요.
- 다중 테넌트(Multi-tenant) SaaS 애플리케이션을 위한 데이터베이스를 설계한다고 가정해 봅시다. 테넌트 데이터 격리 수준(개별 DB, 스키마, 테이블)에 따른 장단점을 설명하고, 각 방식이 데이터 보안, 성능, 확장성, 운영 복잡성에 미치는 영향에 대해 구체적인 설계 전략과 함께 논하시오.
- 기업의 데이터 분석 및 의사결정을 위한 데이터 웨어하우스를 설계해야 합니다. OLTP 시스템과 OLAP 시스템의 데이터 모델링 접근 방식의 근본적인 차이점을 설명하고, 스타 스키마(Star Schema)와 스노우플레이크 스키마(Snowflake Schema)의 장단점을 비교하여 특정 분석 요구사항(예: 복잡한 차원 분석 vs. 저장 공간 최적화)에 따라 어떤 스키마를 선택할지 설계 관점에서 설명하시오.
- 마이크로서비스 아키텍처 환경에서 각 서비스가 독립적인 데이터베이스를 소유하도록 설계할 때 발생할 수 있는 데이터 일관성 및 분산 트랜잭션 문제를 해결하기 위한 데이터베이스 설계 패턴 및 전략(예: Saga 패턴, CQRS, Event Sourcing)을 설명하고, 각 패턴의 장단점과 적용 시나리오를 구체적으로 제시하시오.
- 서비스 운영 중에 데이터베이스 스키마를 변경해야 하는 상황(예: 컬럼 추가/삭제, 타입 변경, 테이블 분리/병합)이 발생했을 때, 무중단 배포(Zero-downtime deployment)를 지원하면서 데이터 정합성을 유지하기 위한 효과적인 스키마 마이그레이션 전략 및 롤백 방안을 설계 관점에서 설명하시오.