본문 바로가기
Web/Spring

[Spring] Spring의 DB 접근 기술

by 희조당 2022. 8. 23.
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

댓글