simDev1234
심플하고 차분하게
simDev1234
전체 방문자
오늘
어제
  • 분류 전체보기
    • Computer Science
      • Basic Math
      • Data Structure
      • Algorithm
      • Database
      • OS
    • Language
      • Java
      • Kotlin
      • SQL
    • Framework
      • Spring
      • Orm&Mapper
      • 프로젝트로 스프링 이해하기
      • 스프링 라이브러리
    • Infra
      • Cloud
      • Docker
      • Redis
      • AWS, Azure
      • Device
    • Etc
      • CleanCoding
    • Git,Github

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 스프링
  • scanner #next() #nextLine()
  • 컨트롤러
  • 참조변수
  • 자바프로그램
  • 자바
  • 404
  • null
  • controllerTest
  • 자바프로그래밍
  • JVM메모리구조
  • 자바메모리구조
  • 참조타입

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
simDev1234

심플하고 차분하게

Framework/Orm&Mapper

[JPA] Lazy Loading 개념

2022. 11. 11. 14:43

|  관련 용어

용어 What? How?
Lazy Loading 사용자가 보지 않는 리소스는 차후에 로딩하는 기술 - 프론트 : 무한 스크롤, placeholder 등
- 백엔드 : JPA의 지연 로딩

 

|  JPA의 Lazy Loading 

- 개발자는 JPA를 통해 프록시를 만들 수 있다.

- 프록시란, 가짜 객체를 말하는 것으로, 실제 엔터티에 대한 참조값을 가진다.

- 하나의 엔터티가 다른 엔터티와 연관관계를 맺고 있을 때 (oneToMany) , 

  연관된 객체들을 처음부터 DB에서 조회하지 않고, 실제 사용하는 시점에 DB에서 조회하면 속도를 향상시킬 수 있다.

- JPA에서는 프록시가 참조하는 객체들의 데이터 조회 시점을 정하는 타입을 Fetch Type이라 하는데, 

즉시로딩 - 한 객체를 조회할 때, 참조 객체들까지 전부 읽어온다.(EAGER),
지연로딩 - 한 객체를 조회할 때, 참조 객체들은 무시하고 해당 객체의 엔터티 데이터만 가져온다.(LAZY)

- 그 타입 중에서도 지연로딩(LAZY)이 바로 Lazy Loading이다.

 

|  General한 Lazy Loading 용어 의미

- Lazy Loading은 JPA 뿐만 아니라, 프론트에서도 사용하는 용어이다. 

- 프론트에서는 이미지나 동영상 등의 리소스들을 전부 다 올리지 않고 사용자가 필요로 할 때에만 로딩하기도 하는데,

- 이 또한 페이지의 로딩이 너무 느려지는 현상을 방지하기 위해서이다.

- 결국 정리하자면, 지연 로딩은 사용자가 당장 쓰지 않는 불필요한 데이터의 로딩을 지연시키겠다는 의미이다.

 

 

[ 참고 및 출처 ]

Lazy Loading,

https://scarlett-dev.gitbook.io/all/it/undefined-1

https://programmer-chocho.tistory.com/81

https://victorydntmd.tistory.com/210

https://velog.io/@bread_dd/JPA%EB%8A%94-%EC%99%9C-%EC%A7%80%EC%97%B0-%EB%A1%9C%EB%94%A9%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C

'Framework > Orm&Mapper' 카테고리의 다른 글

[JPA] 특정 상황에서 Lazy Fetch Type 변경하기 (@EntityGraph)  (0) 2022.11.28
[JPA] CascadeType : 상위 -> 하위 엔터티 전파 타입  (0) 2022.11.28
[Entity] 중복데이터 저장 방지 (Unique Key, Index)  (0) 2022.11.11
[Transaction] Transaction에 대한 이해 (& 스프링의 @Transactionl)  (1) 2022.10.25
[JPA] 인텔리J에서 JPA Entity 기반 ERD 그리기  (0) 2022.10.19
    'Framework/Orm&Mapper' 카테고리의 다른 글
    • [JPA] 특정 상황에서 Lazy Fetch Type 변경하기 (@EntityGraph)
    • [JPA] CascadeType : 상위 -> 하위 엔터티 전파 타입
    • [Entity] 중복데이터 저장 방지 (Unique Key, Index)
    • [Transaction] Transaction에 대한 이해 (& 스프링의 @Transactionl)
    simDev1234
    simDev1234
    TIL용 블로그. * 저작권 이슈가 있는 부분이 있다면 댓글 부탁드립니다.

    티스토리툴바