인프런 커뮤니티 질문&답변
혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??
작성
·
17
0
안녕하세요. user, catalog, order 를 보면 엔티티에서 pk 대신 별도의 유니크키를 사용하고 있는데, 특별한 이유가 있을까요 ??
이 별도의 유니크 키가 어그리거트 루트로 사용되는걸까요 ??
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
pk 외 별도의 id를 부여하는 이유에 대한 질문에 대해 설명드리겠습니다. 데이터베이스에서는 기본 키(primary key, pk)를 설정하여 각 레코드의 고유성을 보장합니다. 그러나 엔티티에서 추가적으로 유니크한 키를 사용하는 이유는 여러 가지가 있을 수 있습니다:
비즈니스 아이디: 시스템 내부적으로 유지되어야 하는 식별자(pk)와 외부 시스템이나 클라이언트에게 노출해도 괜찮은 식별자(별도의 유니크 키)를 나누기 위해서입니다. pk는 내부적으로만 사용하고 외부 노출에는 별도의 UUID 등을 사용하는 경우가 많습니다.
데이터베이스 마이그레이션이나 시스템 통합: 기존 시스템에서 새로운 시스템으로 데이터를 이관할 때 원래 시스템의 pk와 충돌을 피하기 위해 별도의 유니크 키를 도입하기도 합니다.
유지보수성 및 시스템 확장성: 별도의 유니크 키를 사용함으로써 시스템 확장이나 변경이 필요한 경우 유연하게 대처할 수 있습니다.
어그리게이트 루트: DDD(도메인 주도 개발) 관점에서 어그리게이트 루트를 식별하는 식별자로 별도의 키를 사용하여, 해당 어그리게이트의 모든 구성 요소가 동일한 유니크 키 하에 관리될 수 있도록 하는 경우도 있습니다.
관련하여 더 깊이 있는 논의나 예제를 원하신다면, 아래 링크의 기존 질문과 답변을 참고하시면 도움이 될 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





