SQL Mapper와 ORM

hyun·2023년 1월 29일
0

ORM을 알기에 앞써 데이터들이 프로그램이 종료되어도 사라지지 않고 어떤 곳에 저장되는 개념을 영속성(persistence)이라 한다.
Java는 데이터의 영속성을 위한 JDBC를 지원해주는데, 이는 매핑 작업을 개발자가 일일히 수행해야 하는 번거로움이 있다.
따라서 직접 JDBC Programming을 하지 않도록 기능을 제공해주는 Persistence Framework 를 이용하는데 SQL MapperORM 로 나눌수 있다.

SQL Mapper

장점

  • SQL이 코드와 분리되어 있어서 유지보수가 편하다.
  • 동적 쿼리 사용 시 JPA보다 간편하게 구현 가능하다.
  • JPA에 비해 쉽다.

단점

  • 사용하는 쿼리 문법이나 데이터 타입에 따라 특정 DBMS에 종속될 수 있다.
  • 데이터 베이스 설정 변경 시 수정할 부분이 너무 많다.

ex) JdbcTemplate, MyBatis

ORM ( Object-Relational Mapping )

※ORM은 JPA ( Java Persistence API )를 표준 기술로 사용한다

장점

  • SQL문이 아닌 클래스의 메서드를 통해 DB를 조작할 수 있어서 객체 모델만 이용해서 프로그래밍을 하는데 집중할 수 있다.
  • 코드의 가독성과 생산성을 높일 수 있다.
  • 재사용, 유지보수, 리팩토링에 용이하다.
  • 객체 간의 관계를 바탕으로 SQL문을 자동으로 생성하고, 객체의 자료형 타입까지 사용할 수 있기 때문에 관계형 RDBMS ( 데이터베이스 관리 시스템 ) 의 데이터 구조와 객체지향 모델 사이의 간격을 좁힐 수 있다 -> DBMS(DataBase Management System)의 종속성이 줄어든다.
    ※ RDBMS의 예로는 MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, Oracle Database가 있다

단점

  • 프로젝트의 복잡성이 커질 수록 쿼리 구현 난이도가 올라갈 수 있다.
  • 프로시저가 많은 시스템에서 ORM의 객체 지향적인 장점을 활용하기 어렵다.

ex) Hibernate, OpenJPA

JDBC: 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API
Persistence Framework: Persistence Layer ( 아키텍처, 데이터에 영속성을 부여하는 계층 ) 에서 사용하는 프레임워크
SQL Mapper: Object와 SQL의 필드를 매핑하여 데이터를 객체화 하는 기술
ORM: 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법
MyBatis: 자바에서 SQL Mapper를 지원해주는 프레임워크
JPA: Java 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스

profile
초보 개발자

0개의 댓글