본문 바로가기

Programming/JPA

JPA란 무엇인가

반응형

우선, MyBatis란 무엇인가

- JDBC를 좀 더 편하게 사용할 수 있도록 객체를 SQL이나 저장 프로시저와 매핑해주는 SQL Mapper.

 

객체지향 언어인 자바가 RDBMS를 좀 더 쉽게 다루기 위해 MyBatis를 사용한다.

MyBatis의 장점은 다음과 같다.

  • 다른 프레임워크들에 비해 간단하다.
  • 소스 코드와 SQL의 분리로 생산성이 뛰어나다.
  • SQL을 직접 다룰 수 있어 복잡한 쿼리, 함수 및 저장 프로시저 등의 사용이 가능하다.

하지만 단점도 뚜렷하다.

  • 반복적인 코드와 CRUD SQL을 필요 시 계속 작성해야 한다.
  • SQL과 데이터베이스 벤더에 대한 종속성(DB 변경 시 해당 DB 특성에 맞게 SQL 구문, 타입으로 수정해야 한다)
  • 객체 지향의 장점을 살릴 수 없고, 단순히 객체를 데이터 전달 목적으로 사용한다.
  • 테이블의 필드에 변동이 생기면 SQL 구문을 모두 수정해야 한다.

이렇게 SQL 중심적인 개발은 장점이 있지만 단점 또한 뚜렷하다.


그렇다면 JPA란 무엇인가

Java Persistence API

- 자바 진영의 ORM 기술 표준

*ORM(Object-Relational Mapping) : 데이터베이스 객체를 자바 객체로 매핑하여 객체 간의 관계를 바탕으로 SQL을 자동으로 생성 

SQL문 작성 없이 매핑만으로 DB의 데이터를 객체로 전달 받을 수 있다. 즉 관계형 데이터베이스를 객체지향적으로 사용.

 

JPA의 장점은 다음과 같다

  • interface 선언으로 쿼리 구현이 가능하여 개발자가 직접 CRUD SQL 구문을 작성할 필요가 없기 때문에 생산성 굿.
  • 컬럼 추가/삭제 시 JPA가 관리하는 모델(Entity)만 수정하면 된다.
  • DB 변경 시 손쉽게 처리 가능.

 

JPA의 장점은 단점은 같다

  • JDBC를 사용하거나 MyBatis를 사용하는 것에 비해 어렵다. 충분한 기반 지식 없이 제대로 사용하기 어렵다.
  • 그러므로 잘 이해하고 사용하지 않으면 안하느니만 못한 결과를 초래할 수 있다.(무늬만 그럴싸하게 된다)

참고

https://it-mesung.tistory.com/60

 

[SpringBoot 실습] JPA로 데이터베이스를 다뤄보자

JPA로 데이터베이스를 다뤄보자 현재 운영을 진행하면서 MyBatis를 이용해 데이터베이스 쿼리를 작성한다. *즉, 실제 개발하는 시간보다 SQL을 다루는 시간이 더 많게 느껴진다는 것이다. * 해당 문

it-mesung.tistory.com

반응형

'Programming > JPA' 카테고리의 다른 글

[JPA] 엔티티 매핑  (0) 2022.04.30
[JPA] 영속성 컨텍스트  (0) 2022.04.30
[JPA] JPA 시작!  (0) 2022.04.30
[JPA] Part.02_Hibernate를 활용한 JPA 사용(CRUD 연습)  (0) 2021.08.09
[JPA] Part.01_프로젝트 기본 세팅  (0) 2021.08.09