강의

멘토링

커뮤니티

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

이신행님의 프로필 이미지
이신행

작성한 질문수

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

프로필 주소(profile_address) 제거 시 Unique 위반에 관한 질문

해결된 질문

작성

·

70

·

수정됨

0

안녕하세요 토비님! 항상 강의를 통해 새로운 시야를 얻는 것 같아 감사하게 듣고 있습니다!

강의를 수강하던 중 궁금한 점이 하나 생겨 질문 드립니다.

우선 현재 Section7, 39강까지 수강한 상태입니다.

 

도메인 규칙 상으로 프로필 주소가 제거 가능하다고 정해졌고, 이는 코드로 상세히 표현되었다고 생각했습니다.

하지만 "프로필 주소는 제거할 수 있다"라는 규칙을 적용해 memberA가 프로필 주소를 빈 문자열 형태로 변경한다면, memberB의 경우 동일하게 빈 문자열을 저장할 수 없으니 프로필 주소를 제거할 수 없는 것 아닌가라는 생각이 들었습니다.

그래서 기존 Github에 공개된 코드 테스트에서 실험을 진행했습니다. (제 코드는 차이가 있을 수 있어서 공개된 자료를 이용했습니다.)

 

MemberRegisterTest#updateInfoFail 에 아래와 같이 테스트를 추가해 보니

entitymanager.flush() 부분에서 Unique index or primary key violation 이 발생했습니다.

에러 테스트.png

 

제 생각에는 도메인 규칙을 변경하거나, profile_address의 값이 빈 문자열일 경우 NULL을 저장하도록 로직을 변경해야한다고 생각합니다.

혹시 제가 놓친 부분이 있는지, 토비님의 의견은 어떠신지 궁금합니다.

 

항상 감사하게 수강하고 있습니다!

답변 1

0

토비님의 프로필 이미지
토비
지식공유자

앗. 제거시 공백 문자로 바꾸면 중복 문제가 발생한다는 것을 놓쳤네요. 말씀하신 대로 DB 필드에 unique 조건이 걸려있더라도 문제가 되지 않도록 제거시 null 값으로 설정해야 하는 것이 맞습니다.

다른 분들이 지적해주신 내용들에 더해서 이 내용도 반영해서 다음 강의에 이어서 설명하도록 하겠습니다. 감사합니다.

이신행님의 프로필 이미지
이신행
질문자

답변 감사합니다. 다음 강의도 기대하겠습니다!

이신행님의 프로필 이미지
이신행

작성한 질문수

질문하기