문제최근 로그인ID를 이메일 말고 사번으로 변경해달라는 요구사항이 있었다. 기본키를 대리키로 설계했던 터라 별 무리없이 변경할 수 있을 듯 했는데, 자세히 살펴보니 대부분의 코드가 변경되어야 하는 대작업이었다. 분명 이런 상황을 대비해서 대리키를 채택한 것인데, 뭐가 잘못된걸까?JPA 기본키Entity를 DB에서 식별할 수 있는 값으로, 중복(null 포함)일 수 없고 변하지 않는 값이어야 한다. 개발이 어느정도 진행되고 난 다음에는 수정하기가 매우 어렵기 때문에, 설계 초기에 확실하게 규칙을 정하고 가는 것이 옳다.자연키 vs 대리키 자연키(Natural Key)대리키(Surrogate Key)정의업무적으로 의미가 있는 실제 데이터 값을 키로 사용(예: 주민등록번호, 사업자번호, ISBN)임의로 생성된..