- JPA 란?
1. JPA는 Java Persistence API이다.
: JPA는 java에서 DBMS에 데이터를 영구히 저장할 수 있도록 하는 API 환경을 의미힌다.
: API(Application Programming Interface)는 프로그램을 만들기 위해 제공해주는 인터페이스를 의미한다.프로토콜과 인터페이스는 모두 일종의 약속을 의미하지만, 인터페이스는 상하관계가 있는 약속이고, 프로토콜(ex>www)은 동등한 관계에서 적용되는 약속을 의미한다.즉, JPA는 자바로 프로그램을 할 때 영구적으로 데이터를 저장하기 위해 필요한 인터페이스를 의미한다.
2. JPA는ORM(Object Relational Mapping) 기술이다.
: ORM이란, 객체를 데이터베이스에 연결하기 위한 방법론을 의미한다.
: 모델링이란 추상적인 개념을 현실로 뽑아내는 것을 의미한다.
: 데이터베이스 테이블에 있는 데이터들을 Input(DELETE, UPDATE, INSERT)하거나 Output(SELECT)할 때, 데이터베이스 테이블에 있는 데이터 타입과 자바에서 이용되는 데이터 타입이 서로 다르므로, 클래스를 이용해 데이터베이스에 있는 테이블을 모델링해야 한다.이를 DB세상에 있는 데이터를 자바세상에 모델링한다고 표현한다.
// 데이터베이스에 있는 데이터를 자바로 모델링하는 예시
class Team{
int id;
String name;
String year;
}
:위와 같은 관계로 모델링의 순서는 데이터베이스 테이블을 먼저 생성하고, 자바로 데이터를 모델링 하는 순서로 이루어져 왔다. 하지만 ORM 개념이 등장하고, 자바 객체를 우선 만들면 데이터베이스 테이블이 자동생성될 수 있게 되었고, 이를 위해서는 JPA 인터페이스가 이용된다. 즉, JPA를 이용해 자바 객체를 우선 생성한 후 이를 이용해 데이터베이스 테이블을 자동 생성해주는 모델링 기법을 ORM이라고 한다.
3. JPA는 반복적인 CRUD를 생략하게 해준다.
: JPA를 이용하지 않고, CRUD 작업을 하면 작업의 순서는 다음과 같이 이루어진다.
- 자바 프로그램에서 DB에 connection을 요청한다.
- DB는 요청에 대한 신분을 확인하고, 세션을 열어준다.
- 세션이 오픈되면, 자바 프로그램과 DB간에 connection이 생겨 연결이 생성된다.
- 이후 2번째 요청부터는 자바프로그램에서 쿼리를 전송할 수 있게 되고, DB는 쿼리를 실행해 데이터를 반환한다.
- 데이터를 반환받는 자바 프로그램은 다시금 데이터의 타입을 자바에서 프로그램에서 이용될 수 있도록 타입 변환작업을 하게 된다.
: JPA는 위와 같은 일련의 작업들을 함수로 제공해서, 위와 같은 작업들을 반복할 필요가 없어진다.
'Spring' 카테고리의 다른 글
[메타코딩] 6강. JPA(Java Persistence API)란? (0) | 2023.09.15 |
---|---|
[메타코딩] 5강. JPA(Java Persistence API)란? (0) | 2023.09.15 |
[메타코딩] 3강. 스프링 프레임워크란? (0) | 2023.09.10 |
[메타코딩] 2강. 스프링 프레임워크란? (0) | 2023.08.31 |
[메타코딩] 1강. 스프링 프레임워크란? (0) | 2023.08.30 |