Search
〰️

Connection Pool

커넥션 풀

데이터베이스 커넥션 획득 과정
1.
애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회
2.
DB 드라이버는 DB와 TCP/IP 커넥션을 연결한다. 물론 이 과정에서 3 way handshake 같은 TCP/IP
연결을 위한 네트워크 동작 발생
3.
DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달
4.
DB는 ID, PW를 통해 내부 인증을 완료하고, 내부에 DB 세션 생성
5.
DB는 커넥션 생성이 완료되었다는 응답
6.
DB 드라이버는 커넥션 객체를 생성해서 클라이언트에 반환
→ 이렇게 커넥션을 새로 만드는 것은 과정도 복잡하고 시간도 왕왕 소모되는 일이다.
DB는 물론이고 애플리케이션 서버에서도 TCP/IP 커넥션을 새로 생성하기 위한 리소스를 매번 사용해야 한다.
진짜 문제는 고객이 애플리케이션을 사용할 때, SQL을 실행하는 시간 뿐만 아니라 커넥션을 새로 만드는 시간이 추가되기 때문에 결과적으로 응답 속도에 영향을 준다.
요런 문제를 해결하기 위해 고안된 방법이 바로 커넥션 풀이다.
커넥션 풀을 이용하면, 커넥션을 미리 생성해놓고 원할때마다 사용할 수 있다!