Study/SpringBoot
스프링 DB 접근 기술 개요
kanado
2024. 11. 14. 19:19
목차
- 순수 JDBC
- 스프링 JdbcTemplate
- JPA (Java Persistence API)
- 스프링 데이터 JPA
순수 JDBC
JDBC(Java Database Connectivity)는 자바 표준 API로, 데이터베이스에 접근하는 기본적인 방법을 제공한다.
특징
- 낮은 수준의 데이터베이스 작업을 직접 처리
- 높은 자유도와 유연성 제공
하지만, 반복적인 코드가 많아 생산성이 떨어지고 유지보수가 어렵다. 따라서 실무에서는 잘 사용되지 않는다.
스프링 JdbcTemplate
스프링 JdbcTemplate은 순수 JDBC의 단점을 보완한다.
장점
- 반복적인 코드 제거
- 예외 처리와 자원 관리를 자동화
JdbcTemplate을 사용하면 SQL은 직접 작성하지만, 자원 관리나 결과 매핑과 같은 반복 작업을 최소화할 수 있다.
JPA (Java Persistence API)
JPA는 ORM(Object-Relational Mapping) 기술로, 객체와 데이터베이스 간의 매핑을 처리한다.
특징
- 객체 중심 설계로 패러다임 전환 가능
- SQL 작성 최소화
- 데이터 변경은 모두 트랜잭션 안에서 처리
JPA는 기본적인 CRUD와 같은 반복적인 데이터 작업을 자동화하여 개발 생산성을 높인다. SQL 대신 객체를 통해 데이터베이스 작업을 수행할 수 있어 코드가 간결해진다.
장점
- 개발 속도 향상
- 유지보수성 증가
- 복잡한 쿼리 작성 시 Querydsl과 같은 추가 도구와의 연계 가능
스프링 데이터 JPA
스프링 데이터 JPA는 JPA 위에 구축된 프레임워크로, JPA의 반복적인 작업을 더 간단하게 만들어준다.
주요 기능
- 인터페이스만으로 CRUD 기능 제공
- 메서드 이름으로 쿼리 자동 생성 (e.g., findByName)
- 페이징과 정렬 기능 내장
스프링 데이터 JPA는 데이터 접근 계층의 개발을 크게 단순화하여, 개발자가 핵심 비즈니스 로직에 집중할 수 있도록 도와준다.
실무 활용
실무에서는 JPA와 스프링 데이터 JPA를 기본으로 사용하며, 복잡한 동적 쿼리는 Querydsl을 활용한다. 필요 시, JPA가 제공하는 네이티브 쿼리나 JdbcTemplate을 병행하여 사용한다.
끝.