Framework/Orm&Mapper

ORM 기술이란 무엇인가?

simDev1234 2022. 9. 27. 15:32

|  개요

- 영속성이란, 프로그램이 종료된 이후에도 한 번 처리한 데이터는 DB에 영구적으로 반영된 상태여야 함을 뜻한다.

- 자바를 통해서 DB와 소통하는 방식은 다양한데,

  그 중에서 Persistence Framework를 사용하면 Object를 통해 SQL문을 만들 수 있다.

- Persistence Framework는 크게 1) SQL Mapper 2) ORM 으로 나뉠 수 있으며, 두번째 방식이 현재 가장 많이 사용되는 방식이다.

 

[ 영속성이란? ]

영속성이란, 데이터를 생성한 프로그램이 종료된 후에도 사라지지 않는 데이터 특성

[ 출처 ] 위키백과

 

[ 자바에서 데이터를 저장하는 방법 ]

- JDBC 프로그래밍 (순수 Java)

- Spring JDBC

- Persistence Framework : Hibernate, MyBatis....
  - 크게 SQL Mapper와 ORM으로 나뉜다.

 

[ Persistence Framework의 종류 ]

구분 내용 프레임워크명
SQL Mapper SQL mapper를 통해 sql <-> object Mybatis, JdbcTemplates(Spring)
ORM ORM을 통해 sql <-> object JPA, Hibernate

 

|  ORM

- Object Relational Mapping : 객체 관계 매핑의 약자

- 객체와 DB의 관계를 매핑해주는 도구를 말한다.

장점 - 직관적인 코딩을 통해 가독성을 높히고, 비즈니스 로직에 집중할 수 있어 생산성이 높아진다.
- 재사용 및 유지보수의 편리성 증가
- DBMS에 대한 종속성이 저하된다.
단점 - 완벽한 ORM만으로만 서비스를 구현하기 어렵다.
- 프로시저가 많은 시스템에서는 ORM의 객체 지향적인 장점을 활용하기 어렵다.

 

|  언어별 ORM 종류

 

|  JPA와 Hibernate, Spring Persistence API

- JPA는 Java Persistece API의 약자로, 말 그대로 인터페이스이자 명세를 의미한다.

- 그리고 JPA를 구현한 것이, Hibernate이다. 

- Spring Data JPA는 Spring 프레임워크에서 사용할 수 있게, JPA를 한단계 추상화시킨 모듈이다. 

출처:https://suhwan.dev/2019/02/24/jpa-vs-hibernate-vs-spring-data-jpa/

 

 

 

[참고 및 출처]

https://gmlwjd9405.github.io/2019/02/01/orm.html

https://hanamon.kr/orm%EC%9D%B4%EB%9E%80-nodejs-lib-sequelize-%EC%86%8C%EA%B0%9C/

https://azderica.github.io/00-db-orm/

https://suhwan.dev/2019/02/24/jpa-vs-hibernate-vs-spring-data-jpa/