Spring_08_ DB 연결방식 3가지

hyeong taek jo·2023년 10월 21일
0

Spring

목록 보기
8/34

📌 순서

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

📌 영속성(Persistence)

데이터를 생성한 프로그램이 종료되더라고 사라지지 않는 데이터의 특성
영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램이 종료되면 모두 잃어버린다.
파일 시스템, 관계형 데이터베이스 혹은 객체 데이터베이스 등을 활용하여 데이터를 영구적으로 저장하여 영속성을 부여한다.
즉, 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터를 말한다.

📌 Persistence Framework

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

  • JDBC --> DataSource 객체 사용
  • JPA --> EntityManager 객체 사용
  • Mybatis --> SqlManager 객체 사용

📌 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를 사용한다.

📌 JPA(Java Persistent API)

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

📌 MyBatis

개발자가 지정한 SQL, 저장 프로시저 그리고 몇 가지 고급 매핑을 지원하는 SQL Mapper
JDBC로 처리하는 상당 부분의 코드와 파라미터 설정 및 결과 매핑을 대신해준다.
데이터베이스 record에 원시 타입과 Map 인터페이스, 자바 POJO를 설정해서 매핑하기 위해 xml과 Annotation을 사용할 수 있다.

  • 장점
    SQL에 대한 모든 컨트롤을 하고자 할 때 매우 적합하다.
    SQL 쿼리들의 최적화가 잘되어 있을 때 유용하다.

  • 단점
    애플리케이션과 데이터베이스 간의 설계에 대한 모든 조작을 하고자 할 때는 적합하지 않다. 애플리케이션과 데이터베이스의 구조화가 잘 되도록 많은 설정 부분을 바꿔야 하기 때문이다.

profile
마포구 주민

0개의 댓글