
Java Persistence API
- Java 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용하는 인터페이스 모음
- 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
- 인터페이스 이기 때문에 Hibernate, OpenJPA 등이 JPA를 구현함
JPA를 사용하는 이유 -
JPA는 반복적인 CRUD SQL을 처리해준다. JPA는 매핑된 관계를 이용해서 SQL을 생성하고 실행하는데, 개발자는 어떤 SQL이 실행될지 생각만하면 되고, 예측도 쉽게 할 수 있다. 추가적으로 JPA는 네이티브 SQL이란 기능을 제공해주는데 관계 매핑이 어렵거나 성능에 대한 이슈가 우려되는 경우 SQL을 직접 작성하여 사용할 수 있다.
JPA를 사용하여 얻을 수 있는 가장 큰 것은 SQL아닌 객체 중심으로 개발할 수 있다는 것이다. 이에 따라 당연히 생산성이 좋아지고 유지보수도 수월하다. 또한 JPA는 패러다임의 불일치도해결하였다. 예를 들면 JAVA에서는 부모클래스와 자식클래스의 관계 즉, 상속관계가 존재하는데 데이터베이스에서는 이러한 객체의 상속관계를 지원하지 않는다(상속 기능을 지원하는 DB도 있지만 객체 상속과는 다름). 이런 상속관계를 JPA는 아래와 같은 방식으로 해결하였다.
ORM(Object-Realation Mapping)
객체랑 알디비랑 서로 매핑을 해주는 기술
Class와 RDB의 테이블을 매핑해준다는 뜻이며, 애플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것 이라고 한다.
ORM은 개발자가 SQL 쿼리를 직접 작성하지 않고도 객체를 통해 데이터베이스에 접근하고 조작할 수 있도록 도와줍니다. 객체와 데이터베이스 간의 변환 작업은 ORM 프레임워크가 자동으로 처리해주며, 개발자는 객체 지향적인 코드를 작성함으로써 데이터베이스 조작을 추상화할 수 있습니다.
JPA의 장점
SQL문이 아닌 Method를 통해 DB를 조작할 수 있어, 개발자는 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있다
.Query와 같이 필요한 선언문, 할당 등의 부수적인 코드가 줄어들어, 각종 객체에 대한 코드를 별도로 작성하여 코드의 가독성을 높인다.
'API' 카테고리의 다른 글
| API, REST API, REST FUL API (0) | 2023.05.11 |
|---|