- 애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회한다.
- DB 드라이버는 DB와 TCP/IP 커넥션을 연결한다. 3 way handshake 같은 TCP/IP 연결을 위한 네트워크 동작이 발생한다.
- DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달한다.
- DB는 ID, PW를 통해 내부 인증을 완료하고, 내부에 DB 세션을 생성한다.
- DB는 커넥션 생성이 완료되었다는 응답을 보낸다.
- DB 드라이버는 커넥션 객체를 생성해서 클라이언트에 반환한다.
매 요청마다 매번 커넥션을 만드는 과정은 리소스 많이 소모됩니다.
애플리케이션 서버에서도 TCP/IP 커넥션을 새로 생성하기 위해 리소스가 소모됩니다.
커넥션을 매번 만드는 과정은 응답 속도에도 영향을 줍니다.
애플리케이션이 시작되는 시점에 커넥션을 미리 연결하여 풀에 보관됩니다. (기본 10개)
커넥션 풀에 들어있는 커넥션은 TCP/IP로 DB와 연결되어 있기 때문에 즉시 SQL을 DB에 전달할 수 있습니다.
스프링 부트 2.0 부터는 기본 커넥션 풀로 hikariCP를 사용합니다.
성능, 사용의 편리함, 안전성 측면에서 충분히 검증되었습니다.
reference : 김영한 선생님