강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

katastrophe님의 프로필 이미지
katastrophe

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Orders Microservice - 개요

혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??

작성

·

17

0

안녕하세요. user, catalog, order 를 보면 엔티티에서 pk 대신 별도의 유니크키를 사용하고 있는데, 특별한 이유가 있을까요 ??

이 별도의 유니크 키가 어그리거트 루트로 사용되는걸까요 ??

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

pk 외 별도의 id를 부여하는 이유에 대한 질문에 대해 설명드리겠습니다. 데이터베이스에서는 기본 키(primary key, pk)를 설정하여 각 레코드의 고유성을 보장합니다. 그러나 엔티티에서 추가적으로 유니크한 키를 사용하는 이유는 여러 가지가 있을 수 있습니다:

  1. 비즈니스 아이디: 시스템 내부적으로 유지되어야 하는 식별자(pk)와 외부 시스템이나 클라이언트에게 노출해도 괜찮은 식별자(별도의 유니크 키)를 나누기 위해서입니다. pk는 내부적으로만 사용하고 외부 노출에는 별도의 UUID 등을 사용하는 경우가 많습니다.

  2. 데이터베이스 마이그레이션이나 시스템 통합: 기존 시스템에서 새로운 시스템으로 데이터를 이관할 때 원래 시스템의 pk와 충돌을 피하기 위해 별도의 유니크 키를 도입하기도 합니다.

  3. 유지보수성 및 시스템 확장성: 별도의 유니크 키를 사용함으로써 시스템 확장이나 변경이 필요한 경우 유연하게 대처할 수 있습니다.

  4. 어그리게이트 루트: DDD(도메인 주도 개발) 관점에서 어그리게이트 루트를 식별하는 식별자로 별도의 키를 사용하여, 해당 어그리게이트의 모든 구성 요소가 동일한 유니크 키 하에 관리될 수 있도록 하는 경우도 있습니다.

관련하여 더 깊이 있는 논의나 예제를 원하신다면, 아래 링크의 기존 질문과 답변을 참고하시면 도움이 될 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

katastrophe님의 프로필 이미지
katastrophe

작성한 질문수

질문하기