티스토리 뷰

JPA

SQL Mapper vs ORM

절취선 2022. 5. 10. 00:18
반응형

진영을 나누어 보자

영속성 기능아래 DB를 연결하는 방식은 두가지로 나뉜다.

  1. SQL Mapper는 SQL을 명시해줘야 한다.

    • ex) MyBatis, JDBC Template
  1. 객체를 통해 간접적으로 데이터베이스를 다루며 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.

    • ex) JPA, Hibernate

🌠 ORM (Object - Relational - Mapping)

객체와 DB를 매핑하는 기술로 객체와 테이블을 자동으로 매핑해서 패러다임의 불일치 문제를 자동으로 해결해준다.
SQL 중심의 매핑이 아닌 자바 클래스 위주의 매핑이다.

즉, 객체라는 특성과 ORM 메서드가 사용되며 영속성의 기능을 가지고있는 기술이다.

☄ 자주 틀리는 문제 - 모든 자동 매핑이 ORM은 아니다!

객체와 DB를 자동으로 매핑해준다는 점에서 결국 Mybatis 또한 ORM에 속할지도 모르지만 직접 쿼리를 작성한다는 점에서
SQL 중심의 개발 방식에 가깝기 때문에 SQL Mapper 진영에 있는 것이다.

ORM을 따라야하는 이유?

  • 데이터 베이스 <-- Mapping --> Object 필드
    • ORM은 개발자에게 객체형 DB관리 방식을 제공한다. 즉, 객체를 통해 DB를 간접적으로 다룰 수있는 기능을 제공한다.
  • 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해준다.
    • 자바에서 객체를 만들었다면 ORM은 자동적으로 DB에 객체와 동일한 테이블을 생성하며
      이후 객체와 - 테이블 사이에 불일치가 발생하여도 SQL를 자동으로 생성하여 불일치를 해결한다.
  • 영속성(Persistant)의 특성을 가진다.

장접

  • 비즈니스로직에 집중할 수 있다.
  • 재사용 및 유지보수
  • DBMS에 대한 종속성 해결

단점

  • 완벽한 ORM 서비스를 구현할 수가 없다.
  • 프로시저가 많은 시스템에서는 ORM의 객체 지향적인 장점을 활용하기 어렵다.
반응형

'JPA' 카테고리의 다른 글

JPA 에서의 식별과 비식별  (0) 2022.05.12
ORM에서의 객체 연관 매핑  (0) 2022.05.11
JPQL(Java Persistence Query Language)  (0) 2022.05.09
Hibernate  (0) 2022.05.08
영속성 컨텍스트  (0) 2022.05.07
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함