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

강낭콩님의 프로필 이미지
강낭콩

작성한 질문수

코딩으로 학습하는 리팩토링

리팩토링 9. 객체 통째로 넘기기

파라미터와 이들을 가진 클래스

작성

·

180

0

안녕하세요 기선님! 강의 항상 잘 듣고 있습니다. 오늘 궁금한 점은 파라미터 수를 줄이기 위해 해당 파라미터를 갖고 있는 다른 클래스를 의존해도 되는가 입니다

제가 작성한 코드 중 A  메소드에서 여러개의 파라미터를 받는데, 그 파라미터들이 한 엔티티 클래스의 필드들입니다. 그리고 이 A 메소드에서 사용되는 파라미터들이 또 다른 메소드들에서도 공통적으로 사용되고 있는 상황입니다.

그래서 저는 이 공통적으로 사용되는 파라미터를 가진 DTO 클래스를 만든 후 이 클래스에 해당 엔티티를 받는 팩토리 메소드를 만들어서 A를 비롯한 여러 메소드의 파라미터를 DTO 하나로 줄이는 리팩토링을 진행했습니다.

하지만 해당 엔티티 클래스는 필드가 10개가 넘고, 고작 이 엔티티의 필드 몇개를 사용하기 위해 의존하는 것은 다소 무거운 게 아닌가라는 고민이 생기는데, 기선님의 시각은 어떠한지 궁금합니다!

 

 

답변 1

0

백기선님의 프로필 이미지
백기선
지식공유자

해당 엔티티를 직접 참조하지 않고 DTO를 만들어서 참조하게 한 이유는 무엇인가요?

강낭콩님의 프로필 이미지
강낭콩
질문자

해당 엔티티가 JPA 엔티티이고 이 엔티티를 수정할 일이 없어서 엔티티를 직접 참조하는 것 보다 필요한 값만 래핑한 dto를 넘겨주는게 좋겠다라는 판단을 하게 되었습니다!

백기선님의 프로필 이미지
백기선
지식공유자

그렇군요. 해당 DTO를 불변 객체로 데이터 참조용으로만 만들어서 제공한다면 변경될 수 있는 엔티티를 넘기는것보다 안전하고 명시적이겠네요. 좋은 선택인것 같습니다.

강낭콩님의 프로필 이미지
강낭콩

작성한 질문수

질문하기