일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 1차원 DP
- 2차원 dp
- 99클럽
- @Builder
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- ApplicationEvent
- assertThat
- async/await
- AVG
- AWS
- Azure
- bind
- builder
- button
- c++
- c++ builder
- c03
- Callback
- case when
- CCW
- chat GPT
- CICD
- Today
- Total
목록2024/12/07 (3)
기록
시작하면서JPA를 사용하면서 트랜잭션과 영속성 컨텍스트가 어떻게 상호작용하는지, 그리고 이를 서비스와 프리젠테이션 계층에서 어떻게 관리할지에 대한 이해는 매우 중요합니다. 이번 글에서는 트랜잭션 범위의 영속성 컨텍스트, 준영속 상태에서 발생하는 지연 로딩 문제, 그리고 OSIV(Open Session In View)를 활용해 문제를 해결하는 방법을 알아보겠습니다.1. 트랜잭션 범위의 영속성 컨텍스트1.1 트랜잭션과 영속성 컨텍스트의 관계스프링 프레임워크는 기본적으로 트랜잭션 범위의 영속성 컨텍스트 전략을 사용합니다. 이 전략은 트랜잭션의 생명주기와 영속성 컨텍스트의 생명주기가 동일하다는 의미입니다. 즉, 트랜잭션이 시작되면 영속성 컨텍스트도 생성되고, 트랜잭션이 종료될 때 함께 종료됩니다. 같은 트랜잭션..
시작하면서아래는 "자바 ORM 표준 JPA 프로그래밍" 책과 강의를 듣고 정리한 내용입니다. JPA를 사용하다 보면 성능 문제로 많은 고민을 하게 됩니다. 특히 연관관계가 설정된 엔티티를 조회할 때 발생할 수 있는 대표적인 문제로 N+1 문제가 있습니다. 이 포스팅에서는 N+1 문제의 발생 원인과 해결 방법, 검색 조건 최적화, 그리고 특정 필드만 조회하는 최적화 기법에 대해 알아보겠습니다.1. N+1 문제N+1 문제를 이해하기 위해 우선 연관된 엔티티 설계를 살펴보겠습니다. 아래는 Member와 Team의 엔티티 설계 예시입니다. Member는 Team과 다대일(ManyToOne) 관계를 가지고 있습니다.@Entitypublic class Member { @Id @GeneratedValue(..
시작하면서아래 내용은 "자바 ORM 표준 JPA 프로그래밍" 책을 읽고 정리한 내용입니다. 스프링 데이터 JPA는 Java Persistence API(JPA)를 더 쉽게 사용할 수 있도록 도와주는 모듈로, 데이터베이스와의 상호작용을 효율적으로 처리하는 데 큰 역할을 합니다. 이 모듈은 CRUD(생성, 조회, 수정, 삭제) 작업을 위한 공통 인터페이스를 제공하며, 개발자가 리포지토리를 구현할 때 인터페이스만 작성하면 실행 시점에 스프링 데이터 JPA가 해당 구현체를 동적으로 생성하고 주입해줍니다. 이를 통해 데이터 접근 계층을 간결하게 유지할 수 있고, 생산성을 크게 높일 수 있습니다.공통 인터페이스 기능스프링 데이터 JPA는 CRUD 작업을 위한 공통 메서드를 제공합니다. 대표적인 메서드는 다음과 같습..