Backend 96

JPA (Spring Data JPA) - 컨트롤러 파라미터에서 엔티티의 ID를 자동으로 엔티티 객체로 변환하는 방법 (도메인 클래스 컨버터)

📌 목차 1. 도메인 클래스 컨버터란? 2. 도메인 클래스 컨버터 적용 전 3. 도메인 클래스 컨버터 적용 후 4. 도메인 클래스 컨버터의 동작 방식 5. 도메인 클래스 컨버터의 한계 및 주의사항 6. 정리 ">📌 목차1. 도메인 클래스 컨버터란? 2. 도메인 클래스 컨버터 적용 전 3. 도메인 클래스 컨버터 적용 후 4. 도메인 클래스 컨버터의 동작 방식 5. 도메인 클래스 컨버터의 한계 및 주의사항 6. 정리 1. 도메인 클래스 컨버터란?">1. 도메인 클래스 컨버터란?도메인 클래스 컨버터(Domain Class Converter) 는 HTTP 요청에서 전달된 엔티티의 ID 값을 기반으로 자동으로 엔티티 객체로 변환해주는 기능이다.즉, 컨트롤러에서 객체의 ID를 직접 조회하는 코드 없이(예: fi..

Backend/JPA 2025.03.12

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

Spring Boot에서 MultipartFile 저장 위치 확인 및 활용 방법

📌 목차 1. MultipartFile의 기본 저장 위치 확인 2. MultipartFile의 임시 저장 경로 얻기 3. HttpServletRequest를 사용한 파일 접근 4. 특정 위치에 저장 후 경로 확인 5. 정리 ">📌 목차1. MultipartFile의 기본 저장 위치 확인 2. MultipartFile의 임시 저장 경로 얻기 3. HttpServletRequest를 사용한 파일 접근 4. 특정 위치에 저장 후 경로 확인 5. 정리 1. MultipartFile의 기본 저장 위치 확인">1. MultipartFile의 기본 저장 위치 확인Spring Boot에서 MultipartFile을 처리할 때 기본적으로 JVM의 임시 디렉토리에 저장된다.이 경로는 OS에 따라 다를 수 있으며, 다음..

CORS 오류를 해결하기 위한 다양한 방법

📌 목차 1. CORS란 무엇인가? 2. Spring Boot 전역 CORS 설정 3. 컨트롤러 단에서 CORS 설정 4. Spring Security 사용 시 CORS 설정 5. Axios 요청에서 CORS 설정 6. 브라우저 캐시 삭제 및 추가 점검 7. 정리 ">📌 목차1. CORS란 무엇인가? 2. Spring Boot 전역 CORS 설정 3. 컨트롤러 단에서 CORS 설정 4. Spring Security 사용 시 CORS 설정 5. Axios 요청에서 CORS 설정 6. 브라우저 캐시 삭제 및 추가 점검 7. 정리 1. CORS란 무엇인가?">1. CORS란 무엇인가?CORS(Cross-Origin Resource Sharing)는 브라우저에서 보안상의 이유로 서로 다른 출처(Origin)..

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