JPA란? -1

joon·2021년 7월 4일
0

스프링부트 이론

목록 보기
2/5

JPA란?

  1. JPA는 Java Persistence API이다.
  2. JPA는 ORM기술이다.
  3. JPA는 반복적인 CRUD작업을 생략하게 해준다.

1. JPA는 Java Persistence API로 자바 프로그래밍할 때 영구적으로 데이터를 저장하기 위해서 필요한 인터페이스이다.

자바는 데이터를 하드디스크(파일시스템)가 아닌 하드디스크(DBMS)에 저장한다. JPA는 다시말해서 자바에 있는 데이터를 영구히 기록할 수 있는 환경(DBMS)을 제공하는 API이다.

우선 인터페이스는 무엇일까? 인터페이스는 컴퓨터 시스템끼리 정보를 교한하는 공유 경계를 의미한다. 쉽게 말해서 기계 장치들끼리 정보를 교환하기 위한 수단이나 방법을 의미한다. 예를 들어 리모콘과 TV가 있을 때 tv를 켜기 위해 리모콘 전원을 누른다. 사전에 tv와 통신을 하기 위해 리모콘은 tv에 의해 정의된 규격에 의해서 어떤 신호를 보낼 수 있도록 만든 장치이다. 이러한 신호를 주고 받기 위한 방법을 인터페이스라고 한다.

API란 애플리케이션 프로그래밍 인터페이스를 의미한다. 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다
쉽게 말해서 어떤 응용프로그램에서 데이터를 주고 받기 위한 방법을 의미한다. 특정 사이트에서 데이터를 공유할 때 어떤 방식으로 요청하는지 어떤 데이터를 제공받을 수 있는지에 대한 규격을 말한다.
예를 들어 지도, 교통 API는 해당 사이트에서 수집하고 있는 지도, 교통 정보를 사용자에게 쉽게 제공하기 위한 사이트이다.

프로토콜과 인터페이스의 차이점은 뭘까
인터페이스와 프로토콜은 모두 약속이고 규칙이다. 그러한 반면 인터페이스는 시스템과 시스템을 연결하기 위한 표준 방법이고 프로토콜은 데이터를 교환할때 표준화된 방법이다.
또한 계층 구조 모델에서 봤을 때 인터페이스는 상하위 계층간에 존재하는 규칙이다. 반면 프로토콜은 동등한 관계가 존재하는 규칙인데 각각의 계층은 정해진 방식과 절차에 따라 상대 계층과 통신한다.


2. JPA는 ORM기술이다.

ORM기술이란 Object Relational Mapping이라는 뜻으로 오브젝트를 데이터베이스에 연결하는 방법론이다. 즉, 자바 프로그램에서는 자바 클래스를 먼저 만들고 데이터베이스를 자동으로 생성하는 기법이다. 이때 JPA의 인터페이스가 필요하다.
원래는 일반적으로 설계도를 그리고 모델링하여 DB세상의 데이터를 자바 클래스로 작성하는데 그것과 반대 개념인 것이다.
ORM은 반복적인 CRUD작업을 단순하게 도와주고 내가 만든 클래스를 통해서 자동으로 데이터베이스 테이블을 생성해준다.



3. JPA는 반복적인 CRUD작업을 생략하게 해준다.

우선, 자바프로그램과 데이터베이스의 상호 작용 과정을 알아야한다.

① 자바프로그램이 커넥션 요청한다. 데이터베이스가 확인 후 세션을 열어준다. ② 연결이 되고 연결 시 자바프로그램은 connection을 가진다. ③ 자바프로그램이 connection을 가진 뒤에 2번째 연결 요청 시에는 쿼리를 데이터베이스에 전송 할 수 있다. ④ 데이터베이스는 해당 쿼리를 통해서 어떤 테이블의 데이터를 만들어내고 자바 프로그램에 그 데이터를 응답한다. ⑤ 데이터 타입이 서로 다르므로 자바 프로그램은 해당 데이터를 받아서 자바 오브젝트로 변경해야한다.

위 과정처럼 전송된 쿼리에 대한 응답이 있을 때 자바 프로그램은 데이터를 받고 받은 데이터를 자바 오브젝트로 변경하고 연결된 세션을 끊고 연결된 커넥션을 끊는데 이 모든 일련의 작업을 줄여주는 것이 JPA의 역할이다. JPA가 함수로 제공하는데 그것을 CRUD라 한다.

SELECT, SELECTALL - 테이블 생성 -> R
DELETE - 테이블 삭제 -> D
UPDATE - 테이블 수정 -> U
INSERT - 테이블 삽입 -> C

유튜브 출처: 데어 프로그래밍,데어 프로그래밍

profile
개발 및 공부 일기 블로그

0개의 댓글