반응형
우선, 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를 사용하는 것에 비해 어렵다. 충분한 기반 지식 없이 제대로 사용하기 어렵다.
- 그러므로 잘 이해하고 사용하지 않으면 안하느니만 못한 결과를 초래할 수 있다.(무늬만 그럴싸하게 된다)
참고
반응형
'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 |