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

경민님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

엔티티 설계시 주의점

setter 안 쓰고 연관관계 편의 메서드 생성

해결된 질문

작성

·

257

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
무분별한 setter 사용은 엔티티가 왜 변경되는지 추적하기가 힘들어지므로 가급적 setter은 생성하지 말고 엔티티에 대한 값 변경을 하려면 편의 메서드를 통해 변경하도록 김영한 선생님께서 권고하셨습니다.

하지만 연관관계 편의 메서드의 로직을 구성할 때 setter가 사용됐는데 setter을 사용하지 않고 연관관계를 설정하는 방법이 궁금합니다 !

답변 2

2

안녕하세요. 경민님, 공식 서포터즈 OMG입니다.

다른 수강생분들은 @Builder로 빌더패턴으로도 setter대신 연관관계 편의메소드를 구현하시더라구요 😀

제 개인적인 생각으로 편의메서드에 빌더까지 써야할까 싶긴합니다.

Setter 사용을 지양해야하는 것은 맞지만 강박관념을 갖을 필요는 없고,

필요한 필드에만 Setter를 제약적으로 열어두어 사용할 것 같습니다.

 

참고)

https://www.inflearn.com/questions/903422 (댓글 2번항목)

https://www.inflearn.com/questions/419013

감사합니다.

0

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

경민님의 질문은 연관관계 편의 메서드 생성 시 setter를 사용하지 않고 연관관계를 설정하는 방법에 대한 것입니다. 질문의 핵심은 엔티티 값 변경 시 추적 용이성 향상과 무분별한 setter 사용에 따른 부작용을 최소화하는데 있습니다. 김영한 선생님이 권고한 바와 같이, 엔티티의 상태 변경은 투명하게 관리되어야 하며, 가급적 setter 사용을 지양하고 변경 지점을 명확히 하기 위한 방법을 찾고 계신 것 같습니다.

이와 관련하여 유사한 질문에 대한 답변들을 찾아보았습니다. 아래의 링크들은 연관관계 편의 메서드 생성 시 setter 대신 사용할 수 있는 방법과 기법에 대한 토론과 예시를 제공합니다. 특히, 연관관계 설정에 있어서의 다양한 접근 방식과 best practice를 확인할 수 있습니다.

  1. setter을 사용하지 않는다면 어떻게 해야 할까요? - 이 질문과 답변은 setter를 최소화하는 방법에 대해 설명하며, 연관관계 편의 메서드를 작성하는 과정에서 builder 패턴 등의 대안을 논의합니다.

  2. 양방향 연관관계 편의 메소드, 생성 메소드에 대해 질문드립니다. - 연관관계 메서드와 생성 메서드를 이용한 예시 코드 및 강사님의 조언을 포함하고 있습니다. 여기서 생성 메서드란 entity를 생성할 때 특정 필드를 초기화하는 메서드로, 연관관계를 설정하는 로직을 포함할 수 있습니다.

이러한 자료들은 경민님께서 궁금해하시는 연관관계 편의 메서드를 setter 없이 구현하는 방법에 대한 구체적인 가이드라인을 제공할 것입니다.

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

경민님의 프로필 이미지

작성한 질문수

질문하기