Database
Persistence Framework
최MAX
2023. 2. 21. 02:10
Persistence, 영속성
- 데이터를 생성한 프로그램이 종료되어도 사라지지 않는 데이터의 특징을 의미
- 이 특징 없이 데이터는 오직 RAM에만 저장될 수 있어 프로그램이 종료되면 모두 사라진다.
- 즉, 애플리케이션을 종료하고 다시 실행하더라도 이전에 저장한 데이터를 다시 불러오는 것.
persistence layer
- 데이터에 영속성을 부여해주는 계층 (DB에 접근하는 역할)
- 보통 persistence framework를 사용하여 개발
Persistence Framework
- 데이터를 가공하는 자바 객체 층과 데이터를 저장하는 데이터베이스 층 간을 매끄럽게 연결해주는 역할
- SQL Mapper와 ORM(Object Relational Mapping)으로 나눌 수 있다.
1. SQL Mapper
SQL ←→ Mapping ←→ 객체(Object)
- 객체와 SQL 문을 매핑하여 데이터를 객체화하는 기술
- SQL Query문을 통해 데이터를 조작
- 즉, 개발자가 Query문을 직접 작성해야 한다.
- MyBatis, Jdbc Templates
JDBC (Java Database Connectivity)
- DB에 접근할 수 있도록 Java에서 제공하는 API
- 모든 Persistence Framework는 내부적으로 Jdbc를 사용
MyBatis
- 개발자가 지정한 SQL, 고급 매핑을 지원하는 SQL Mapper
- JDBC로 처리하는 여러 코드와 파라미터 설정, 결과 매핑을 지원
- JDBC를 사용할 때 번거로운 [Connection 생성 및 종료, Statement 생성 및 쿼리 수행, Result Set 처리] 등 다양한 DB 관련 설정을 해결해준다.
- xml과 Annotation을 사용
2. ORM (Object Relational Mapping)
DB 데이터 ←→ 매핑 ←→ 객체(Object)
- 객체와 DB의 데이터를 직접 매핑해주는 것
- SQL Query가 아닌 코드(메소드)로 데이터를 조작할 수 있다.
- 객체간의 관계로 SQL을 자동 생성해준다.
- JPA, Hibernate
JPA
- ORM을 사용하기 위한 표준 인터페이스를 모아둔 Java Persistence API
- JPA 구현체로 ORM Framework Hibernate가 있다.