728x90
✍️ 학습 목표
- JDBC
- Spring JdbcTemplate
- JPA
- Spring Data JPA
📌 JDBC
JDBC란? Java Database Connectiviy의 약자로 Java 환경에서 DB에 접근하기 위한 표준 API이다.
스프링과 독립적이며 DBMS의 종류와 상관없이 하나의 JDBC API를 이용해서 데이터베이스 작업을 처리한다.
✔️ 등장 배경 및 특징
- JDBC 이전에는 데이터베이스 종류에 따라 다른 SQL문을 사용해야 했다. JDBC가 등장하면서 데이터베이스마다 다른 메서드나 전역 변수 등을 통일하는 문법을 만들어 사용할 수 있게 해주었다.
- 코드가 길고 쿼리문을 직접 작성해야 하는 번거로움이 있으며 예외 처리를 위한 복잡한 try-catch 문을 사용해서 현재는 많이 사용하지 않는다.
📌 Spring JdbcTemplate
스프링에서 JDBC 프로그래밍을 위해 제공하는 Spring API이다.
자원을 내부적으로 생성하고 해제함으로써 기존 JDBC보다 빠르고 편리하게 사용할 수 있다.
✔️ 특징
- 설정이 기존 JDBC와 동일하다.
- JdbcTemplate 내부에서 지원해주는 메서드를 통해서 JDBC API 상의 반복되는 코드는 줄여준다.
- 하지만 쿼리문은 여전히 직접 작성해야 한다.
📌 JPA
JPA란? Java Persistence API의 약자로 Java 진영의 ORM 기술 표준이다.
Hibernate, EclipseLink 등 다양한 구현체가 존재한다.
✔️ 등장 배경
- 관계형 데이터베이스와 Java라는 언어가 가지는 객체 지향성의 패러다임 불일치 때문에 JDBC를 사용한 개발은 상당히 비효율적이다.
- 이 비효율성을 해결하고 객체 지향적으로 개발에 집중할 수 있게 해 주는 게 JPA이다.
✔️ 특징
- 쿼리문을 직접 작성하지 않아도 돼서 생산성, 유지보수 다양한 면에서 뛰어나다.
- 다양한 장점들이 존재하지만 역시 '패러다임의 해소'가 가장 크다.
- 하지만 복잡한 쿼리문을 작성하기에는 적합하지 않고 높은 러닝 커브를 가진다.
📌 Spring Data JPA
JPA 구현체를 좀 더 쉽게 사용하고자 추상화시킨 모듈이다.
추가적인 자세한 내용은 여기에서 ㅎㅎ
'Web > Spring' 카테고리의 다른 글
[Spring] Servlet, 서블릿 (0) | 2022.09.15 |
---|---|
[Spring] Spring의 MVC (0) | 2022.09.14 |
[Spring] Spring의 핵심 : IoC, DI (23.05.16 updated) (0) | 2022.08.23 |
[Spring] Spring vs Spring Boot (2) (0) | 2022.08.23 |
[Spring] Spring vs Spring Boot (1) (0) | 2022.08.19 |
댓글