JPA 3

[Spring JPA] 연관관계 매핑 (4)

연관관계가 필요한 이유 예제 시나리오를 보며 설명을 진행한다. 예제 시나리오회원과 팀이 있다.회원은 하나의 팀에만 소속될 수 있다.회원과 팀은 다대일 관계다. 객체를 테이블에 맞추어 모델링 예제 시나리오에 따라 객체를 테이블에 맞추어 모델링해보면 다음과 같이 나타낼 수 있다.  다음과 같은 모델링 결과를 통해 알 수 있는 점은 객체 간에는 연관관계가 없지만, 테이블 간에는 연관관계가 존재한다는 점이다. 테이블을 자세히 살펴보면, 멤버와 팀이 다대일 관계를 가지고 있고, 이 중, '다'의 관계인 Member가 Foreign Key를 가지고 있는 것을 알 수 있다.   참조 대신에 외래키를 그대로 사용 현재 객체를 테이블에 맞추어 모델링을 진행했으므로 참조 대신에 외래키를 그대로 사용하여 연관관계 매핑을 진..

Spring 2024.05.16

[Spring JPA] 영속성 컨텍스트 (2)

JPA에서 가장 중요한 두 가지 사항이 있는데, 바로 객체와 관계형 데이터베이스를 매핑하는 것과 영속성 컨텍스트를 이해하는 것이다. 이번에는 영속성 컨텍스트에 대해 알아볼 것인데, 영속성 컨텍스트에 대해 명확히 이해한다면 JPA가 어떻게 동작하는지 정확히 이해할 수 있다.  엔티티 매니저 팩토리와 엔티티 매니저 그 전에 JPA를 사용하기 위해서는 먼저 엔티티 매니저 팩토리와 엔티티 매니저에 대해 이해해야 한다.  다음과 같은 웹 어플리케이션을 개발할 때, 엔티티 매니저 팩토리는 고객의 요청이 올 때마다 엔티티 매니저를 생성하게 된다. 엔티티 매니저는 내부적으로 데이터베이스 커넥션을 사용해서 DB를 사용하게 된다.  영속성 컨텍스트 영속성 컨텍스트란, JPA를 이해하는데 가장 중요한 용어로 "엔티티를 영구..

Spring 2024.05.12

[Spring JPA] JPA 소개 (1)

JPA 우리는 애플리케이션 개발 시 주로 객체 지향 언어와 관계형 데이터베이스를 사용하여 개발한다. 과거에 JPA가 등장하기 전에는 개발자들은 SQL에 의존적인 개발을 피할 수 없었다. 하지만 SQL 중심적인 개발을 하게 되면 다음과 같은 문제가 발생한다.무한 반복, 지루한 코드객체 하나를 보관하고 꺼내고 삭제하려면 계속해서 쿼리를 작성해야 한다. 이러한 문제를 해결하기 위해 JPA가 등장하게 되었다. JPA란 Java Persistence API의 약자로, 자바 진영의 ORM 기술 표준을 말한다. ORM (Object Relational Mapping) ORM은 Object Relational Mapping의 약자로 말 그대로 객체와 관계를 매핑하는 것을 말한다. 즉, Relational은 관계형 DB..

Spring 2024.05.12