코드스테이츠_국비교육/[Section3]

46.01_[Spring MVC] JDBC 기반 데이터 액세스 계층_JDBC_22.10.27

생각없이 해도 생각보다 좋다. 2022. 10. 27. 23:22

JDBC
: Java Database Connectivity
: Java에서 제공하는 데이터 액세스 기술(표준 사양, 스펙, 명세라고도 함)
: Java 기반의 애플리케이션에서 사용하는 저수준 API로 기억하고 사용법을 열심히 학습할 필요는 없다.
: 직접적으로 JDBC API를 사용할 일은 거의 없다. Spring Data JDBC, Sprng Data JPA를 많이 사용.

Spring Data JDBC
: Spring에서 제공하는 데이터 액세스 기술
: 전송한 요청 데이터를 기반으로 데이터베이스의 데이터를 저장, 수정, 조회, 삭제하는 기술

JDBC 동작 흐름
1. Java Application
2. JDBC API(API 사용 전 JDBC 드라이버 먼저 로딩함)
3. JDBC Driver
4. Database

JDBC 드라이버
데이터베이스와의 통신을 담당하는 인터페이스. Oracle, MS SQL, MySQL을 각각 벤더라고 표현하는데, 이러한 벤더들이 해당 벤더에 맞는 JDBC 드라이버를 구현하여 제공한다.

JDBC API 사용 흐름
1. JDBC 드라이버 로딩
: 사용하려는 JDBC 드라이버를 로딩(DriverManager 클래스)
2. Connection 객체 생성
: Connection 객체란 Database와 연결되는 세션
3. Statement 객체 생성
: Statement 객체란 SQL 쿼리문을 실행하기 위한 객체
4. Query 실행
: Statement 객체를 이용해서 실행
5. ResultSet 객체로부터 데이터 조회
: ResultSet 객체란 실행된 SQL 쿼리문에 대한 결과 데이터 셋을 저장하는 객체
6. ResultSet 객체 Close
7. Statement 객체 Close
8. Connection 객체 Close
: JDBC 드라이버를 로딩하고 객체들을 생성하여 사용하고, 사용한 객체를 종료하는 흐름을 가지고 있다.

Connection Pool
: Connection Pool이란 애플리케이션 로딩 시점에 Connection 객체를 미리 생성하여 보관하고 필요할 때 Connection 객체를 제공하는 관리자
: JDBC API 와 데이터베이스를 연결하기 위해 Connection 객체를 생성하는 작업은 많은 리소스를 필요로 하기 때문에, Connection Pool은 리소스의 효율을 증가시켜 애플리케이션 성능을 증가시키는데에 의미가 있다.
: DBCP, DataBase Connection Pool 라는 용어로 많이 사용된다.
: 기존에는 Apache Commons DBC를 주로 썼지만 현재는 HikariCP를 기본 DBCP로 사용한다. (Spring Boot 2.0 버전 이후)

정리
-JDBC API로 Java 기반 애플리케이션의 코드 레벨에서 사용하는 데이터베이스를 이용할 수 있다.
-JDBC API의 사용법보단 동작 흐름을 이해하는데 집중하고, 사용법은 Spring에서 지원하는 기술로 익히자.
-Connection Pool이라는 Connetion 객체의 관리자가 존재하고, 덕분에 효율적으로 Connection을 사용할 수 있다.