본문 바로가기
[Spring]/Spring Data JDBC

JDBC와 Spring Data JDBC

by 황원용 2022. 11. 22.
728x90

JDBC(Java Database Connectivity)

  • Java 기반의 코드 레벨에서 사용하는 데이터를 데이터 베이스에 저장 및 업데이트하거나 그 반대로 데이터베이스 내의 데이터를 Java 코드 레벨에서 사용할 수 있게 해주는 표준 사양(명세, Specification)이다.
  • Java 애플리케이션 -> JDBC API -> JDBC 드라이버 -> 데이터베이스 구조의 동작 흐름을 가지고 있다.

Connection Pool

  • JDBC API를 사용해서 데이터베이스와의 연결을 위한 Connection 갹체를 생성하는 일은 비용이 꽤 많이 든다. 
  • 이 비용을 줄이기 위해 애플리케이션 로딩 시점에 Connection 객체를 미리 생성해두고 애플리케이션에서 데이터베이스에 연결이 필요할 때 미리 만들어둔 Connection 객체를 사용하여 애플리케이션 성능을 향상시킬 수 있다.
  • Spring Boot 2.0부터는 HikariCP를 기본 DBCP(Database Connection Pool)로 채택하고 있다.

SQL 중심 기술

  • mybatis, Spring JDBC
  • 애플리케이션에서 데이터 베이스를 접근할 때 SQL 쿼리문을 애플리케이션 내부에 직접 작성한다.
  • SQL 쿼리문이 직접적으로 포함되는 방식으로 과거에 사용하던 방식이다.

객체 중심 기술

  • 데이터를 SQL 쿼리문 위주가 아닌 객체 관점으로 바라보는 기술
  • Java 객체를 SQL 쿼리문으로 자동 변환한 후에 데이터베이스의 테이블에 접근한다.
  • 이러한 객체 중심의 데이터 엑세스 기술을 ORM(Object-Relational Mapping)이라고 한다.
  • 대표적으로 JPA(Java Persistence API), Spring Data JDBC(내부적으로 jdbc 기술을 이용하긴 함)가 있다.
728x90