강의

멘토링

로드맵

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

foobar님의 프로필 이미지
foobar

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

주문 조회 V2: 엔티티를 DTO로 변환

MemberApiController에 static으로 만들어져 있는 Result<T> 메소드를 OrderApiController에서 써도 상관없나요?

작성

·

187

0

@GetMapping("/api/v2/orders")
public MemberApiController.Result orderV2() {
List<Order> orders = orderRepository.findAllByString(new OrderSearch());
List<OrderDto> collect = orders.stream()
.map(o -> new OrderDto(o)).collect(Collectors.toList());

return new MemberApiController.Result(collect);
}

이렇게 만들어지는데, 아무런 상관이없는지 궁금합니다.

퀴즈

56%나 틀려요. 한번 도전해보세요!

API에서 엔티티 직접 노출(V1) 방식의 가장 큰 문제는 무엇일까요?

LAZY 로딩으로 데이터가 누락될 수 있습니다.

엔티티 변경이 API 스펙 변경으로 이어집니다.

컬렉션 조회 시 N+1 문제가 발생합니다.

보안에 취약하여 민감 데이터가 노출됩니다.

답변 1

0

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

안녕하세요. Jungyu Choi님

상관은 없지만, 좋은 방법은 아닙니다. 다른 클래스에서도 사용하려면 Result<T> 클래스를 외부로 빼서 사용하는 것을 추천합니다.

감사합니다.

foobar님의 프로필 이미지
foobar

작성한 질문수

질문하기