커넥션 풀 & DataSource
커넥션 풀
데이터베이스 커넥션을 여러개 담고 있는 공간
커넥션 풀에서 꺼낸 커넥션을 사용하고 close 하면 커넥션을 끊지 않고 커넥션 풀에 반환한다.
커넥션 풀 사이즈는 보통 기본 10 이지만 상황에 맞게 설정할 수 있다.
커넥션 풀 오픈소스 : commons-dbcp2 , tomcat-jdbc pool , HikariCP 등등
스프링부트 2.0 부터는 HikariCP 를 기본 커넥션 풀로 사용한다.
DataSource
자바에서 데이터베이스 커넥션 획득 방법을 추상화한 인터페이스
웹 어플리케이션이 DriverManager 를 사용하고 있을 때 dataSource.getConnection()
메서드를 호출하면 새로운 커넥션을 생성해서 반환하고
웹 어플리케이션이 커넥션 풀을 사용하고 있을 때 dataSource.getConnection()
메서드를 호출하면 커넥션 풀의 커넥션을 반환한다.
즉, DriverManager , DBCP2 , HikariCP 중 어떤 것을 사용하더라도 웹 어플리케이션의 코드는 수정할 필요가 없다.
자바의 DriverManager 는 DataSource 의 자식이 아니기 때문에 스프링이 제공하는 DriverManagerDataSource 를 사용해야 한다.
This post is licensed under CC BY 4.0 by the author.