Backend/JPA 23

JPA (Spring Data JPA)- Auditing을 활용한 엔티티 자동 생성 및 수정 정보 기록

📌 목차 1. Auditing이란? 2. 순수 JPA를 이용한 Auditing 구현 3. Spring Data JPA Auditing 적용 4. 등록자 및 수정자 정보 저장 5. 실무에서 Spring Security와 연계 6. 정리 ">📌 목차1. Auditing이란? 2. 순수 JPA를 이용한 Auditing 구현 3. Spring Data JPA Auditing 적용 4. 등록자 및 수정자 정보 저장 5. 실무에서 Spring Security와 연계 6. 정리 1. Auditing이란?">1. Auditing이란?Auditing(감사 로깅)이란 엔티티의 생성 및 수정 시점에 자동으로 등록일, 수정일, 등록자, 수정자를 기록하는 기능을 의미한다.즉, 데이터가 언제 생성되었고, 언제 수정되었으며, ..

Backend/JPA 2025.03.12

JPA (Spring Data JPA) - 사용자 정의 리포지토리 개념과 구현 방법

📌 목차 1. Spring Data JPA 기본 리포지토리 2. 사용자 정의 리포지토리 필요성 3. 사용자 정의 리포지토리 동작 방식 4. 사용자 정의 리포지토리 인터페이스 5. 사용자 정의 리포지토리 구현 6. 기존 JPA 리포지토리와 통합 7. 최신 사용자 정의 리포지토리 구현 방식 8. 사용자 정의 리포지토리 활용 예제 9. 정리 ">📌 목차1. Spring Data JPA 기본 리포지토리 2. 사용자 정의 리포지토리 필요성 3. 사용자 정의 리포지토리 동작 방식 4. 사용자 정의 리포지토리 인터페이스 5. 사용자 정의 리포지토리 구현 6. 기존 JPA 리포지토리와 통합 7. 최신 사용자 정의 리포지토리 구현 방식 8. 사용자 정의 리포지토리 활용 예제 9. 정리 1. Spring Data JP..

Backend/JPA 2025.03.12

JPA (Spring Data JPA) - 쿼리 메소드 기능 (예제 코드)

📌 목차 1. Spring Data JPA 쿼리 메소드 개요 2. 쿼리 메소드 3가지 유형 3. 메소드 이름 기반 쿼리 4. NamedQuery 활용 5. @Query 어노테이션 활용 6. DTO 조회 7. 페이징과 정렬 8. 벌크 연산 9. @EntityGraph (N+1 문제 해결) 10. JPA 힌트 & 락 ">📌 목차1. Spring Data JPA 쿼리 메소드 개요 2. 쿼리 메소드 3가지 유형 3. 메소드 이름 기반 쿼리 4. NamedQuery 활용 5. @Query 어노테이션 활용 6. DTO 조회 7. 페이징과 정렬 8. 벌크 연산 9. @EntityGraph (N+1 문제 해결) 10. JPA 힌트 & 락 1. Spring Data JPA 쿼리 메소드 개요">1. Spring Dat..

Backend/JPA 2025.03.11

JPA - 값 타입 매핑: 기본 개념부터 실무 적용까지

📌 목차 1. 기본 값 타입 2. 임베디드 타입(복합 값 타입) 3. 값 타입과 불변 객체 4. 값 타입의 비교 5. 값 타입 컬렉션 6. 정리 ">📌 목차1. 기본 값 타입 2. 임베디드 타입(복합 값 타입) 3. 값 타입과 불변 객체 4. 값 타입의 비교 5. 값 타입 컬렉션 6. 정리 1. 기본 값 타입">1. 기본 값 타입JPA에서 데이터 타입은 엔티티 타입과 값 타입으로 나뉜다.엔티티 타입@Entity로 정의된 객체식별자(ID)가 있어 데이터를 지속적으로 추적할 수 있음변경되더라도 ID가 유지되므로 동일한 엔티티로 인식예시: Member, Order 등값 타입int, double, String 같은 단순한 값식별자가 없고 변경 시 추적 불가능예시: 주소(Address), 근무 기간(Perio..

Backend/JPA 2025.02.27

JPA - 영속성 전이(CASCADE)와 고아 객체(부모 엔티티를 통해 자식의 생명주기 관리)

📌목차 1. 영속성 전이(CASCADE)란? 2. CASCADE의 종류 3. 고아 객체 제거 4. 영속성 전이와 고아 객체 제거를 함께 사용할 때 5. 활용 사례 6. 정리 ">📌목차1. 영속성 전이(CASCADE)란? 2. CASCADE의 종류 3. 고아 객체 제거 4. 영속성 전이와 고아 객체 제거를 함께 사용할 때 5. 활용 사례 6. 정리 1. 영속성 전이(CASCADE)란?">1. 영속성 전이(CASCADE)란?JPA에서 영속성 전이(Cascade)는 특정 엔티티를 영속 상태로 만들 때, 연관된 엔티티도 함께 영속 상태로 만드는 기능을 의미한다.주로 부모-자식 관계에서 부모를 저장하면 자식도 자동으로 저장되도록 할 때 사용한다.영속성 전이가 필요한 이유부모 엔티티와 자식 엔티티를 함께 관리할..

Backend/JPA 2025.02.24

JPA - 프록시와 지연 로딩 (불필요한 데이터 조회 방지)

📌 목차 1. 프록시란? 2. 프록시 객체의 생성과 동작 방식 3. 프록시 객체의 특징 4. 지연 로딩(LAZY) vs 즉시 로딩(EAGER) 5. 프록시 객체 확인 및 강제 초기화 6. 프록시와 지연 로딩 활용 사례 7. 정리 ">📌 목차1. 프록시란? 2. 프록시 객체의 생성과 동작 방식 3. 프록시 객체의 특징 4. 지연 로딩(LAZY) vs 즉시 로딩(EAGER) 5. 프록시 객체 확인 및 강제 초기화 6. 프록시와 지연 로딩 활용 사례 7. 정리 1. 프록시란?">1. 프록시란?프록시(Proxy)는 실제 엔티티 객체를 감싸고 있는 가짜 객체다.JPA에서 엔티티를 조회할 때, 성능 최적화를 위해 프록시를 활용하면 데이터베이스 조회를 지연할 수 있다.즉, 처음부터 실제 엔티티를 로딩하지 않고, ..

Backend/JPA 2025.02.24

JPA 고급 매핑 - 상속관계 매핑과 @MappedSuperclass (테이블 구조 상속화 및 공통 엔티티 관리)

📌 목차 1. 상속관계 매핑 개요 2. 상속관계 매핑 전략 3. 조인 전략(JOINED) 4. 단일 테이블 전략(SINGLE_TABLE) 5. 구현 클래스마다 테이블 전략(TABLE_PER_CLASS) 6. @MappedSuperclass - 공통 매핑 정보7. 관련 어노테이션 8. 활용 사례">📌 목차1. 상속관계 매핑 개요 2. 상속관계 매핑 전략 3. 조인 전략(JOINED) 4. 단일 테이블 전략(SINGLE_TABLE) 5. 구현 클래스마다 테이블 전략(TABLE_PER_CLASS) 6. @MappedSuperclass - 공통 매핑 정보7. 관련 어노테이션 8. 활용 사례 1. 상속관계 매핑 개요">1. 상속관계 매핑 개요객체지향 프로그래밍에서는 상속(Inheritance)을 통해 부모 클..

Backend/JPA 2025.02.21

JPA 다양한 연관관계 매핑 개념(다중화, 일대일, 다대다, 다대일, 일대다)

📌 목차 1. 연관관계 매핑 시 고려사항 2. 다대일(N:1) 관계 3. 일대다(1:N) 관계 4. 일대일(1:1) 관계 5. 다대다(N:M) 관계6. 정리 ">📌 목차1. 연관관계 매핑 시 고려사항 2. 다대일(N:1) 관계 3. 일대다(1:N) 관계 4. 일대일(1:1) 관계 5. 다대다(N:M) 관계6. 정리 1. 연관관계 매핑 시 고려사항">1. 연관관계 매핑 시 고려사항JPA에서 연관관계를 매핑할 때는 3가지 요소를 고려해야 한다.1. 다중성(Multiplicity)다대일(@ManyToOne)일대다(@OneToMany)일대일(@OneToOne)다대다(@ManyToMany)2. 단방향 vs. 양방향단방향: 한쪽에서만 참조 가능양방향: 양쪽에서 참조 가능 (mappedBy 설정 필요)3. 연관관..

Backend/JPA 2025.02.21

JPA 연관관계 매핑 - 단방향과 양방향 연관관계 및 연관관계의 주인

📌 목차 1. 연관관계가 필요한 이유 2. 단방향 연관관계 3. 양방향 연관관계와 연관관계의 주인 4. 연관관계 매핑 실전 예제 5. 정리 ">📌 목차1. 연관관계가 필요한 이유 2. 단방향 연관관계 3. 양방향 연관관계와 연관관계의 주인 4. 연관관계 매핑 실전 예제 5. 정리 1. 연관관계가 필요한 이유">1. 연관관계가 필요한 이유조영호(『객체지향의 사실과 오해』)는 객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이라고 말한다.즉, 객체 간의 관계를 명확히 설정하여 객체들이 서로 원활하게 협력할 수 있도록 하는 것이 중요하다.객체와 테이블의 관계 차이비교 항목객체테이블연관관계 표현참조 필드(team) 사용외래 키(TEAM_ID) 사용탐색 방식객체의 참조(member.getTea..

Backend/JPA 2025.02.20

JPA 기본 매핑 - 객체, 테이블, 컬럼 및 기본 키 매핑

📌 목차 1. 객체와 테이블 매핑 2. 데이터베이스 스키마 자동 생성 3. 필드와 컬럼 매핑 4. 기본 키 매핑 5. 정리 ">📌 목차1. 객체와 테이블 매핑 2. 데이터베이스 스키마 자동 생성 3. 필드와 컬럼 매핑 4. 기본 키 매핑 5. 정리 1. 객체와 테이블 매핑">1. 객체와 테이블 매핑객체와 테이블 매핑(Object-Relational Mapping, ORM)은 JPA를 사용하여 자바 객체를 데이터베이스의 테이블과 연결하는 것을 의미한다.이를 통해 개발자는 SQL을 직접 작성하지 않고도 객체 지향적인 방식으로 데이터를 관리할 수 있다.객체와 테이블 매핑을 위한 기본 어노테이션@Entity : JPA에서 관리하는 엔티티 객체로 지정@Table(name = "테이블명") : 특정 테이블과 매..

Backend/JPA 2025.02.19