카테고리 없음

자바 스프링 팀스터 2주

from-alien 2023. 6. 29. 21:50

 

 

 

반복적이고 번거로운 애플리케이션 단에서의 sql 작업을 줄여주기 위해서 orm 기술들이 등장을 하게 됨
ORM은 이름 그대로 객체와 DB의 관계를 매핑 해주는 도구입니다.

객체 즉, 자바의 클래스와 DB의 데이터를 직접 매핑 하려면 앞서 살펴본 것 처럼 매우 번거롭고 많은 작업들이 필요했지만 ORM을 사용하면 이를 자동으로 처리해줍니다.

 

jpa는 애플리케이션과 jdbc 사이에서 동작되고 있다.

 

jpa를 사용하면 db연결 과정을 직접 개발하지 않아도 자동으로 처리해줍니다.

 

 

-하이버네이트-

JPA 는 표준 명세이고, 이를 실제 구현한 프레임워크 중 사실상 표준하이버네이트입니다.

  • 스프링 부트에서는 기본적으로 ‘하이버네이트’ 구현체를 사용 중입니다.

ORM

일반 적으로 알고 있는 애플리케이션 class와 RDB의 테이블을 매핑한다는 뜻

예를들어 기존 방식에서 MySQL 데이터베이스를 사용하다가 PostgreSQL로 변환한다고 가정해보면, 새로 쿼리를 짜야하는 경우가 생김. 이런 경우에 ORM을 사용한다면 쿼리를 수정할 필요가 없음

 

 

 

 

 

 

영속성 컨텍스트를 표현 하자면 entity 객체를 효율적으로 쉽게 관리하기 위해 만들어진 공간이다.

 

영속성 컨텍스트에 접근하여 entity 객체를 조작하기 위해서는 entityManager가 필요합니다.

-Spring data jpa-

스프링 부트에서 해주는 역할의 간략한 예시

springboot 환경에서는 엔티티메니저팩토리와 엔티티매니저를 자동으로 생성해준다.

application.properties에 DB 정보를 전달해 주면 이를 토대로 EntityManagerFactory가 생성됩니다.

@PersistenceContext

EntityManager em;

@PersistenceConext 애너테이션을 사용하면 자동으로 생성된 EntityManager를 주입받아 사용할 수 있습니다.

 

 

@Transactional(readOnly = true)

Spring 프레임워크에서는 DB의 트랜잭션 개념을 애플리케이션에 적용할 수 있도록 트랜잭션 관리자를 제공합니다

메서드가 호출되면, 해당 메서드 내에서 수행되는 모든 DB 연산 내용은 하나의 트랜잭션으로 묶입니다.

 

 

 

 

 

 

jpa는 orm기술에대한 표준 명세이고 api이다. 응용프로그램에서 관계형 데이터베이스의 관리를 표현하는 자바 api이다.

orm을 사용하기 위한 표준 인터페이스를 모아둔 것

 

Hibernate는 jpa의 구현체 중 하나이다.

Hibernate에는 메서드 내부에서 jdbc api가 동작을 하고 있다. 

Repository 인터페이스Hibernate와 같은 JPA구현체를 사용해서 구현한 클래스를 통해 사용됩니다.

 

장점
객체지향적으로 데이터를 관리할 수 있기 때문에 비즈니스 로직에 집중 할 수 있으며, 객체지향 개발이 가능하다.
테이블 생성, 변경, 관리가 쉽다. (JPA를 잘 이해하고 있는 경우)
로직을 쿼리에 집중하기 보다는 객체자체에 집중 할 수 있다.
빠른 개발이 가능하다.

 

단점
어렵다. (많은 내용이 감싸져 있기 때문에 알아야 할 것이 많다.)