>2025.04.07일자 위클리 페이퍼
역정규화가 필요한 상황과 적용 시 고려해야 할 사항, 그리고 역정규화를 적용할 때의 장단점을 설명해주세요.
역정규화 하는 이유?
정규화 과정을 통해 데이터 중복, 무결성 위배 같은 문제들을 해결 하였다. 하지만 정규화로 설계된 데이터베이스가 최선은 아니다. 이유는 데이터 중복, 무결성을 잡는 과정에서 성능이 느려지기 때문이다. 그래서 정규화된 데이터들을 역정규화를 통해 어느정도 데이터 중복을 허용하고, 무결성을 완화하여 최적화할 수 있게 되는 것이다.
1. 역정규화가 필요한 상황
1.1 성능 이슈가 있는 경우
- JOIN 연산이 많아 데이터를 조회할 때 성능이 느린 경우
- 실시간 처리가 중요하고 빈번한 조회 연산이 많은 경우
1.2 집계 및 통계 정보가 자주 요구될 때
- 사전 계산된 요약 데이터가 자주 조회되는 경우
- 보고서, 대시보드 등 실시간 분석이 요구될 때
1.3 복잡한 쿼리 단순화
- 자주 사용되는 복잡한 쿼리로 인해서 성능이 저하될 경우
2. 역정규화 적용 시 고려해야 할 사항
2.1 데이터 중복으로 인한 무결성 관리
2.2 데이터 갱신의 빈도와 비용
- 자주 변경되는 데이터를 역정규화할 경우, 데이터 동기화 비용이 높아짐
예) 재고량
재고량을 역정규화 했을 경우엔 자주 데이터가 변경되어 데이터를 동기화 하기 위해 비용이 발생함
2.3 저장공간 증가
2.4 시스템 복잡성 증가
- 유지보수 난이도 증가
데이터 중복을 허용하면서 개발자들은 유지보수를 하는 과정에서 데이터를 일관되게 유지 및 수정을 해야 하는 부담이 증가
3. 정규화,역정규화의 장단점

정규화와 역정규화는 서로 상충되는 관계이고, 요구사항에 맞춰 적절한 균형을 찾는것이 중요함