ORM
Object-Relational Mapping
객체가 테이블이 되도록 매핑 시켜주는 것
SQL Qeury가 아닌 직관적인 메서드로 데이터를 조작
JPA
Java Persistence API
(자바 ORM 기술에 대한 표준 명세)
ORM을 사용하기 위한 인터페이스를 모아둔 것
Hibernate
JPA를 사용하기 위해서 JPA를 구현한 ORM 프레임워크중 하나
JPA 인터페이스의 실제 구현부를 담당
장점
생산성
SQL를 직접 사용하지 않고, 메서드 호출만으로 쿼리가 수행
(쿼리를 보면서 의도한 대로 쿼리가 짜여졌는지, 성능은 어떠한지에 대한 모니터링이 필요하기 때문에 SQL을 잘 알아야 함)
유지보수
DAO의 파라미터, 결과, SQL 등을 모두 확인하여 수정하지 않고 JPA가 대신 수행
종속성
JPA는 추상화된 데이터 접근 계층을 제공하기 때문에 특정 벤더에 종속적이지 않음
설정 파일에서 JPA에게 어떤 DB를 사용하고 있는지 알려주기만 하면 얼마든지 DB를 바꿀 수 있음
단점
성능
메서드 호출로 쿼리를 실행한다는 것은 내부적으로 많은 동작이 있다는 것을 의미
직접 SQL을 호출하는 것보다 성능이 떨어질 수 있음
세밀함
메서드 호출로 SQL을 실행하기 때문에 세밀함이 떨어짐
객체간의 매핑( Entity Mapping )이 잘못되거나 JPA를 잘못 사용하여 의도하지 않은 동작을 할 수도 있음
'JAVA(SPRINGBOOT)' 카테고리의 다른 글
[JAVA] INTERFACE(인터페이스) (0) | 2022.12.06 |
---|---|
[JAVA] Hashmap (0) | 2022.11.01 |
API, WAS, HTTP, RESTful API, CORS (0) | 2022.08.10 |
ORM, SQL, MVC (0) | 2022.08.08 |
IoC, DI, Bean (0) | 2022.07.31 |