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

최영원님의 프로필 이미지
최영원

작성한 질문수

실전! 스프링 데이터 JPA

Web 확장 - 페이징과 정렬

Dto를 다 다르게 만들어야 할까요..?

작성

·

434

0

안녕하세요. 강의 너무 잘 보고 있습니다.

JPA와 관련된 질문은 아닌거 같은데 강의를 보다가 항상 궁금했던 점이 언급되어서 이렇게 질문드립니다.

엔티티를 그대로 클라이언트로 넘기면 엔티티가 변경되었을때 API 스팩이 변경되기 때문에 DTO로 변환해서 넘겨줘야 한다고 하셨는데

예를들어 만약에 10개의 API가 Member 정보를 필요로 할 경우(Member 엔티티의 필드가 약 20개 정도 된다고 가정) 각 API 마다 MemberDto 클래스를 모두 생성하고 각 MemberDto에 Member엔티티를 dto로 매핑하는 로직을 모두 작성해야 하나요..?

10개 모두 생성해서 사용하려 하니 클래스 네이밍도 어렵고 코드 중복이 너무 많아지는것 같고,
10개 API 에서 필요로하는 Member 정보를 모두 담은 하나의 MemberDto를 만들어 사용하려 하니 엔티티를 사용할 때의 문제와 같이 MemberDto를 변경하면 10개 API 스팩이 변경되는 문제가 발생합니다..

제가 생각했을때 제일 최선의 방법은 API마다 리스폰VO 클래스를 만들고 해당 클래스에 static inner 클래스로 MemberDto를 선언하는것인데..

혹시 실무에서 사용하는 best practice가 어떤거일까요..?

답변 1

1

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

안녕하세요. 최영원님

보통 공통으로 제공하는 API를 몇게 만들고, 매우 특별하게 제공해야 하는 API를 추가로 제공하는 방식을 사용합니다.

감사합니다.

최영원님의 프로필 이미지
최영원

작성한 질문수

질문하기