코드 저장소.

Jpa 란 무엇인가?? 본문

웹개발/Jpa

Jpa 란 무엇인가??

slown 2024. 5. 7. 22:47

 

목차

1.Jpa ? 

2.ORM ?

3.Jpa의 장단점

 

 

1.Jpa?

jpa는 Java Persistence API로 자바 진영의 ORM 기술 표준을 사용되는 인터페이스의 모음이다. 한마디로 말하자면 실제적으로 구현된것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다. JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있다. Jpa를 알기 전에 ORM에 대해서 알아보도록 하자.

2.ORM ?

ORM은 Object Relation Mapping으로 객체 지향 프로그래밍 언어와 관계형 데이터베이스 간의 데이터를 변환하는 기술을 의미합니다. 즉, ORM은 데이터베이스 테이블을 객체로 매핑하고, 객체 간의 관계를 데이터베이스의 관계로 매핑하여 개발자가 SQL 쿼리를 직접 작성하지 않고도 객체를 통해 데이터베이스를 조작할 수 있게 해줍니다. 흔히 우리가 자주 비교가 되는 Mybatis와 같은 SQL Mapper는 SQL을 명시를 해주면서 직접 DB를 조작하는 점에서 차이가 있다고 볼 수 있습니다.

 

3.Jpa의 장단점.

장점

  • SQL문이 아닌 메서드를 통해서 DB 조작이 가능하므로 개발자는 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중이 가능합니다.
  • Query와 같이 필요한 선언문, 할당 등의 부수적인 코드가 줄어들어, 각종 객체에 대한 코드를 별도로 작성하여 코드의 가독성을 높일 수 있습니다.
  • 객체지향적인 코드 작성이 가능해집니다. 
  • 유지보수 및 리팩토링에 유리합니다. 예를들어 기존 방식에서 MySQL 데이터베이스를 사용하다가 PostgreSQL로 변환한다고 가정해보면, 새로 쿼리를 짜야하는 경우가 생기는데 이런 경우에 ORM을 사용한다면 쿼리를 수정할 필요가 없습니다.

단점

  • 프로젝트의 규모가 크고 복잡하여 설계가 잘못된 경우에는 속도 저하 및 일관성을 무너뜨리는 문제점이 발생할 수도 있습니다.(개발자가 의도하지 않은 자동으로 생성된 Query로 인해 성능이 저하되기도 함)
  • 복잡하고 무거운 Query문은 속도를 위해 별도의 튜닝이 필요하기 때문에 결국 SQL문을 쓰는게 나은 상황이 발생할 수도 있습니다.
  • 학습비용이 비싸고 시간이 오래걸립니다.

'웹개발 > Jpa' 카테고리의 다른 글

Jpa - 프록시 및 로딩전략  (0) 2024.05.29
Jpa - 값타입  (0) 2024.05.28
Jpa - 엔티티 연관관계  (0) 2024.05.25
Jpa - 영속성 컨텍스트  (0) 2024.05.13
Jpa [엔티티 매핑]  (0) 2024.05.11