[후기] 김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

Posted by , January 24, 2026
인프런DB

1. 서론

개념을 처음부터 체계적으로 정리해본 적은 많지 않아 기본 개념부터 다시 정리하고 싶어 선택한 강의였습니다.

특히 인상 깊었던 부분은

  • 자연키와 대리키를 실무에서 어떻게 병행해서 사용하는지
  • 식별자를 어떤 기준으로 설계해야 하는지에 대한 기준을 명확히 잡아준 점이었습니다.

2. 내용 정리

자연키 (Natural Key)

  • 업무에서 자연스럽게 발생하는 값을 기본키로 사용하는 방식
  • 예) 주민등록번호, ISBN 코드, 사번
  • 특징
    • 데이터 자체로 식별 가능(조회 단순성)
    • 비즈니스 규칙 변화에 영향을 받기 쉬움
    • 값 변경이 발생하면 참조 관계 전체에 영향 가능

대리키 (Surrogate Key)

  • 비즈니스 의미와 무관하게 오직 식별 목적만을 위해 생성한 값을 기본키로 사용하는 방식
  • 예) 오라클 시퀀스, UUID, Auto Increment
  • 특징
    • 비즈니스 규칙 변화와 독립적
    • 값 변경 가능성이 거의 없음
    • 의미 없는 키로 인한 가독성 저하
    • 뛰어난 쓰기 성능
    • 추가 인덱스 필요

현대 설계 표준 패턴

  • 대리키는 기본키, 자연키는 UNIQUE 제약조건
  • 비즈니스 환경은 언젠가 변한다.
  • 현대적 설계의 핵심은 느슨한 결합
  • 이렇게 하면 파티셔닝, 샤딩시에도 더 편리해짐

현대 설계 표준 패턴

  • 기본키는 대리키, 자연키는 UNIQUE 제약조건으로 관리하는 방식이 일반적
  • 이유
    • 비즈니스 환경은 언젠가 변할 수 있음
    • 자연키를 PK로 사용하면 변경 시 구조 전체에 영향 발생
    • 대리키 사용으로 테이블 간 결합도를 낮출 수 있음
    • 현대적 설계의 핵심은 느슨한 결합
  • 장점
    • 느슨한 결합 구조 유지
    • 키 변경에 따른 리스크 최소화
    • 파티셔닝, 샤딩, 분산 환경에서 관리가 훨씬 용이

정리

  • 대리키는 구조 변경과 확장에는 유리하지만 자연키 제약을 제대로 걸지 않으면 데이터 품질이 급격히 나빠질 수 있음 그래서 기본키는 대리키 + 자연키 UNIQUE 제약조건
  • 다만 변경 가능성이 없고 코드성 데이터는 자연키 PK가 더 적절함

참조