JPA는 Hibernate를 기반으로 만들어진 자바 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다.
ORM(Object-Relational Mapping)
ORM은 설계된 객체와 관계형 데이터베이스간의 매핑을 시켜주는 기술이다. 이를 통해 개발자 대신 패러다임의 불일치를 해결해 준다.
ORM은 SQL문이 아닌 Method를 통해 DB를 조작하므로 개발자는 객체 모델을 이용해 비즈니스 로직을 구성하는데에만 집중 할 수 있다
JPA(Java Persistance API)
자바에서는 상속관계란 것이 존재해 부모클래스와 자식클래스간의 관계성립이 가능하지만 데이터 베이스에서는 객체간 상속관계가 존재하지 않는다. 하지만 JPA를 통해 이러한 패러다임의 불일치를 해결할 수 있다.
JPA를 사용하는데에는 많은 이점이 존재한다.
1. 생산성
- 자바 컬렉션에 객체를 저장하듯 JPA에게 저장할 객체를 전달하면 JPA가 INSERT SQL을 작성하고 JDBC API를 사용하는 등 지루하고 반복적인 작업을 대신 해준다.
- CREATE TABLE 과 같은 DDL문을 자동으로 생성한다.
2.. 유지보수
SQL문을 작성시 엔터티에 필드를 하나 추가하면 추가된 필드와 매핑하기위한 등록, 조회, 수정 등 관련 코드를 모두 변경해야 한다. 하지만 JPA를 이용하면 이러한 과정을 JPA가 해주므로 개발자가 작성해야할 코드가 현저히 적어지며 유지보수가 쉬워진다.
마지막으로 우리가 사용하는 JPA는 Repository를 통한 Spring Data JPA 부분이다.
'스프링' 카테고리의 다른 글
[스프링] 즉시로딩과 지연로딩 (0) | 2023.02.10 |
---|---|
[스프링] 프록시란 (0) | 2023.02.10 |
[스프링] 기본키 관련 매핑 Annotation (0) | 2023.02.09 |
[스프링] 필드와 컬럼 매핑 Annotation (0) | 2023.02.09 |
[스프링] 영속성 컨텍스트란 (0) | 2023.02.09 |