어느 언어나 프레임워크가 그렇듯, DB와 상호작용 하기 위해서는 연결이 되어있어야 하는데, 그게 바로 Connection 이다.

JAVA에는 DB Connection 을 지원하는 JDBC 라는 호환성이 뛰어나고 편리한 API가 있다. Hibernate, JPA , iBatis 등의 Data Access API 들은 이 JDBC API 를 사용해 DB에 접근 하는것

커넥션.png

이 JDBC 는 DB 에 접근하기 위해 Connection 오브젝트를 사용한다.

Connection pool 이란?

DB Connection 에도 싱글톤의 미학을 적용해서 미리 Connection Instance 를 생성해서 저장해두고, 이를 대여해서 Connection 을 사용하고, 다시 반납하는 방식으로 Connection을 관리하고자 하는 요구사항이 생겨났고, Connection pool 이 탄생했다.

CP → DB Connetion 을 미리만들고 , 해당 Connection 을 관리한다.

DataSource

DB 연결정보를 저장, Connection 을 생성, Connection Pool에 등록 하고 관리하는 역활이 바로 DataSource이다.

HikariCP : 스프링부트 2.0 이후에 표준이된 DataSource . Zero-Overhead가 특징으로 높은 성능을 자랑한다. 오픈소스이고 안정적이며 빠르다.