728x90
JPA
- Java 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용하는 인터페이스 모음
- 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
- 인터페이스 이기 때문에 Hibernate, OpenJPA 등이 JPA를 구현합니다
ORM(Object Relational Mapping)
- 객체와 관계형 데이터베이스를 매핑하는 기술
- 개발자 대신 SQL문을 작성해주기 때문에 개발자는 단순한 SQL문 작성보다 비즈니스 로직 구성하는데 집중할 수 있어 생산성이 높아집니다.
- Java의 대표적인 ORM은 JPA가 있으며 다른 언어, 프레임워크에도 ORM이 존재합니다(Python -django)
JPA 사용 이유
자바를 통한 데이터 접근 방식에는 JDBC API, MyBatis 등이 있습니다.
이런 방식은 다음과 같은 여러가지 문제가 발생하였습니다.
- 등록, 수정, 삭제, 조회(CRUD)의 SQL 반복
- 객체에 있는 멤버변수가 추가 혹은 삭제 될때마다 SQL문을 수정해야합니다
- 쿼리 사용시 선언문 혹은 연결 등의 부가적인 코드가 생기므로, 코드의 가독성이 떨어집니다.
- 객체와 관계형 데이터베이스의 차이
- 객체를 단순히 데이터 전달 목적으로 사용할 뿐, 객체 지향적이지 못함 ( 페러다임 불일치 )
- SQL 중심적인 개발
이러한 문제들을 해결하기 위해 JPA가 등장하였습니다.
JPA 장점
- 생산성
- JPA를 자바 컬렉션에 객체를 저장하듯 JPA에게 저장할 객체를 전달.
- SQL을 작성하고 JDBC API 사용하는 지루하고 반복적인 일을 JPA가 대신 처리해준다.
- CREATE TABLE같은 DDL문 자동 생성
- 데이터베이스 설계 중심의 패러다임을 객체 설계 중심으로 역전
- 유지보수의 간편함
- 패러다임 불일치 해결
- 상속, 연관관계, 객체 그래프 탐색, 비교하기 같은 패러다임 불일치 해결
'프로그래밍 > JPA' 카테고리의 다른 글
[ JPA ] 다양한 연관 관계 매핑 (0) | 2022.04.14 |
---|---|
[ JPA ] 연관관계 매핑 기초 (0) | 2022.04.13 |
[ JPA ] 영속성 컨텍스트란? (0) | 2022.03.28 |