개발하는 자몽

JDBC, JPA, MyBatis 차이 본문

Database

JDBC, JPA, MyBatis 차이

jaamong 2022. 2. 9. 13:18

순서

  1. 영속성(Persistence)
  2. Persistence Framework
  3. ORM
  4. SQL Mapper
  5. JDBC
  6. JPA
  7. MyBatis

 

 

영속성(Persistence)

  • 데이터를 생성한 프로그램이 종료되더라고 사라지지 않는 데이터의 특성 
  • 영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램이 종료되면 모두 잃어버린다.
  • 파일 시스템, 관계형 데이터베이스 혹은 객체 데이터베이스 등을 활용하여 데이터를 영구적으로 저장하여 영속성을 부여한다.
  • 즉, 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터를 말한다.
the characteristic of data that outlives the execution of the program that created it: which is achieved in practice by storing the data in non-volatile storage such as a file system or a relational database or an object database

 

Persistence Framework

  • 데이터를 데이터베이스에 저장하는 과정을 도와주고 자동화하는 매개 소프트웨어
  • 데이터를 가공하는 자바 객체 층과 데이터를 저장하는 데이터베이스 층 사이를 매끄럽게 연결하는 이음매
  • SQL Mapper ORM으로 나뉜다.
    • ORM은 데이터베이스 객체를 자바 객체로 매핑함으로써 객체 간의 관계를 바탕으로 SQL을 자동으로 생성해 주지만, SQL Mapper는 SQL을 명시해줘야 한다.

 

ORM(Object Relational Mapping)

  • 객체(Object)와 관계형 데이터베이스(RDBMS)를 매핑(연결)하여 데이터베이스 테이블을 객체지향적으로 사용하기 위한 기술
  • 객체를 통해 간접적으로 데이터베이스를 다룬다.
  • 관계형 데이터베이스의 '관계'를 객체에 반영하는 것이 목적이다.
  • Persistence API라고도 할 수 있다. 
    • Ex. JPA, Hibernate

 

SQL Mapper

  • 객체(Object)와 SQL문을 매핑하여 데이터를 객체화하는 기술
  • SQL문으로 직접 데이터베이스를 다루므로 SQL문을 명시해줘야 한다.
    • Ex. MyBatis, JdbcTemplates

 

JDBC(Java Database Connectivity)

JDBC는 DB에 접근할 수 있도록 Java에서 제공하는 API이다. 모든 Java Data Access 기술의 근간으로 모든 Persistence Framework는 내부적으로 JDBC API를 사용한다.

출처 https://thefif19wlsvy.tistory.com/249

 

JPA(Java Persistent API)

  • 자바 ORM 기술에 대한 API 표준 명세로 Java에서 제공하는 API이다.
  • 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다.
    • 즉, ORM을 사용하기 위한 표준 인터페이스를 모아둔 것이다.
    • '인터페이스'이기 때문에 JPA를 사용하기 위해서는 JPA를 구현한 ORM Framework를 사용해야 한다.
    • JPA의 대표적인 구현제로는 Hibernate, EclipseLink, DataNucleus, OpenJPA 등이 있다.

출처 https://thefif19wlsvy.tistory.com/249

 

MyBatis

  • 개발자가 지정한 SQL, 저장 프로시저 그리고 몇 가지 고급 매핑을 지원하는 SQL Mapper
  • JDBC로 처리하는 상당 부분의 코드와 파라미터 설정 및 결과 매핑을 대신해 준다.
  • 데이터베이스 record에 원시 타입과 Map 인터페이스, 자바 POJO를 설정해서 매핑하기 위해 XML과 Annotation을 사용할 수 있다.
  • 장점
    • SQL에 대한 모든 컨트롤을 하고자 할 때 매우 적합하다.
    • SQL 쿼리들의 최적화가 잘되어 있을 때 유용하다.
  • 단점
    • 애플리케이션과 데이터베이스 간의 설계에 대한 모든 조작을 하고자 할 때는 적합하지 않다. 애플리케이션과 데이터베이스의 구조화가 잘 되도록 많은 설정 부분을 바꿔야 하기 때문이다.

 

 

 

 

 

출처

 

[Framework] 영속성 프레임워크(persistence framework)

■ 영속성 프레임워크(persistence framework) 란? 자료를 데이터베이스에 저장하는 과정을 도와주고 자동화하는 매개 소프트웨어이다. 이는 응용 프로그램과 데이터베이스 사이에서 벌어질

hyunmin1906.tistory.com

 

JDBC, JPA, Mybatis 차이점

들어가기 앞서 영속성에 대한 이해가 필요하다. 영속성(Persistence) 1. 데이터를 생성한 프로그램이 종료되더라도 사리지지 않는 데이터의 특성을 말한다. 2. 영속성을 갖지 않는 데이터는 단지 메

thefif19wlsvy.tistory.com

 

[스프링부트 (7)] Spring Boot JPA(1) - 시작 및 기본 설정

[스프링부트 (7)] Spring Boot JPA(1) - 시작 및 기본 설정 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 스프링 부트 JPA 설정 방법] 입니다. : ) 0. 기본개념 JPA를 들어가기 전에 ORM부터 간..

goddaehee.tistory.com

 

Comments