[DB] Connection Pool (커넥션 풀)
Updated:
1. 개요
서버에서 DB 사용 시 매번 커넥션을 생성하면 성능 저하가 발생한다. 매번 커넥션을 생성하는 대신 미리 여러 개의 커넥션을 생성해서 한곳에 모아놓고, 필요할 때마다 사용하는 Connection Pool (커넥션 풀)을 통해 성능 저하를 막을 수 있다. 이번에는 Connection Pool (커넥션 풀)에 대해 알아보도록 하자.
2. 커넥션 생성
커넥션을 생성하기 위해서는 아래와 같은 과정이 필요하다.
-
사용자가 WAS에 요청
-
DB 드라이버에 커넥션 조회 요청
-
DB 드라이버가 DB에 TCP/IP 커넥션 연결
-
DB에 인증정보 전달
-
DB 세션 생성
-
DB 커넥션 생성 및 DB 드라이버에 커넥션 반환
-
클라이언트에게 커넥션 반환
10개의 요청 발생 시 위 과정을 10번 수행해야 하는데, 커넥션 생성으로 인한 비용이 많이 발생하게 된다. 커넥션 풀을 통해 커넥션 생성으로 인한 비용을 줄일 수 있다.
3. 커넥션 풀
커넥션 풀을 사용하면 애플리케이션 시작 시점에 사전에 정의한 갯수 만큼의 커넥션을 미리 생성해서 커넥션 풀에 넣어놓고, 하나씩 꺼내서 사용한다. 사용이 끝나면 다시 커넥션 풀에 반환한다. 커넥션 생성 후 해당 커넥션을 재사용하므로 커넥션 생성으로 인한 비용을 줄일 수 있다.
Leave a comment