- 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 | 31 |
- 팀네이버 공채
- 책
- 브랜치전략
- 캐싱전략
- SPRING JWT
- network
- 젠킨스
- container
- infra
- LazyInitialization
- docker
- 후기
- 리뷰
- chrome80
- 프로젝트
- JWT
- 스프링
- JPA
- websocket
- jenkins
- Project
- Kotlin
- 만들면서 배우는 클린 아키텍처
- Java
- spring
- SpringBoot
- 팀네이버
- Spring Security
- redis
- EntityTransaction
목록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 에 ..