정규화와 DW 스키마, 면접 준비 끝내기
안녕하세요! 오늘은 데이터 직군 면접에서 자주 등장하는 ‘정규화와 비정규화’, 그리고 ‘스타 스키마와 스노우플레이크 스키마’에 대해 이야기해보겠습니다. 데이터 분야 취업이나 이직을 준비하는 주니어 분들은 이 개념들을 정리해 두면 좋을 것 같아 정리해 보았습니다.
정규화와 비정규화를 이해하기 위해 집의 옷장을 떠올려 보세요. 첫 번째 방식은 옷을 종류별로 완벽하게 분류하는 것입니다. 이는 ‘정규화’라고 할 수 있으며, 중복이 없고 관리가 용이합니다.
반면, 자주 입는 옷들을 한곳에 모아두는 형태는 ‘비정규화’와 유사합니다. 이는 중복이 발생할 수 있지만, 시간이 절약되는 장점이 있습니다. 이처럼 정규화와 비정규화는 데이터 구성 방식에 대한 철학적 차이를 나타냅니다.
정규화: 데이터 중복을 제거한다
정규화는 데이터베이스 내의 중복을 최소화하고, 관련된 단위로 나누는 과정입니다. 예를 들어, 도서관에서 책을 주제별로 분류하는 방식과 유사합니다.

정규화된 테이블은 브랜드, 카테고리, 제품 정보가 잘 분리되어 있습니다. 중복이 없으며, 수정 시 효율적입니다.
비정규화는 여러 테이블을 하나로 합치는 방식으로, 중복이 발생합니다. 이는 분석 작업을 쉽게 해주지만, 중복된 정보로 인해 데이터 관리가 복잡해질 수 있습니다.

비정규화는 데이터 활용 준비를 위한 모습으로, 서비스에 데이터를 전달할 때 주로 사용됩니다. 이제는 스타 스키마와 스노우플레이크 스키마를 통해 이러한 개념이 실제 데이터 웨어하우스 설계에서 어떻게 이용되는지 알아보겠습니다.
스타 스키마
스타 스키마는 팩트 테이블 중앙에 여러 차원 테이블이 연결된 구조입니다. 팩트 테이블은 주로 측정되는 값과 차원 테이블과 연결될 키 정보를 포함합니다.

이 구조는 조인이 단순해 쿼리 속도가 빠르고 직관적이지만, 차원 데이터가 복잡해지면 중복이 발생할 수 있습니다.
스노우플레이크 스키마
스노우플레이크 스키마는 스타 스키마에서 차원 테이블을 여러 계층으로 정규화한 구조로, 데이터 중복을 줄이고 관리가 편리해집니다.

차원 테이블이 여러 계층으로 나뉘어 있어 중복을 줄이지만, 구조가 복잡해져서 조인이 많아질 수 있습니다.
정말 실무에서도 이렇게 하나요?
현재는 데이터 처리 환경이 발전하여 ELT(Extract, Load, Transform) 방식이 등장했습니다. 이는 데이터를 원시 형태로 저장하고 필요할 때 변환하여 사용하는 방법입니다.
- ETL: 데이터 → 정제/변환 → 저장 → 분석
- ELT: 데이터 → 저장 → 필요시 변환 → 분석
ELT는 저장 및 컴퓨팅 파워의 비용이 줄어든 덕분에 가능해졌습니다. 이제 기업들은 분석 속도와 유연성을 위해 비정규화된 형태로 데이터를 저장하는 방향으로 나아가고 있습니다.
최근에는 데이터 레이크와 데이터 웨어하우스의 장점을 합친 레이크하우스 아키텍처가 주목받고 있으며, 아파치 아이스버그 등 오픈소스 프로젝트들이 이 구현의 핵심 기술로 자리잡고 있습니다.
분산 처리의 핵심: Spark와 EMR
아파치 스파크는 대규모 데이터 처리에 유용하며, AWS의 EMR 서비스는 이 스파크 작업을 쉽게 실행할 수 있게 해줍니다.
클라우드 네이티브 분석 플랫폼: BigQuery의 등장
구글의 빅쿼리는 서버리스 데이터 웨어하우스로, 페타바이트 규모의 데이터를 SQL로 빠르게 분석할 수 있는 혁신적인 솔루션입니다. 비용 모델은 사용한 만큼 지불하는 방식이며, 머신러닝 기능도 지원합니다.
마치며
현대 데이터 분석 환경에서는 속도와 분석 유연성이 중요합니다. 따라서 데이터 활용 방안에 대한 실용적인 접근법이 필요합니다.
*ELT와 델타레이크, 레이크하우스에 대한 내용은 후속 글로 정리할 예정입니다.
해당 기사는 GPT를 이용하여 요약한 내용입니다.