| 관련 용어
용어 | 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
'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 |