강의

멘토링

로드맵

Inflearn Community Q&A

leejaehoon's profile image
leejaehoon

asked

Real-world! Spring Boot and JPA Utilization 2 - API Development and Performance Optimization

Membership Inquiry API

Dto

Written on

·

522

0

위강의에 MemberDto에 만약 address필드까지 추가해야한다면 MemberDto 리스트를 만들때

List<MemberDto> collect = findMembers.stream()
                .map(m -> new MemberDto(m.getName(),m.getAddress()))
                .collect(Collectors.toList()); 

위와 같이 해준다면 MemberDto에서의 address와 findMembers에서의 address가 같은 주소값을 참조하고 있어 상황에 따라 뜻하지 않는 에러가 발생할 수 있다고 생각하는데 MemberDto에서 address 객체를 아예 새로 만드는 것이 더 좋을까요?? 현업에서는 어떻게 사용하는지 궁금합니다!

javaspringspring-bootjpa

Quiz

API 개발에서 JPA 엔티티 객체를 요청 파라미터나 응답 값으로 직접 사용하는 것을 지양해야 하는 주된 이유는 무엇일까요?

데이터베이스 성능이 저하되기 때문입니다.

API의 스펙이 엔티티의 변화에 직접적으로 영향을 받기 때문입니다.

클라이언트 측의 데이터 파싱 로직이 복잡해지기 때문입니다.

네트워크 전송량이 불필요하게 증가하기 때문입니다.

Answer 1

0

안녕하세요, dlwogns3413 님. 공식 서포터즈 y2gcoder 입니다.

보통은 조회성 데이터로 내려보내줄 데이터들은 엔티티에 사용한 클래스들과 분리해주는 게 안전하다고 생각해서 Address도 새로운 dto로 매핑하는 편입니다. 본인 혼자만 담당하고 있고 실수하지 않을 것 같다고 생각하면 그대로 쓰셔도 됩니다. 트레이드오프를 잘 따져서 선택하시면 좋겠습니다 :)

감사합니다.

leejaehoon's profile image
leejaehoon

asked

Ask a question