슬기로운 개발생활

[Java] 자바 퍼시스턴스 프레임워크 ( Java Persistence Framework )

by coco3o
반응형

Persistence란?

- 프로그램이 종료되더라도 사라지지 않는 데이터의 특성 (영속성)
=> 어플리케이션을 종료하고 다시 실행하더라도 이전에 저장한 데이터를 다시 불러올 수 있는 기술이다.

- persistence layer : 데이터에 영속성을 부여해주는 계층 (보통 DB에 접근하는 역할)
=> JDBC로 직접 구현할 수 있지만, 보통 persistence framework를 사용하여 개발한다.

Persistence Framework

- 데이터베이스와의 연동되는 시스템을 빠르게 개발하고 안정적인 구동을 보장해주는 프레임워크

종류


1. SQL Mapper : SQL문장으로 직접 데이터베이스 데이터를 다루는 SQL Helper ( Mybatis )
2. ORM : 객체를 통해 간접적으로 데이터베이스를 다루는 ORM ( Hibernate, JPA )

1. ORM(Object Relational Mapping)
DB 데이터 <ㅡ 매핑 ㅡ> 객체(Object)
- 객체와 DB의 데이터를 직접 매핑해주는 것을 말한다.
=> SQL Query가 아니라 직관적인 코드(메소드)로서 데이터를 조작할 수 있다.
=> 객체간의 관계로 SQL을 자동 생성한다.
- ex) JPA, Hibernate

- JPA(Java Persistent API)
- 자바 ORM 기술에 대한 API 표준 명세
=> ORM을 사용하기 위한 인터페이스를 모아둔 것
- 구현체를 선택하여 사용할 수 있다.
=> Hibernate, EclipseLink 등의 ORM 프레임워크

2. SQL Mapper
SQL <ㅡ 매핑 ㅡ> 객체(Object)
- SQL Query문을 통해 데이터를 조작한다.
=> 즉, 직접 Query문을 작성해야 한다.
- ex) MyBatis, JDBC Templetes

- JDBC(Java Database Connectivity)
- DB에 접근할 수 있도록 Java에서 제공하는 API
=> 모든 Persistence Framework에는 내부적으로 JDBC API를 사용한다.

- MyBatis
- 개발자가 지정한 SQL, 고급 매핑을 지원하는 SQL Mapper
- JDBC로 처리하는 상당부분의 코드와 파라미터 설정, 결과 매핑을 지원해준다.
=> 기존 JDBC를 사용할 때 DB 관련 여러 설정(Connection 생성, Statement 생성 및 쿼리 수행, 결과값(ResultSet) 처리)을
다루어야 했으나, 자바 객체를 실제 SQL 쿼리문에 연결함으로써 빠른 개발과 편리한 테스트를 할 수 있다.
- xml과 Annotation을 사용하여 primitive타입과 Map 인터페이스, 자바 POJO 객체를 설정하여 DB record에 사용할 수 있다.


반응형

블로그의 정보

슬기로운 개발생활

coco3o

활동하기