Entity id 생성 방식 정리
빠른 ID 생성
- 특징
- 엔티티가 생성되기 전 ID 정책에 따라서 직접 생성된다.
- key를 시스템에서 만들어낸다는 것은 기본적으로 충돌 내성이 필요하다
- 예시
- 도메인 모델에서 직접 generateId() 를 호출하여 ID를 발급
- 엔티티 생성하기 전에 먼저 DB에게 getNextId() 호출해서 ID를 발급
- 식별자 생성을 위한 BoundedContext를 만들고, 분산 환경에서도 유일한 ID 생성
- 장점
- 엔티티가 DB 저장 전이라도 도메인 이벤트 발행 시, id값이 포함될 수 있다
- 단점
- 직접 관리해줘야하고, 충돌의 위험이 존재한다.
느린 ID 생성
- 특징
- 엔티티가 생성된 후 ID가 생성된다.
- 예시
- AutoIncrement로 설정한 JPA-Entity ID
- 장점
- 엔티티 저장 시 동시성 이슈로부터 자유롭다.
- 단점
- ID가 명백히 DB 의존적이다.