[Spring] ORM (Object Relational Mapping) 이란?

·2022년 3월 4일
0

Spring

목록 보기
3/7
post-thumbnail

회사에서 iBatis, MyBatis만 사용해봐서 JPA를 다뤄보고 싶었다. 그래서 알아보다가 JPA를 다루기 위해선 ORM부터 뭔지 알아야겠다 싶었다. 그래서 정리하러왔다 하하

먼저, JPA(Java Persistence API)는 Persistence라는 단어가 포함돼있다.
Persistence부터 알아보자


💡 Persistence 영속성

데이터를 생성하는 프로그램이 있다고 치자.(파일시스템, DB ...)
이 프로그램을 껐을 때 데이터도 같이 날라가면 대형사고다.
데이터를 생성한 프로그램을 종료해도 데이터가 사라지지 않도록 하는 특성을 영속성이라고 한다.

데이터에 영속성을 부여하는 방법은 여러가지가 있다. 파일시스템, DB 등등..
나는 여기서 DB에 관해서 적어보려 한다.

데이터를 DB에 저장하는 방법엔 3가지가 있다.
1. JDBC
2. Spring JDBC
3. Persistence Framework


1. JDBC

DB에 데이터를 저장할 때 JDBC만을 사용하는 방법은 학교다닐 때 프로젝트 하면서 해봤다. 스크립틀릿이 난무하고 꽤나 복잡했던 기억이 있다.

JDBC는 Java DataBase Connectivity의 약어이다.
말 그대로 자바에서 DB에 접근할 수 있도록 하는 자바API이다.
오로지 JDBC만 가지고 DB 연결을 구현하기엔 다소 복잡하다. 그래서 더 편한 개발을 위해 JDBC에 무언가를 끼워넣는다.
Persistence Framework도 내부적으로 JDBC API를 사용한다.

출처: https://o-jing.tistory.com/28

Web Application(DAO)에서 JDBC API를 통해 JDBC 인터페이스인 Spring JDBC에 전달되고, 구현체인 JDBC Driver가 DBMS에 접근하여 데이터를 가져온다.

3. Persistence Framework 영속성 프레임워크

Persistence Framework는 2가지로 분류된다.
1) SQL Mapper
2) ORM

1) SQL Mapper

  • 객체SQL을 매핑한다.
  • 단순 필드 매핑이 목적
  • 개발자가 SQL문을 작성해서 직접 DB를 조작함.
  • ex) iBatis, MyBatis

2) ORM (Object-Relational Mapper)
= 객체-관계 매퍼 (객체와 RDBMS의 데이터를 자동으로 매핑해주는 것)

  • 객체(객체지향)RDBMS의 데이터(관계지향)를 매핑한다
  • RDB의 관계를 객체에 반영
  • 객체를 통해서 간접적으로 DB데이터를 다룬다.
  • 객체와 DB데이터를 자동으로 매핑해줌.
    -> 어떻게? ORM이 객체와 관계 사이에서 SQL을 자동으로 생성해줌.
  • 메소드로 DB데이터 조작 = 객체지향
    -> OOP의 언어를 그대로 쓰면서 객체와 RDBMS의 데이터를 매핑
    (OOP를 OOP답게)
  • ex) JPA, Hibernate

다음엔 JPA에 대해 알아보자.



profile
https://k-ang.tistory.com/ 이전했어요

0개의 댓글