1. 과거의 영향이군요. 경험이 많으신 분께만 들을 수 있는 답변 주셔서 정말 감사드립니다.
-> 네^^
2. 혹시 Address 객체의 멤버변수에 final을 붙이면 문제가 생길까요? 이것도 Entity로 봐야하는지 궁금합니다.
-> Address 객체가 값 객체인데요. JPA에서 사용하기 때문에 final을 붙이면 안됩니다.
4. 그럼 실무에서는 연관관계 메서드를 양쪽에 전부 정의하는 경우는 없는지 궁금합니다. 단순하게 생각했을 때, 서로 overwrite을 하니 문제 없을거란 생각이 들어서요.
-> 양쪽에 전부 정의할 수도 있습니다. 그런데 실제 해보면, 잘못하면 무한루프에 빠질 수 있기 때문에 주의해서 잘 설정해주셔야 합니다. 그런데 양쪽에 이렇게 두는 게 막상 해보면, 더 혼란을 가중하더라구요. 비즈니스 관계는 하나만 있는게 경험상 더 좋았습니다.
5. 말씀 감사드립니다. 다만, 제가 여쭤본 내용과 살짝 다른 것 같습니다. :) 배우면서 최소한의 공유의 중요성을 체감하고 있고, 좋은 설계를 위해 노력하고 있지만, 위 상황에서 저라면 private으로 쓰고 문제가 왜 생겼는지 알아보기 위해 헤맸을 것 같다는 생각이 듭니다. JPA에서 private을 허용하지 않고 protected까지만 쓸 수 있다는 것은, 자연스럽게 컴파일 오류를 고치다보니 알게 된 것인지, tool을 배워 시간 투자를 한 부분인지 궁금합니다.! (이 부분에서 tool을 위한 시간이 많이 쓰이는지 궁금하여 여쭤본 질문이었습니다.)
-> tool이라는 것이 어떤 것을 말씀하시는지 정확히 모르겠어요. IDE를 말씀하시는지, 라이브러리를 말씀하시는지 등이요. 저의 경우는 JPA 공부를 하면서 자연스럽게 private을 사용하면 안된다는 것을 알게 되었고, 그래서 차선으로 protected를 선택했습니다. tool을 위한 시간이라는 것이 어떤 것인지 자세히 설명해주시겠어요?