Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

어리바리 신입 개발자의 얼렁뚱땅 개발 기록 ✨

[ JAVA / JPA ] JPA(Java Persistence API)를 사용하는 이유 본문

Back - end/JAVA

[ JAVA / JPA ] JPA(Java Persistence API)를 사용하는 이유

낫쏘링 2023. 10. 16. 20:27
728x90

JPA(Java Persistence API)

- 자바의 ORM(Object-Relational Mapping) 표준 스펙을 정의하는 인터페이스의 모음
- ORM : 객체와 관계형 데이터베이스(RDB) 사이의 데이터 변환을 자동화하기 위한 기술
- 즉, 자바의 객체와 RDB를 어떻게 매핑하고 동작해야하는지 정의하고 있는 것이 JPA

[ 장점 ] 
- SQL문을 사용하지 않고 메서드를 통해 DB를 조작하기 때문에 개발자는 비즈니스 로직을 구성하는 것에만 집중할 수 있다.
  (어떤 쿼리를 실행해야 하는지만 생각하면 된며, 예측도 쉽다.)
- 부수적인 코드를 줄이고 객체에 대한 코드를 작성하기 때문에 코드의 가독성을 높일 수 있다.
  (반복적인 CRUD 쿼리를 처리해준다.)

- 객체 지향적인 코드를 작성할 수 있기 때문에 생산성이 증가한다.
- 매핑하는 정보가 class로 명시 기 때문에 ERD에 대한 의존도를 낮출수 있고, 유지보수와 리팩토링에 용이하다.
- 만약 이전 DBMS에서 다른 DBMS로 데이터를 이전할 경우 해당 DBMS에 맞는 쿼리를 다시 작성해야 하지만,
  ORM을 사용하면 쿼리를 사용하지 않기 때문에 유지보수와 리팩토링에 용이한 것.
- 자바 각체에는 상속관계가 존재하는데 데이터베이스에는 상속관계가 존재하지 않는 문제를 해결해준다.

[ 단점 ]
- 설계가 잘못됐을 경우에 속도 저하와 일관성을 무너뜨리는 등의 문제가 발생할 수 있다.
- 복잡하고 무거운 쿼리는 별도의 최적화를 필요로 하기 때문에 결국 쿼리를 사용해야할 수 있다.

[ 구현체 ]
- JPA는 인터페이스 모음이기 때문에 구현할 구현체가 필요하다.
- EclipseLink 
- Hibernate
- DataNucleus

728x90