inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

즉시 로딩을 사용하면 좋을 때가 있을까요?

403

Byunguk Ahn

작성한 질문수 3

0

안녕하세요 강의 정말 잘 듣고 실무에서도 열심히 사용하고 있습니다.

 

강의에서 lazy loading과 fetch join을 활용하여 최적화 하는 부분에 대해서는 이해를 하고 있습니다.

 

그렇다면 eager loading은 사용을 피해야하는 걸까요?

아니면 어떤 케이스에 대해서는 즉시 로딩이 더 실무적으로 유용한 경우가 있을까요?

즉시 로딩이 사용을 지양해야 된다면 JPA에서 굳이 만들지 않았을 것 같은데 어떤 상황에서 사용해야할지에 대해 의문점이 듭니다.

 

제가 생각했을 땐 테이블 분리를 위해 엔티티를 나누었지만 항상 같이 조회되는 상황이나 OneToOne 상황에서는 크게 상관없을 것 같긴한데 필요없는 컬럼까지 즉시 로딩으로 가져오는게 성능에 크게 영향을 끼치는지에 대해 궁금합니다.

 

이외에도 실무적으로 이럴 땐 지연 로딩보단 즉시 로딩이 더 적합하다라는 상황이 있다면 조언 부탁드리겠습니다.

감사합니다!

 

java spring spring-boot jpa

답변 1

0

y2gcoder

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

저도 즉시 로딩을 사용하지 않지만 말씀하셨던 것처럼 테이블이 분리되어있으나 비즈니스 상 항상 같이 조회하는 상황에서는 즉시 로딩을 고려해보는 것 같습니다.

lazy loading 을 사용하면서 항상 연관 엔티티를 같이 조회해야할 때는 fetch join을 항상 명시적으로 붙여줘야 하지만, eager loading에서는 그런 수고로움이 줄어들기 때문입니다.

 

감사합니다.

1

Byunguk Ahn

안녕하세요 서포터즈님. 먼저 답변 감사드립니다.

사실 한 테이블의 데이터가 너무 많아 분리하려고 할 때 위 방법을 생각하긴 했었습니다.

그럼 현업에서는 위와 같은 상황 외에는 eager loading 을 사용할 일은 없다고 보는게 맞을까요?

0

y2gcoder

저는 거의 없다고 생각하고 있습니다. 같이 조회해야 하면 조회용 모델을 따로 만드는 방법도 사용하는 것 같습니다!

강의 관련 외 질문입니다.

0

66

2

SpringBoot4 + Hibernate7 모듈 등록 방법 공유

0

90

1

BeanCreationException

0

88

3

Update 후 UpdateMemberResponse 매핑할 때

0

47

1

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

0

99

2

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

0

70

1

Query Dsl Q파일 질문입니다.

0

82

1

루트 쿼리라는것은

0

58

1

메서드를 분리하는 기준

0

63

1

findAllWithMemberDelivery 메서드 질문드립니다.

0

110

3

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

0

84

2

fetch join과 영속화와 OSIV의 관계

0

86

2

Distinct 사용 전 결과에 대한 의문

0

113

2

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

0

57

1

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

0

78

2

dto 필드 속 엔티티 여부

0

60

1

뷰템플릿 사용 시

0

76

2

Result 클래스 관련 질문

0

56

1

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

0

86

1

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

0

135

1

OSIV ON 상태일 때

0

96

1

fetch join VS fetch join 페이징 궁금증

0

180

2

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

0

105

1

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

0

165

2