커넥션 풀(Connection Pool)이란?
커넥션 풀(Connection Pool)이란 미리 일정 개수의 데이터베이스 연결을 생성하고 관리하는 매커니즘이다.
데이터베이스와 연결하기 위해서는 Connection 객체를 생성해야하는 데, 이 작업은 비용이 많이 드는 작업중에 하나이다.
따라서 DB를 연결할 때마다 Connection 객체를 새로 만드는 것은 비용이 많이 들며, 비효율적이다. 이러한 문제를 해결하기 위해 어플리케이션이 로딩 시점에 Connection 객체를 미리 생성하고, 어플리케이션에서 DB 연결이 필요할 경우 미리 준비된 Connection 객체를 사용하여 어플리케이션의 성능을 향상하는 커넥션 풀(Connection Pool)이 등장하게 되었다.
커넥션 풀의 동작구조
- 어플리케이션을 시작하는 시점에 커넥션 풀은 커넥션을 미리 생성하여 보관한다. 이 연결들은 풀(Pool)이라는 리스트에 저장됨.
- 커넥션 풀에 들어있는 Connection 객체는 TCP/IP로 DB와 연결되어 있는 상태이기 때문에 즉시 SQL을 DB에 저장할 수 있다.
- 즉, DB 드라이버를 통해 새로운 커넥션을 획득하는 것이 아닌 이미 생성되어 있는 커넥션을 참초하여 사용하게 된다.