자바

JPA란 무엇인가?

mrban 2022. 2. 6. 21:49

1. JPA란?

Java Persistence API의 줄임말로 JAVA가 제공하는 API 이며 SQL을 쓰지 않고 Method를 통해 DB를 조작할 수 있다. 자바로 영구적(Persistence)으로 데이터를 저장하고 다루기 위해서 필요한 API라고 이해하면 된다. JPA는 JAVA로 데이터를 영구적으로 저장하고 다루기 위해서 여러가지 기능을 가지고 있다.

 

2. JPA 기능

첫번째 기능은 JPA가 ORM 기술이라는 것이다. ORM은 Object Relational Mapping의 준말로 자바에서 만든 object를 데이터베이스의 테이블 형태로 변환하는 기술이다. 다시말해 우리가 JPA의 인터페이스에 따라서 object를 만들어서 데이터베이스에 보내면 자동으로 테이블로 바꿔준다.

 

 

두번째 기능은 JPA가 반복적인 CRUD(데이터 생성, 조회, 변경, 삭제)작업을 간단하게 만든다. 자바가 DB에 데이터를 요청하면 데이터를 자바가 이해할 수 있는 자바 object로 바꾸고 자바와 DB의 연결을 끊는 반복적인 과정을 JPA의 CRUD메서드를 통해서 반복하지 않고 생략할 수 있다.

 

세번째 기능은 JPA의 영속성 컨텍스트 기능이다. 영속성 컨텍스트는 영구적으로 정보를 DB에 저장하기 위한 모든것을 의미한다. 자바가 어떤 데이터를 DB에 저장하려면 영속성 컨텍스트에 먼저 데이터를 보내고 영속성 컨텍스트가 DB에 데이터를 저장한다. 만약 영속성 컨텍스트 안의 데이터를 삭제한다면 DB의 데이터는 사라지게 된다. 즉, 영속성 컨텍스트안의 데이터와 DB안의 데이터는 동기화가 된다. 이런식으로 DB에 명령을 내리면 바로 DB로 접근하는 것이 아니고 영속성 컨텍스트를 거쳐서 데이터를 다룰 수 있는 것이다. 

 

네번째 기능은 DB와 OOP의 불일치성을 해결하기 위한 방법론을 제공한다. 여기서 OOP는 객체지향을 의미한다. DB의 테이블의 각각의 컬럼들은 기본 자료형의 데이터만 가질 수 있다. 즉, object를 가질수 없다. 하지만 우리는 JPA의 ORM을 통해서 자료형으로 object를 명시해도 자동으로 DB의 데이터와 연결해준다. 즉, DB에서는 객체를 저장하는 것이 불가능하지만 JPA를 통해서 객체저장이 가능해진다.

 

다섯째 기능은 OOP의 관점에서 모델링을 할 수 있게 해준다. 예를들어 자바의 상속 기능을 활용하여 쉽게 테이블의 컬럼들을 추가할 수 있다.

 

출처: https://www.youtube.com/watch?v=XBG6CUtVCIg

 

'자바' 카테고리의 다른 글

추상클래스, 인터페이스, 추상메서드 정리  (0) 2022.04.25
JPA 연관관계  (0) 2022.02.20
Spring이란? Spring Boot란?  (0) 2022.01.28
JVM이란? 객체지향프로그래밍이란?  (0) 2022.01.23
해시맵(Hash Map)이란?  (0) 2022.01.18