본문 바로가기

Spring/자바 ORM 표준 JPA 프로그래밍

(6)
06. 다양한 연관관계 매핑 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편에 대해 공부하고, 정리한 내용입니다.1. 연관관계 매핑 시 고려사항JPA를 사용하여 객체와 테이블 간의 연관관계를 매핑할 때는 몇 가지 중요한 사항을 고려해야 합니다. 이러한 고려사항은 올바른 설계와 최적의 성능을 보장합니다.1) 연관관계 매핑 시 고려해야 할 3가지다중성: 연관관계의 수(다대일, 일대다, 일대일, 다대다)를 의미합니다.단방향, 양방향: 객체 관계의 방향성을 정의합니다.연관관계의 주인: 외래 키(Foreign Key)를 관리하는 주체를 결정합니다.(1) 다중성다중성은 연관된 엔티티 간의 관계가 몇 대 몇인지를 정의합니다. JPA에서 지원하는 다중성 매핑 어노테이션은 다음과 같습니다:다..
05. 연관관계 매핑 기초 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편에 대해 공부하고, 정리한 내용입니다.1. 객체와 테이블 연관관계의 이해JPA에서 객체와 테이블의 연관관계를 어떻게 매핑하고 관리할 것인가는 매우 중요합니다. 이 글에서는 연관관계의 기본 개념과 매핑 방법을 설명하고, 실무에서 사용하는 올바른 패턴을 구체적으로 다룹니다.1) 목표객체와 테이블 연관관계의 차이를 이해합니다.객체의 참조와 테이블의 외래 키를 매핑하는 방법을 익힙니다.연관관계의 주요 용어를 이해합니다:방향(Direction): 단방향, 양방향다중성(Multiplicity): 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M)연관관계의 주인(Owner): 객체 양방향 연관관계..
04. 엔티티 매핑 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편에 대해 공부하고, 정리한 내용입니다.1. 엔티티 매핑JPA를 실무에 적용할 때 가장 중요한 부분 중 하나는 실제 객체와 RDB를 어떻게 매핑해서 사용하는지에 대한 이해입니다.1) 엔티티 매핑 소개객체와 테이블 매핑: @Entity, @Table필드와 컬럼 매핑: @Column기본 키 매핑: @Id연관관계 매핑: @ManyToOne, @JoinColumn(1) @Entity@Entity가 붙은 클래스는 JPA가 관리하는 엔티티입니다.JPA를 사용해서 테이블과 매핑할 클래스는 @Entity가 필수입니다.주의사항:기본 생성자가 필수입니다(파라미터가 없는 public 또는 protected 생성자).fina..
03. 영속성 관리 - 내부 동작 방식 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편에 대해 공부하고, 정리한 내용입니다.1. 엔티티 매니저 팩토리 & 엔티티 매니저1) 엔티티 매니저 팩토리- 생성 비용이 큼- 여러 스레드 동시 접근에 안전2) 엔티티 매니저- 생성 비용이 거의 없음- 여러 스레드 동시 접근 시 동시성 문제 발생, 스레드 간 공유 금지(1) 웹 어플리케이션 구조- EntityManagerFactory에서 다수의 엔티티 매니저를 생성- 엔티티 매니저는 데이터베이스 연결이 꼭 필요한 시점까지 커넥션을 얻지 않음- 보통 트랜잭션을 시작할 때 커넥션을 획득- JPA 구현체들은 EntityManagerFactory 생성 시 커넥션 풀도 함께 생성- J2EE 환경(스프링 포함)에..
02. JPA 시작하기 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편에 대해 공부하고, 정리한 내용입니다.1. 프로젝트 생성1) IntelliJ IDEA에서 프로젝트 생성- IntelliJ IDEA를 실행한 후, [파일] > [새로 만들기] > [새 프로젝트] 메뉴를 선택하여 새 프로젝트를 생성합니다.- 프로젝트 생성 시, 프로젝트 SDK와 빌드 도구(Maven 또는 Gradle)를 선택합니다.- Maven 프로젝트를 사용하는 경우 pom.xml 파일을 통해 종속성을 관리합니다.- Gradle 프로젝트를 사용하는 경우 build.gradle 파일을 통해 종속성을 관리합니다.2. 종속성 설정1) Hibernate 라이브러리 추가- JPA를 사용하기 위해 Hibernate..
01. JPA 소개 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편에 대해 공부하고, 정리한 내용입니다.01. SQL 중심적인 개발의 문제점CRUD 쿼리의 반복 작성 문제:기존 SQL 중심의 개발에서는 CRUD(Create, Read, Update, Delete) 작업을 위한 SQL 쿼리를 반복 작성해야 했습니다. JPA는 이를 자동으로 생성해 주어 개발자의 작업을 간소화합니다.패러다임 불일치 해결:상속: 객체 지향에서는 상속 관계가 명확하지만, RDB에서는 슈퍼타입-서브타입 관계로 간접적으로 표현됩니다. JPA는 객체 상속 구조를 데이터베이스 테이블에 맞게 매핑해줍니다.연관관계: 객체 지향에서는 객체 간 참조로 관계를 맺지만, RDB에서는 외래 키를 사용합니다. J..