inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

API 개발 고급 정리

컬렉션 조회 최적화 - 엔티티 조회 vs DTO 직접 조회

741

HH

작성한 질문수 20

0

안녕하세요 강의 정말 잘 듣고있습니다.

해당 챕터의 마지막 강의인 "API 개발 고급 정리" 영상에서 엔티티 조회 방식과 DTO 직접 조회 방식 중 어떤 것을 더 권장하는지에 대해 설명해주시는 부분에 대해 질문이 생겼습니다.


저는 아무래도 DTO 조회 방식은 쿼리문도 까다롭고 DTO를 추가로 만들어야 하기 때문에 우선 손이 잘 안가는 느낌이있었던 반면에,

엔티티 조회는 쿼리가 더 단순하고 배치사이즈 옵션으로 쉽게 페이징도 적용할 수 있어서 좀 더 다가오긴했습니다.

두 방식에 대한 차이와 장단점을 듣고나서는 네트워크 성능과 컴퓨터 성능이 워낙 좋아져서 엔티티 조회 방식으로 접근해도 거의 충분하다라고 이해를 했는데요.
강의를 만드신 시기가 몇년 전인만큼 현재는 시간이 흘러 네트워크 성능과 컴퓨터 성능이 더 발전했는데
지금은 엔티티 조회하는 방식만으로 컬렉션 조회하는데 성능 문제가 없을까요?

java spring spring-boot jpa

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

컬렉션 조회 방식에 대해 엔티티 조회와 DTO 직접 조회 두 가지 방식을 비교하였을 때, 만약 조인이 필요한 경우에는 DTO 직접 조회를 권장합니다. 이는 네트워크 부하와 쿼리 부하를 줄일 수 있으며 컬렉션 데이터의 양이 많아질수록 성능 차이가 두드러지게 나타나기 때문입니다.

하지만 개발 환경이나 상황에 따라서는 엔티티 조회 방식으로도 충분히 성능 문제 없이 컬렉션 조회가 가능합니다. 이는 컴퓨터 성능과 네트워크 성능의 개선으로 인해 이전보다 더 빠른 성능이 가능해졌기 때문입니다.

따라서, 엔티티 조회 방식에서도 컬렉션 조회에 대한 성능 문제가 없다면 DTO 직접 조회 방식까지 추가 작업을 할 필요는 없습니다. 하지만 조인이 필요한 경우나 컬렉션 데이터가 많은 경우에는 DTO 직접 조회 방식을 고려해볼 필요가 있습니다.

감사합니다.

강의 관련 외 질문입니다.

0

67

2

SpringBoot4 + Hibernate7 모듈 등록 방법 공유

0

92

1

BeanCreationException

0

90

3

Update 후 UpdateMemberResponse 매핑할 때

0

49

1

트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?

0

100

2

페이징 + 검색조건 관련해서 질문드립니다.

0

70

1

Query Dsl Q파일 질문입니다.

0

83

1

루트 쿼리라는것은

0

59

1

메서드를 분리하는 기준

0

63

1

findAllWithMemberDelivery 메서드 질문드립니다.

0

110

3

연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략

0

86

2

fetch join과 영속화와 OSIV의 관계

0

86

2

Distinct 사용 전 결과에 대한 의문

0

114

2

레포지토리 계층에서의 트랜잭션에 대한 의문

0

58

1

영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.

0

78

2

dto 필드 속 엔티티 여부

0

60

1

뷰템플릿 사용 시

0

76

2

Result 클래스 관련 질문

0

56

1

@PostConstruct 프록시 관련 질문드립니다

0

86

1

DTO 대신 Form 사용은 안되나요?

0

137

1

OSIV ON 상태일 때

0

96

1

fetch join VS fetch join 페이징 궁금증

0

182

2

양방향 연관관계 알아보는 법?

0

105

1

16강 17강 간단 정리 이게 맞을까요 ?

0

165

2