Updated:

1. 개요

서버에서 DB 사용 시 매번 커넥션을 생성하면 성능 저하가 발생한다. 매번 커넥션을 생성하는 대신 미리 여러 개의 커넥션을 생성해서 한곳에 모아놓고, 필요할 때마다 사용하는 Connection Pool (커넥션 풀)을 통해 성능 저하를 막을 수 있다. 이번에는 Connection Pool (커넥션 풀)에 대해 알아보도록 하자.

2. 커넥션 생성

커넥션을 생성하기 위해서는 아래와 같은 과정이 필요하다.

  1. 사용자가 WAS에 요청

  2. DB 드라이버에 커넥션 조회 요청

  3. DB 드라이버가 DB에 TCP/IP 커넥션 연결

  4. DB에 인증정보 전달

  5. DB 세션 생성

  6. DB 커넥션 생성 및 DB 드라이버에 커넥션 반환

  7. 클라이언트에게 커넥션 반환

10개의 요청 발생 시 위 과정을 10번 수행해야 하는데, 커넥션 생성으로 인한 비용이 많이 발생하게 된다. 커넥션 풀을 통해 커넥션 생성으로 인한 비용을 줄일 수 있다.

3. 커넥션 풀

커넥션 풀을 사용하면 애플리케이션 시작 시점에 사전에 정의한 갯수 만큼의 커넥션을 미리 생성해서 커넥션 풀에 넣어놓고, 하나씩 꺼내서 사용한다. 사용이 끝나면 다시 커넥션 풀에 반환한다. 커넥션 생성 후 해당 커넥션을 재사용하므로 커넥션 생성으로 인한 비용을 줄일 수 있다.

Updated:

Leave a comment