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

Byunguk Ahn님의 프로필 이미지

작성한 질문수

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

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

23.10.15 00:49 작성

·

314

0

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

 

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

 

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

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

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

 

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

 

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

감사합니다!

 

답변 1

0

y2gcoder님의 프로필 이미지

2023. 10. 16. 09:28

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

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

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

 

감사합니다.

Byunguk Ahn님의 프로필 이미지
Byunguk Ahn
질문자

2023. 10. 21. 02:47

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

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

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

y2gcoder님의 프로필 이미지

2023. 10. 22. 19:34

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