inflearn logo
강의

Course

Instructor

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

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

403

Byunguk Ahn

3 asked

0

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

 

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

 

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

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

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

 

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

 

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

감사합니다!

 

java spring spring-boot jpa

Answer 1

0

y2gcoder

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

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

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

 

감사합니다.

1

Byunguk Ahn

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

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

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

0

y2gcoder

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

강의 관련 외 질문입니다.

0

68

2

SpringBoot4 + Hibernate7 모듈 등록 방법 공유

0

92

1

BeanCreationException

0

91

3

Update 후 UpdateMemberResponse 매핑할 때

0

50

1

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

0

101

2

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

0

70

1

Query Dsl Q파일 질문입니다.

0

84

1

루트 쿼리라는것은

0

60

1

메서드를 분리하는 기준

0

65

1

findAllWithMemberDelivery 메서드 질문드립니다.

0

111

3

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

0

86

2

fetch join과 영속화와 OSIV의 관계

0

87

2

Distinct 사용 전 결과에 대한 의문

0

117

2

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

0

59

1

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

0

78

2

dto 필드 속 엔티티 여부

0

60

1

뷰템플릿 사용 시

0

77

2

Result 클래스 관련 질문

0

56

1

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

0

86

1

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

0

138

1

OSIV ON 상태일 때

0

96

1

fetch join VS fetch join 페이징 궁금증

0

187

2

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

0

106

1

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

0

166

2