본문 바로가기

프로그래밍/JPA

JPA_JPA와 connection pool

JPA란 ? 

: JPA(Java Persistence API)는 자바 진영의 ORM(Object-Realational Mapping)프레임 워크를 사용하기 위한 인터페이스를 모아둔 것이다. 

여기서 ORM이란 Java 객체를 데이터베이스 테이블로 변환하는 프로세스를 말한다. 즉, 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 기술이다. (코드를 짜면 데이터베이스가 생성됨.)
 
 

JPA 의존성 추가하기

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.mysql:mysql-connector-j'

 

JPA 특징 7가지

1. Java Persistence API
2. JPA ORM 기술
3. JPA는 반복적인 CRUD 작업의 생략
4. JPA는 Persistence Context를 가지고 있다.
5. JPA는 DB와 OOP의 불일치성을 해결하기 위한 방법론을 제공한다.
6. JPA는 OOP의 관점에서 모델링을 할 수 있게 해준다. (상속, 컴포지션, 연관 관계)
7. 방언 처리가 용이하여 Migration하기 좋다.

 
 

1. Java Persistence API 

: 영속성(persistence)은 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미한다.
영속성은 파일 시스템, 관계형 데이터베이스 혹은 객체 데이터베이스 등을 활용하여 구현한다. 영속성을 갖지 않는 데이터는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램을 종료하면 모두 잃어버리게 된다. 결국 영속성은 특정 데이터 구조를 이전 상태로 복원할 수 잇게 해주어 프로그램의 종료와 재개를 자유롭게 해준다.
 

2. JPA ORM 기술

: ORM(객체 - 관계 매핑)은 객체 지향 프로그래밍 언어와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 기술이다.
객체 지향 프로그래밍에서는 클래스와 객체를 사용하여 데이터와 행위를 표현하지만, 관계형 데이터베이스에서는 테이블 레코드를 사용한다. 
 
ORM은 이 둘 간의 불일치를 해결하기 위해 객체와 데이터베이스 간의 매핑을 자동으로 처리해주어 객체 지향 프로그래밍을 보다 편리하고 효율적으로 작업할 수 있게 만들어주는 기술이다.
 

3. JPA는 반복적인 CRUD 작업의 생략

: select, selectAll, delete, update, insert 등 굉장히 반복되는 작업들을 자동으로 만들어준다.
 

4. JPA는 Persistence Context를 가지고 있다.

→ 이전에 검색했던 데이터를 갖고 오기 위해 굳이 db에 접근하지 않음. 성능을 높인다.
 
 

5. JPA는 DB와 OOP의 불일치성을 해결하기 위한 방법론을 제공한다.

'프로그래밍 > JPA' 카테고리의 다른 글

JPA_테이블 생성  (0) 2023.06.06
JPA_JPA yml 파일 설정  (0) 2023.06.06
JPA_더티체킹(dirty checking)  (0) 2023.05.13
JPA_Pageable 페이징 처리  (0) 2023.05.13