- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- spring
- 프로젝트
- 스프링
- 후기
- Spring Security
- 브랜치전략
- JPA
- 책
- redis
- LazyInitialization
- container
- Project
- docker
- JWT
- 젠킨스
- network
- jenkins
- websocket
- 팀네이버 공채
- infra
- Java
- 팀네이버
- 캐싱전략
- 리뷰
- chrome80
- SPRING JWT
- EntityTransaction
- SpringBoot
- 만들면서 배우는 클린 아키텍처
- Kotlin
목록spring/jpa (2)
PPAK

SQL 에서 서로 다른 테이블을 연관지어 불러오기 위해 사용되는 inner join 과 outer join 외에 JPA 의 JPQL 에서는 fetch join 을 제공합니다. 이전 포스팅 에서 확인했듯 JPA 는 영속화를 바탕으로 데이터베이스 테이블과 직접적으로 연결되는 엔티티 객체를 추적하고, 관리하는 방식을 채택하여 불필요한 쿼리 생성을 최소화 합니다. 대표적으로 Transaction 내의 쓰기 지연 방식과 지연 로딩을 예로 들 수 있는데 오늘은 지연 로딩 사용시 발생할 수 있는 N+1 문제와 이를 해결할 수 있는 방법인 Fetch Join(join fetch) 에 대해서 알아보려고 합니다. 지연 로딩(Lazy Loading) 은 실제 연관관계에 있는 엔티티들 중 하나를 조회하려고 했을 때, 데이터..

보편적으로 서비스가 구동되는 과정에서 데이터의 최종 저장소는 데이터베이스이다. 그 중에서도 관계형 데이터베이스는 우리가 보편적으로 사용하는 데이터베이스 모델이며 키(pk)를 통해 값을 조회하는 방식을 가진다. 자바 진영에서는 JDBC API 를 통해서 데이터베이스와의 직접적인 연결관계를 구축한다. JDBC 예제 코드를 살펴보면 connection 을 생성하고, SQL 문을 전송하여 데이터를 송수신 하고, connection 을 닫는 형태를 가지는데, 개발자가 매번 데이터베이스에 접근하려 할 때마다 위와 같은 중복된 로직을 작성하는 것은 굉장히 비효율적일 것이다. 이와 같은 반복되는 로직을 줄이고자 SQL Mapper, ORM 등과 같은 기술이 탄생하였는데, 오늘은 ORM 의 개념을 담고있는 JPA 에 ..