본문 바로가기
Back-End/JPA

JDBC(Java Database Connectivity) 기반 데이터 엑세스 계층

by 달의 조각 2022. 8. 26.

📁 JDBC란?

Java 기반 애플리케이션에서 사용하는 데이터를 DB에 저장하거나, DB의 데이터를 Java 코드로 사용할 수 있도록 해 주는 Java에서 제공하는 표준 사양이다.

JDBC API는 다양한 벤더(Oracle, MS SQL, MySQL 등)의 DB와 연동할 수 있다. 동작 흐름을 알면 Spring의 데이터 엑세스 기술 사용에 도움이 된다. (Spring Data JDBC, Spring Data JPA)

 

📁 동작 흐름

Java 애플리케이션 → JDBC API → JDBC 드라이버 → 데이터베이스

  1. JDBC 드라이버 로딩: DB와 통신을 담당하는 인터페이스로, 다양한 벤더에서 이를 제공하면 드라이버의 구현체를 이용하여 특정 벤더의 DB에 엑세스 할 수 있다. DriverManager 클래스를 통해 로딩된다. (인터페이스)
  2. Connection 객체 생성: DriverManager를 통해 DB와 연결되는 세션이다.
  3. Statement 객체 생성: 작성한 SQL 쿼리문을 실행하기 위한 객체이다. 정적 SQL를 입력으로 가진다.
  4. Query 실행
  5. ResultSet 객체로부터 데이터 조회: 실행된 쿼리문에 대한 결과 데이터 셋이다.
  6. ResulSet ➡️ Statement ➡️ Connection 객체 Close: 사용 순서 역순으로 Close 한다.

 

📁 Connetion Pool

Connection 객체의 생성 작업은 비용이 많이 든다. 애플리케이션 로딩 시점에 객체를 미리 생성해 두고, DB에 연결이 필요할 경우 이 객체를 사용하여 성능을 향상시킨다. 이 Connection을 제공해 주는 관리자이다. Spring Boot 2.0부터 HikariCP가 기본 DBCP로 채택되었다.

댓글