[Spring] Persistence에 대해 알아보자

김우경·2021년 5월 31일
0

Persistence

데이터 생성 프로그램이 종료되어도 데이터는 사라지지 않는 특성
→ 파일시스템, RDB 등을 사용해서 객체에 영속성을 부여한다.

Persistence Framework

JDBC

자바에서 DB에 접근하기 위해 사용하는 API
→ 모든 Persistence Framework는 내부적으로 JDBC API를 이용한다.

이러한 Persistence를 부여하는 Framework에는 두가지 종류가 있다.

SQL Mapper

SQL과 객체를 매핑 → 직접 SQL을 다뤄서 매핑한다.
→ MyBatis, JDBCTemplate

  • MyBatis : SQL, procedure 등을 지원하는 SQL Mapper이다. SQL에 대한 모든 control이 가능하다.
  • JDBCTemplate : 스프링의 가장 기본적인 Data Access 템플릿으로 쿼리 기반으로 데이터 베이스의 접근 가능

ORM

Object Oriented Mapping의 약자로 RDB과 객체를 매핑하는 기술이다. 프로그래머가 SQL을 직접 다룰 필요 없이, SQL을 자동 생성해준다.
→ JPA

장점

  • 객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 있게 도와준다.
  • 재사용 및 유지보수의 편리성이 증가한다.
  • DBMS에 대한 종속성이 줄어든다.

단점

  • 완벽한 ORM 으로만 서비스를 구현하기가 어렵다.
  • 프로시저가 많은 시스템에선 ORM의 객체 지향적인 장점을 활용하기 어렵다.

출처

https://gmlwjd9405.github.io/2018/12/25/difference-jdbc-jpa-mybatis.html
https://github.com/WeareSoft/tech-interview/blob/master/contents/db.md#orm%EC%9D%B4%EB%9E%80

profile
Hongik CE

0개의 댓글