퓨리오사
2k
2016-07-09 14:46:50
4
3224

Mybatis와 ORM


일단 제 생각을 먼저 말씀드리고 다른 분들의 의견이 궁금합니다.

Mybatis는 ORM 일까 아닐까? 커뮤니티와 인터넷 그리고 개발자 사이에도 의견이 분분 합니다.

ORM이라는게 정의를 찾아보면

"데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법"

이라고 되어있습니다.

Mybatis 공식 홈페이지에 들어가보면 

"마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신해준다. 마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO 를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있다."

라고 소개 합니다.

강제 하지는 않지만 객체와 데이터베이스 레코드에 매핑을 지원합니다.

대표적인 ORM 프레임워크인 hibernate 나 JPA 기술을 심도있게 공부해보지는 않았습니다.

어느 부분에서 ORM 이 아니다 / 맞다가 구분이 되고 갈리게 되는지 궁금합니다.

0
1
  • 답변 4

  • fender
    16k
    2016-07-09 15:18:10

    개인적으로는 속성과 상속을 어디까지 지원하는지를 기준으로 생각합니다만, 그것이 얼마나 일반적인 기준인지는 잘 모르겠습니다.

    어쩌면 보다 근본적인 차이는 '엔티티(entity)'의 개념이 존재하는지 여부가 아닐까 싶기도 합니다. 마이바티스(MyBatis)에서도 데이터를 생성하거나 저장할 때 객체의 인스턴스를 이용할 수는 있습니다만, 이 경우 해당 객체는 단순 값 객체(value object)에 해당하고, JPA와 같은 본격적 ORM에서처럼 상태가 관리되는 엔티티로서 동작하지 않는 다는 차이가 있습니다.

    0
  • 퓨리오사
    2k
    2016-07-09 16:05:00

    fender님 답글 감사합니다.

    근데 제가 이해력이 부족해서 아직은 잘모르겠습니다.. 

    좀더 JPA와 Hibernate같은 대표적 ORM 을 공부하면서 프로젝트에 적용해봐야 감이 올거 같습니다.

    나중에 나름대로 정리해서 한번 올려보겠습니다. 

    0
  • unthinkall
    1k
    2016-07-09 19:20:28

    1. 마이바티스는 SQL매퍼다 (ORM이 아니다)

    ORM 프레임워크는 데이터베이스 객체를 자바 객체로 매핑함으로써 객체 간의 관계를 바탕으로 SQL을 자동으로 생성해주지만 마이바티스는 SQL을 명시해 줘야 한다 

    출처 : 마이바티스 프로그래밍 이동국 지음

    0
  • 전재형
    4k
    2016-07-11 09:56:13

    ORM의 기본은 객체와 DB스킴의 매핑 또는 자동변환이 가능해야 되는거 아닌가요?

    SQL 매퍼 기능은 기본으로 깔고 있는거구요

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.