inflearn logo
강의

Course

Instructor

Learning Refactoring by Coding

Refactoring 9. Passing the whole object

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

237

yoonjoy

42 asked

0

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

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

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

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

 

 

refactoring java intellij

Answer 1

0

whiteship

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

0

yoonjoy

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

1

whiteship

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

리팩토링 10. 함수를 명령으로 바꾸기 강의 부분에서 질문있습니다.

0

94

1

함수 추출하기 부분에서 의도와 구현에 대해 질문 있습니다.

0

202

1

레코드에 대해 질문 있습니다.

0

219

2

.github 토큰 등록하는 방법에 대한 질문

0

220

2

깃허브

0

202

1

홈 디렉토리 .github 파일 생성

0

456

1

리팩토링 22. 여러 함수를 변환 함수로 묶기 강의 내용과 소스 코드가 다른 부분 문의

0

554

1

필드를 감추는 것이 중요한 이유?

0

568

1

오타제보. CVS -> CSV

0

375

0

객체의 필드 몇개만 전달할 경우, 통째로 넘기기 vs 여러개로 넘기기

0

510

0

[오탈자제보] 아주 작은 오타

2

401

0

basePrice

0

294

1

4:04 단축키 궁금합니다.

0

435

1

rename 메뉴에 대한 사소한 질문

0

356

1

테스트 코드 예제

0

308

1

Exception 부분

0

338

1

리팩토링 강의 [ 일부 소스 파일 누락 ]

0

331

1

stream으로 변경 시 성능 문제

0

437

2

로컬 변수에 final

0

458

1

Area 밑줄 나온부분

0

404

1

클래스의 상속 vs 네임스페이스 vs nested 클래스

0

322

1

이런 경우도 따로 함수로 빼는게 좋을지 궁금합니다.

0

279

1

질문입니다

2

265

1

해당 강의를 실행시 아래와 같은 에러가 발생합니다..!

0

598

2