C.엠케이 2022. 4. 3. 23:20

 

Spring 은 고전적으로 iBatis 를 사용하였고, iBatis 는 MyBatis로 발전했다.

~2018년 이전에 개발된 Spring 어플리케이션들을 보면 Mapper 방식으로 MyBatis 를 대부분 채택 했을 것이다.

 

요즘 핫하게 많이 들려오는 ORM 이라는 단어가 있다.

ORM : Object Relational Mapping (객체-관계 매핑)

 

사실 조금 생소하긴 하다. 현업에서 사용하지 않다보니 경험해볼 일이 없기도 하고...

인터넷을 검색해보면 찾을 수 있는 개념은,, (출처 : https://gmlwjd9405.github.io/2019/02/01/orm.html)

 

ORM 이란 ?

  • 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.
    - 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.
    - 객체 모델과 관계형 모델 간에 불일치가 존재한다.
  • ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.
    - 데이터베이스 데이터 <—매핑—> Object 필드
  • 객체를 통해 간접적으로 데이터베이스 데이터를 다룬다.
    - Persistant API라고도 할 수 있다.
    - Ex) JPA, Hibernate 등

ORM 장단점

 

Hibernate 를 사용하게 되면 persist(), merget(), close() 등을 직접 사용하고, 

transation 이 발생할 때 getTransation.begin(), commit() 등으로 관리를 한다.

 

Spring Data JPA 는 개발자가 조금 더 사용하기 편리하게 만들어 놓은 것이다.

Hibernate 를 한번 감싸고 있고, 위와 같은 명령어를 굳이 신경쓰지 않고 개발을 할 수 있도록 해준다.