ETC
ORM(JPA)방식과 Query Mapping(Mybatis)방식의 차이
D_Helloper
2023. 7. 1. 20:46
- 영속성(Persistence)이란?
- 데이터들이 프로그램이 종료되어도 사라지지 않고 어떤 곳에 저장되는 개념을 영속성(Persistence) 이라고 한다.
- 자바는 데이터의 영속성을 위해 JDBC 를 지원하는데 이는 매핑 작업을 개발자가 일일히 해야하는 불편함이 존재한다. 따라서 개발자가 이러한 JDBC 프로그래밍을 하지 않도록 도와주는 프레임워크를 영속성 프레임워크(Persistence Framework) 라고 하며 대표적으로 ORM 과 Query Mapping(SQL Mapping) 방식이 존재한다.
- 즉, 둘 다 JDBC 가 불편해서 나온 기술!!
- Query Mapping 이란?
- 객체와 쿼리 수행 결과를 매핑시키는 기술
- SQL 문을 직접 작성하고 쿼리 수행 결과를 어떠한 객체에 매핑할 지 바인딩하는 방법
- 객체와 테이블 간의 관계를 매핑하는 것이 아님 !!
- 객체 ↔ 쿼리 수행 결과
<mapper namespace="com.project.my.testMapper"> <select id="test" resultType="TestBeanAlias"> select * from tb_test </select> </mapper>
- ORM(Object Relation Mapping)이란?
- 객체와 RDBMS 의 테이블을 매핑시켜 테이블을 객체지향적으로 사용하게 해주는 기술
- 객체 ↔ 테이블
- JPA, Mybatis 등의 기술을 사용해서 얻는 장점은 무엇인가요?
- 기존의 jdbc 를 사용하는 방식에서는 코드에서 직접 sql 문을 사용하기 때문에 sql 문이 길어지면 관리가 어렵다는 단점이 있었습니다. 따라서 JPA, Mybatis 등의 기술을 통해 코드와 sql 을 분리함으로서 관리가 편해지는 장점을 얻을 수 있습니다.
- JPA 와 Mybatis 를 각각 간단하게 설명해보세요
- Mybatis 는 자바에서 사용하는 Query Mapping 기술로서, SQL 을 XML 로 분리하여 관리합니다. 개발자가 직접 쿼리를 다루기 때문에 데이터베이스를 자유롭게 다룰 수 있다는 장점이 존재하지만 스키마 변경 시 쿼리를 직접 수정해야 하는 등 DBMS 에 종속적이라는 단점이 존재합니다.
- JPA 는 자바에서 사용하는 ORM 기술에 대한 표준 명세로서, 객체와 테이블을 매핑시켜 테이블을 객체지향적으로 사용하게 해줍니다. 개발자가 직접 쿼리를 작성할 필요가 없고, 동일한 쿼리에 대한 캐싱을 지원한다는 장점이 존재하지만, 학습에 시간이 걸리며 매핑 설계를 잘못하거나 다수의 테이블 조인 시 신경써야할 것이 많다는 단점이 존재합니다.