목차
- 순수 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을 병행하여 사용한다.
끝.
'Study > SpringBoot' 카테고리의 다른 글
Spring Boot의 AOP 활용 (1) | 2024.12.06 |
---|---|
스프링 빈과 의존관계 (0) | 2024.11.23 |
간단한 회원 관리 예제로 웹 애플리케이션 계층 구조를 이해하기 (0) | 2024.10.31 |
스프링(Spring)과 스프링 부트(Spring Boot)의 차이점 알아보기 (0) | 2024.10.15 |
스프링부트 웹 개발의 주요 종류 (0) | 2024.10.10 |