Java로 개발된 대부분의 웹 어플리케이션은 Spring Framework를 사용하고 있으며
기본적으로는 MVC 구조을 토대로 구성한다.
여기서 MVC란 ?
간단하게는 Model-View-Controller의 약자로
Model : 데이터와 비지니스 로직 담당 (DB와 상호작용)
View : Client에게 보여지는 화면 (UI/UX)
Controller : Client의 요청, Server의 응답을 처리하고 Model과 View를 연결
의 구조라고 보면 된다

그리고 Model 쪽에서 DB와 상호작용을 위한 여러가지 방법이 있는데,
Java에서는 JDBC라는 자바 API를 제공한다.
JDBC (java Database Connecting)
- DB에 접근할 수 있도록 JAVA에서 제공하는 API, 모든 Persistence Framework는 내부적으로 JDBC API를 이용함
동작 순서는 간단하게는 이렇다.
Application - Persistence Framework – JDBC API – JDBC Driver- DB
더 상세한 JDBC 관련해서는 따로 포스팅할 예정이다.
그럼 Persistence Framework 는 뭘까?
직역하자면 영속성 이라고 생각하면 된다.
즉, 데이터의 영속성을 위해 개발자가 수행해야할 JDBC 프로그래밍을 하지 않도록 기능들을 제공하는 Framework 이다.
Persistence Framework
persistence(데이터의 지속성, 영속성), framework(동작에 필요한 구조를 어느 정도갖춘 개발 도구)
데이터의 저장, 조회, 변경, 삭제를 다루는 클래스 및 설정 파일들의 집합
- 장점 : JDBC프로그래밍의 복잡함이나 번거로움 없이 간단하게 데이터베이스와 연동되는 시스템 개발, 안정적인 구동
- 종류
1. SQL Mapper(SQL 문장으로 직접 DB데이터를 다룸) : mybatis
2. ORM(객체를 통해 간접적으로 DB데이터를 다룸) : JPA(Hibernate)
그럼 Persistence Framework의 종류 두가지를 비교해보겠다.
ORM (Object Relational Mapping, JPA)
객체와 DB테이블을 맵핑하여 method를 호출해 쿼리 실행
JPA (Java Persistence API) : JAVA ORM을 사용하기 위한 인터페이스를 모아놓은 API
DB <-> JDBC API<-> JAVA Appliecation(JPA)
- 장점 : 데이터 접근을 위한 기본적인 method가 정의되어 있음, 유지보수에 용이
- 단점 : 복잡한 쿼리가 필요한 경우 부적합, 반본적인 코드 작성
MyBatis
임의의 SQL 쿼리문, 그리고 그 쿼리의 결과를 객체와 맵핑할 수 있도록 지원하는 SQL Mapper
동작 과정
DB <-> Mapper <-> DAO(Data Access Object) <-> Controller <-> UI
- 장점 : 복잡한 쿼리가 필요한 경우 적합, 가공된 데이터 또는 특정 컬럼만 추출하기 적합
- 단점 : 반복적인 작업이 필요, 일일히 SQL문과 데이터를 맵핑해줘야 한다.
'[Spring]' 카테고리의 다른 글
| [Spring Batch] ItemReader과 ItemWriter 사용해보기 (0) | 2025.05.29 |
|---|---|
| [Spring Batch] Multi-DataSource 주입 오류 해결 방법 (0) | 2025.05.26 |