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

yebon2002님의 프로필 이미지

작성한 질문수

실전! 스프링 데이터 JPA

객체 생성에 대한 방법

작성

·

262

0

안녕하세요? 첫강의부터 쭉 잘 듣고 있습니다.

JPA에 대한 질문이라기 보다는 객체지향 기법과 관련된 질문입니다.

엔티티 클래스에 최대한 setter지양하고 필드의 변경 포인트를 해당 엔티티로 모으는 것을 강조하셨고,

객체 생성 시점에 생성자로 필요한 필드들을 다 받아서 생성(저는 of가 더 좋네요)하는 게 좋다고도 말씀하셨지요.

근데 실무 개발하다보면 엔티티에 필드들이 최소 10개 이상은 되고 초반에 세팅되어야 할 값들이 많아지더라구요. 이 상황에서 파라미터가 10개 이상되는 argument constructor나 of를 이용해서 객체를 생성하는게... 맞는가? 예쁜가? 더 좋은 방법은 없는가? 생각이 들더라고요. 클린코드 같은 책보면 파라미터 개수는 3갠가 4개 이하로 유지하는게 좋다고도 하고 가독성도 떨어져 보입니다.

그래서 그냥 default constructor를 public으로 열어두고, setter도 열어둬서 객체 생성을 setAaa, setBbb, setCcc 등으로 해서 하나씩 하게 됩니다. 물론 세팅해줘야할 필드의 누락의 문제나 변경 포인트 관리 어려움 등의 문제가 생기겠지만요.

요약하자면, 생성 시점에 많은 필드들을 이용해 객체를 생성해야 할 때 어떻게 하시는지, 어떻게 하는게 좋을 지 의견 부탁드립니다.

감사합니다.

답변 1

3

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. yebon2002님 좋은 질문입니다^^

딱 궁금해하시는 문제를 해결하기 위해서 Builder 패턴이 있습니다.

Lombok을 사용하면 좀 더 편리하게 문제를 해결할 수 있습니다. (저도 실무에서 생성 파라미터가 너무 많을 때 종종 사용합니다.)

google에 lombok builder로 검색해보시면 원하시는 결과를 얻을 수 있을꺼에요^^

감사합니다~