~/tech-blog/tag/JPA — zsh

#JPA 39 posts

카테고리를 가로질러 JPA를 다룬 글을 모았습니다.

SPRING JPA

식별자 (Identifiers), 관계 (Relationships)

JPA의 ID 생성 전략과 OneToMany, OneToOne, ManyToMany 연관관계 매핑에서 성능을 고려한 실무 선택 기준을 정리합니다.

c31d7cd · Spring JPA — 7 min
SPRING JPA

상속 매핑 전략

JPA의 상속 매핑 전략인 SINGLE_TABLE, JOINED, TABLE_PER_CLASS, MappedSuperclass를 비교하고 실무 선택 기준과 성능 최적화 팁을 정리합니다.

efa5056 · Spring JPA — 4 min
SPRING JPA

데이터 액세스 스택

JPA·Hibernate 기반 데이터 액세스 계층에서 SQL 로깅, 스키마 관리, 커넥션 풀 모니터링 등 성능을 좌우하는 요소들을 정리합니다.

c31d7cd · Spring JPA — 5 min
SPRING JPA

영속성 컨텍스트

JPA 영속성 컨텍스트의 캐싱·더티 체킹·쓰기 지연 동작 원리와 플러시 발생 시점을 정리하고, 배치 처리와 플러시 모드를 활용한 성능 최적화 방법을 소개합니다.

c31d7cd · Spring JPA — 6 min
DATABASE

DB 낙관적 락

재고 차감 동시성 테스트로 문제를 재현하고, JPA @Version 기반 낙관적 락의 동작 원리와 사용 시점, 주의할 점을 정리합니다.

2024.09.13 · c31d7cd · Database — 4 min
도메인 주도 개발 시작하기 · 4/10

리포지터리와 모델 구현

도메인 주도 개발 시작하기 4장을 정리하며, 밸류 타입의 JPA 매핑 방법과 애그리거트를 완전한 상태로 저장·조회하는 전략을 다룹니다.

2023.08.23 · c915a20 · 도메인 주도 개발 시작하기 — 12 min
도메인 주도 개발 시작하기 · 8/10

애그리거트 트랜잭션 관리

애그리거트를 동시에 수정할 때 발생하는 일관성 문제를 선점 잠금과 비선점 잠금으로 해결하는 방법을 JPA 구현 예시와 함께 정리합니다.

2023.09.30 · efa5056 · 도메인 주도 개발 시작하기 — 5 min
SPRING JPA

LazyInitializationException이 나는 이유

배치에서 Quartz로 실행할 때만 FetchType.LAZY 객체를 불러오지 못하고 LazyInitializationException이 발생한 원인과 해결 방법을 정리합니다.

2023.01.20 · ea0f709 · Spring JPA — 2 min
QUERYDSL · 1/6

프로젝트 생성과 환경 설정

Querydsl 학습을 위해 스프링 부트 프로젝트를 생성하고, Gradle 빌드 설정과 H2 데이터베이스, 쿼리 로그 확인 방법을 정리합니다.

2022.05.11 · c31d7cd · Spring JPA — 2 min
QUERYDSL · 2/6

예제 도메인 모델

Querydsl 실습에 사용할 Member, Team 엔티티를 설계하고 양방향 연관관계와 롬복 설정을 정리합니다.

2022.05.11 · c31d7cd · Spring JPA — 1 min
QUERYDSL · 3/6

기본 문법

JPQL과 비교하며 Querydsl의 기본 문법인 검색 조건, 정렬, 페이징, 집합, 조인, 서브쿼리, Case문을 정리합니다.

2022.05.11 · c31d7cd · Spring JPA — 6 min
QUERYDSL · 4/6

중급 문법

Querydsl의 프로젝션과 DTO 조회 방법, BooleanBuilder와 Where절을 활용한 동적 쿼리, 벌크 연산과 SQL Function 호출법을 정리합니다.

2022.05.16 · c31d7cd · Spring JPA — 3 min
QUERYDSL · 5/6

순수 JPA와 함께 쓰기

순수 JPA 리포지토리에 Querydsl을 도입하고, BooleanBuilder와 Where절 파라미터로 동적 쿼리를 최적화한 뒤 조회 API를 만드는 과정을 정리합니다.

2022.05.17 · efa5056 · Spring JPA — 2 min
QUERYDSL · 6/6

스프링 데이터 JPA와 함께 쓰기

스프링 데이터 JPA 리포지토리에 Querydsl을 결합하는 사용자 정의 리포지토리 패턴과, 카운트 쿼리를 최적화한 페이징 처리 방법을 정리합니다.

2022.05.17 · c31d7cd · Spring JPA — 2 min
스프링 데이터 JPA · 1/6

프로젝트 환경설정

스프링 데이터 JPA 실습 프로젝트의 Gradle 설정, 라이브러리 구성, H2 데이터베이스 연동과 기본 동작 확인 과정을 정리합니다.

2022.05.02 · c31d7cd · Spring JPA — 4 min
스프링 데이터 JPA · 2/6

예제 도메인 모델과 동작 확인

실습에 사용할 Member, Team 엔티티와 양방향 연관관계를 정의하고, 순수 JPA로 저장·조회 동작을 확인합니다.

2022.05.02 · efa5056 · Spring JPA — 1 min
스프링 데이터 JPA · 3/6

공통 인터페이스 기능

순수 JPA로 기본 CRUD 리포지토리를 만들어본 뒤, 스프링 데이터 JPA의 공통 인터페이스 JpaRepository로 대체하는 과정을 정리합니다.

2022.05.03 · c31d7cd · Spring JPA — 3 min
스프링 데이터 JPA · 4/6

쿼리 메소드 기능

메소드 이름으로 쿼리를 생성하는 방법부터 @Query, 파라미터 바인딩, 페이징과 정렬, 벌크 연산, @EntityGraph까지 쿼리 메소드 기능을 정리합니다.

2022.05.03 · c31d7cd · Spring JPA — 8 min
스프링 데이터 JPA · 5/6

확장 기능

사용자 정의 리포지토리 구현, Auditing, 도메인 클래스 컨버터, 웹 페이징·정렬 등 스프링 데이터 JPA의 확장 기능을 정리합니다.

2022.05.09 · c31d7cd · Spring JPA — 5 min
스프링 데이터 JPA · 6/6

스프링 데이터 JPA는 어떻게 동작하는가

스프링 데이터 JPA 공통 인터페이스 구현체 SimpleJpaRepository의 동작과 save() 메서드의 신규 엔티티 판단 로직을 정리합니다.

2022.05.10 · ea0f709 · Spring JPA — 2 min
자바 ORM 표준 JPA · 1/13

JPA 시작하기

JPA 프로젝트에 필요한 라이브러리 설정부터 EntityManager로 엔티티를 저장·조회하는 기본 동작 방식, JPQL 사용법까지 정리합니다.

2022.04.29 · c31d7cd · Spring JPA — 2 min
자바 ORM 표준 JPA · 2/13

영속성 컨텍스트

엔티티의 생명주기와 1차 캐시, 쓰기 지연, 변경 감지, 플러시 등 영속성 컨텍스트가 제공하는 핵심 기능을 정리합니다.

2022.04.29 · c31d7cd · Spring JPA — 5 min
자바 ORM 표준 JPA · 3/13

엔티티 매핑

@Entity, @Table, @Column 등 엔티티와 테이블을 매핑하는 어노테이션과 IDENTITY·SEQUENCE·TABLE 기본 키 생성 전략을 정리합니다.

2022.04.29 · efa5056 · Spring JPA — 7 min
자바 ORM 표준 JPA · 4/13

연관관계 매핑 기초

객체와 테이블의 연관관계 차이를 이해하고, 단방향·양방향 매핑과 연관관계의 주인을 정하는 기준을 예제로 정리합니다.

2022.04.29 · efa5056 · Spring JPA — 4 min
자바 ORM 표준 JPA · 5/13

다양한 연관관계 매핑

다대일·일대다·일대일 연관관계를 단방향과 양방향으로 매핑하는 방법과 각 전략의 장단점을 정리합니다.

2022.04.29 · efa5056 · Spring JPA — 4 min
자바 ORM 표준 JPA · 6/13

상속관계 매핑과 @MappedSuperclass

객체의 상속 구조를 테이블로 옮기는 세 가지 전략을 비교하고, 공통 매핑 정보를 모으는 @MappedSuperclass의 쓰임을 정리합니다.

2022.04.29 · efa5056 · Spring JPA — 3 min
자바 ORM 표준 JPA · 7/13

프록시의 동작 원리

JPA 프록시 객체가 만들어지고 초기화되는 과정을 em.getReference() 예제로 살펴보고, 프록시 사용 시 주의할 점을 정리합니다.

2022.04.29 · c31d7cd · Spring JPA — 2 min
자바 ORM 표준 JPA · 8/13

즉시 로딩과 지연 로딩

지연 로딩과 즉시 로딩의 동작 차이를 프록시 조회 관점에서 정리하고, 실무에서 지연 로딩을 써야 하는 이유를 짚습니다.

2022.04.29 · ea0f709 · Spring JPA — 1 min
자바 ORM 표준 JPA · 9/13

영속성 전이와 고아 객체

JPA CASCADE 옵션으로 부모와 자식 엔티티를 함께 영속화하는 방법과 orphanRemoval로 고아 객체를 제거하는 원리를 정리합니다.

2022.04.29 · efa5056 · Spring JPA — 2 min
자바 ORM 표준 JPA · 10/13

값 타입 기초 - 기본값 타입과 임베디드 타입

JPA의 값 타입 개념과 기본값 타입, 임베디드 타입의 사용법, @AttributeOverride로 컬럼명을 재정의하는 방법을 정리합니다.

2022.04.29 · c31d7cd · Spring JPA — 3 min
자바 ORM 표준 JPA · 11/13

값 타입 공유와 불변 객체

값 타입을 공유할 때 발생하는 부작용과 불변 객체 설계, 값 타입 컬렉션의 제약과 이를 엔티티로 대체하는 실무 방법을 정리합니다.

2022.04.29 · c31d7cd · Spring JPA — 3 min
자바 ORM 표준 JPA · 12/13

JPQL 기본 문법

JPQL의 기본 문법과 TypedQuery, 파라미터 바인딩, 프로젝션, 페이징, 조인, 서브쿼리, CASE 식 등 자주 쓰는 문법을 정리합니다.

2022.04.29 · c31d7cd · Spring JPA — 5 min
자바 ORM 표준 JPA · 13/13

JPQL 경로 표현식과 페치 조인

JPQL 경로 표현식에서 명시적 조인과 묵시적 조인의 차이를 정리하고, 페치 조인의 동작 방식과 페이징·DISTINCT 관련 한계를 설명합니다.

2022.04.29 · c31d7cd · Spring JPA — 4 min
스프링 부트와 JPA 활용 · 1/4

스프링 부트와 JPA로 만드는 API 기본

회원 등록·수정·조회 API를 예제로, 엔티티 대신 DTO를 사용해 API 스펙과 엔티티를 분리하는 방법을 정리합니다.

2022.04.26 · c31d7cd · Spring JPA — 3 min
스프링 부트와 JPA 활용 · 2/4

지연 로딩과 조회 성능 최적화

엔티티 직접 노출부터 DTO 변환, 페치 조인, DTO 직접 조회까지 주문 조회 API의 성능을 단계적으로 최적화하는 방법을 정리합니다.

2022.04.26 · c31d7cd · Spring JPA — 3 min
스프링 부트와 JPA 활용 · 3/4

컬렉션 조회 최적화

일대다 컬렉션을 포함한 주문 조회 API를 엔티티 노출부터 페치 조인, 배치 사이즈, DTO 직접 조회, 플랫 데이터까지 단계별로 최적화하는 방법을 정리합니다.

2022.04.26 · c31d7cd · Spring JPA — 9 min
스프링 부트와 JPA 활용 · 4/4

API 개발 성능 최적화 정리

OSIV를 켰을 때와 껐을 때의 트레이드오프를 살펴보고, Command와 Query를 분리해 복잡성을 관리하는 방법을 정리합니다.

2022.04.28 · ea0f709 · Spring JPA — 2 min
스프링 입문 · 10/12

스프링 JPA 통합 테스트

JPA 엔티티 매핑과 EntityManager 기반 리포지토리를 구현하고, SpringConfig의 빈 설정만 바꿔 JDBC 구현체를 JPA로 교체하는 과정을 정리합니다.

c31d7cd · Spring — 2 min
● main 214 posts UTF-8 LF © 2026 코징 RSS · GitHub