Connection Pool이란

시모키타자와·2022년 10월 7일
0

SpringDB

목록 보기
2/8

Connection Pool이란

JDBC로 인해 개발자들은 DB와 연결을 편하게 할 수 있게 되었다.

다시 한번 복습을 하자면,

애플리케이션 서버 -> DB 연결을 할 때, TCP/IP연결을 진행하고 sql전달과 db로 부터 응답값을 받는 과정이 일어난다.

여기서, TCP/IP 연결을 할 때, DB의 ID와 PASSWORD를 전달하고 db에서 커넥션 객체를 생성을 하고 반환해 준다.
이렇게 db와 커넥션을 할 때마다 과정도 복잡하고 시간도 많이 소모가 된다.

이런 문제를 해결하기 위해, 커넥션을 미리 생성하고, 미리 생성된 커넥션을 사용하는 connection pool이라는 방법이 있다. pool는 영어로 수영장이라는 의미로 말 그대로 connection들이 수영장에 들어가 있다고 생각하면 된다.

그렇기 때문에 커넥션이 필요할 때 사용하고, 다 사용한 후에는 connection pool에 반환하면 된다. 대표적인 connection pool로는 hikariCP가 있다. 그 외에 여러 오픈 소스들이 존재하지만, 스프링 부트 2.0부터는 hikariCP를 기본으로 제공하기 때문에, hikari를 사용하면 된다.

app에서 db드라이버로 커넥션 조회를 보내고 각각의 커넥션을 tcp/ip로 db와 연결한다 그 후, db에서 커넥션의 응답요청을 반환해 주고, db드라이버에서 커넥션을 Connection Pool로 반환해주면 만들어진 conntion을 사용하면 된다.

이제 db에서 sql문을 전달할 때 connection pool에 생성되어 있는 connection를 사용하고 다시 pool로 반환해주면 된다.

profile
Back-end Engineer

0개의 댓글