3-1. 대리 키란 무엇인가

대리 키(Surrogate Key) 는 현실 세계에 의미가 없는, 오직 데이터베이스 내부에서만 사용하는 인공적인 식별자이다.

일반적으로 다음과 같은 형태로 사용한다.

예를 들어 회원 테이블을 대리 키로 설계하면 다음과 같다.

CREATE TABLE member (
  member_id    BIGINT AUTO_INCREMENT PRIMARY KEY, -- 대리 키
  email        VARCHAR(255)      NOT NULL UNIQUE,
  name         VARCHAR(100)      NOT NULL,
  password     VARCHAR(255)      NOT NULL,
  created_at   DATETIME          NOT NULL
);

여기서 member_id는 비즈니스와 아무 상관이 없는 숫자일 뿐이다. 대신 고유하고, 짧고, 변경되지 않는다.


3-2. 대리 키의 장점

  1. 불변(Immutable)하다
  2. 짧고 단순하다
  3. 비즈니스 로직과 분리된다
  4. ORM, 마이크로서비스 친화적이다

3-3. 대리 키의 단점과 보완

물론 대리 키도 단점이 있다.

  1. 사람이 봐도 의미를 알 수 없다