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