JPA 란 무엇일까?
- JPA 란 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이라고 설명할 수 있다.
- 그렇다면 여기서 말하는 ORM 이란 무엇일까?
ORM (Object Relational Mapping) 이란
- 객체와 테이블을 매핑하여 패러다임의 불일치를 개발자 대신 해결해 주는 기술이다.
- 자세히 설명하자면, 애플리케이션 Class 와 RDB(Relational DataBase)의 테이블을 매핑 (연결)한다는 뜻인데
- 기술적으로는 애플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이라고 볼 수 있다.
그렇다면 왜 JPA 를 사용해야 하는 걸까?
- 생산성을 높여준다.
- JPA를 자바 컬렉션에 저장하듯이 JPA에게 저장할 객체를 전달하면 INSERT SQL을 작성하고, JDBC API를 사용하는 반복적인 일을 JPA 가 대신 처리해 준다.
- JPA 가 매핑된 관계를 이용하여 SQL을 생성해주는 일을 대신하게 된다면 개발자는 어떤 SQL 을 실행하면 될지 생각만 하면 된다.
- 유지보수
- SQL 중심이 아닌 객체 중심으로 개발을 할 수 있어, 생산성이 좋아지고 유지보수도 수월해진다.
- 패러다임의 불일치 해결
- 상속, 연관관계, 비교하기 같은 패러다임의 불일치 해결
- 상속
- Java에서는 상속관계가 존재하지만, 데이터베이스에서는 상속관계를 지원하지 않는다. 그렇다면, JPA는 어떤 방식으로 상속관계를 해결할까?
- 데이터베이스에는 상속관계는 없지만, 비슷하게 풀어낼 수 있는 방법이 존재한다.
- 예를 들어 부모 같은 테이블을 하나 생성하고, 그 밑에 자식을 두면서 데이터를 분리해 놓는다.
- 필요한 경우에는 join을 사용하여 가져올 수 있다.
- 이 차람 table에서 데이터 하나를 꺼내오려면 수많은 과정을 거쳐야 하지만 JPA는 객체 중심의 개발을 할 수 있도록 도와주기 때문에 보다 편리하게 가져올 수 있다.
- 예를 들어 부모 같은 테이블을 하나 생성하고, 그 밑에 자식을 두면서 데이터를 분리해 놓는다.

- 성능
- JPA의 성능 최적화 기능을 사용하게 되면 1차 캐시와 동일성을 보장받는다.
- 같은 트랜잭션 안에서는 같은 엔티티를 반환받는다는 것이다. 따라서 조회 성능이 향상된다.
- 데이터 접근 추상화와 벤더 독립성
- 특정 데이터 베이스 기술에 종속되지 않도록 도와준다.
- 데이터베이스를 변경하면 JPA에게 다른 데이터를 사용한다고 알려주어 , 간편하게 다른 데이터베이스를 이용할 수 있도록 도와준다.

<자바 ORM 표준 JPA 프로그래밍 - 기본편 을 참고하여 작성하였습니다.>
'JPA' 카테고리의 다른 글
| [Jpa] 다대일[N:1], 일대다[1:N] 에 대해서 (0) | 2023.05.09 |
|---|---|
| [Jpa] 연관관계 매핑 기초 (0) | 2023.05.01 |
| [Jpa] 엔티티 매핑 (0) | 2023.04.30 |
| [Jpa] 영속성 컨텍스트 (0) | 2023.04.27 |
| [Jpa] @OneTOOne에 대해서 (0) | 2023.04.26 |