JPA를 알아보기 전에 ORM을 먼저 집고 넘어가자!
1. ORM 이란?
: 객체와 관계형 DB(RDBMS)를 매핑 해주는 것을 의미한다.
: 객체는 ORM을 이용하여 DB에 접근 한다.( 적절한 SQL을 생성하여 DB에 객체를 저장해준다. )
2. JPA 란?
: ORM 기술을 구현한 프레임 워크에 대한 표준화 혹은 기준을 의미한다
ORM 기술을 구현하기 위해 여러가지 프레임워크들이 등장하였는데
각각의 프레임 워크들(Hibernate, CoCobase 등) 은 같은 기능을 해도
각각 필드와 메소드들이 다를 수 있으므로 이러한 것들을 기준을 정해 하나로 통합해주는 것이 JPA 이다.
예를들어,
같은 기능을 정의 하는 메소드가 Hibernate에서는 function dog() , CoCoBase에서는 function cat()으로
정의 되어 있을때 개발자가 ORM 프레임 워크를 변경 해야 할때 수정 할 부분이 많을 것이다.
그때 JPA가 이 기능은 통일해서 function animal()로 구현하라고 강제로 약속?을 시킨다.
3. JPA의 장단점
< 장점 >
- JPA가 개발자 대신 적절한 SQL을 생성해서 DB에 전달(저장) 하므로 개발자가 SQL을 짤 필요가 없음
- 만약 기존 Mysql을 사용하다 PostgreSQL로 변환한대도 쿼리를 새로 짜거나 수정 할 필요가 없음
- 유지보수, 리팩토링에 유리하다.
< 단점 >
- 프로젝트 규모가 크고 복잡하여 설계가 잘못되면 속도 저하, 일관성을 무너뜨릴수 있음
- 복잡하고 무거운 쿼리는 속도를 위해 별도의 튜닝이 필요하다.
★ 결국 JAVA 에서 ORM을 사용할 때는 JPA 인터페이스에 맞추어 구현되어 있는 프레임워크(Hibernate, CoCoBase, Toplink 등)를 골라서 사용하면 됨
'JAVA' 카테고리의 다른 글
[JAVA] JPA 애플리케이션 개발 (0) | 2021.11.02 |
---|---|
[JAVA] JPA 프로젝트 생성(Maven) + 기본설정 (0) | 2021.11.02 |
[JAVA] build (0) | 2021.03.24 |
[JAVA] 인터페이스 (0) | 2021.03.24 |
[JAVA] 추상화 (0) | 2021.03.24 |