..
Connection Pool: 데이터베이스 접속 비용 최적화
1. Connection Pool이란?
데이터베이스에 접근할 때마다 매번 새로운 연결(Connection)을 만드는 것이 아니라, 미리 일정 수의 연결을 생성해 풀(Pool) 속에 담아두고 재사용하는 기법을 의미합니다.
2. 왜 사용하는가? (도입 효과)
- 비용 절감: DB 연결을 맺고 끊는 과정은 네트워크 통신과 인증 절차 등으로 인해 생각보다 많은 비용(시간/자원)이 소모됩니다. 미리 만들어진 것을 빌려 쓰면 이 비용을 즉시 절약할 수 있습니다.
- 응답 속도 향상: 생성 과정이 생략되므로 쿼리를 실행하기까지의 대기 시간이 줄어듭니다.
- 자원 제어: 무분별한 커넥션 생성을 방지하여 DB 서버가 감당할 수 있는 수준의 부하를 유지합니다.
3. 설정 최적화 가이드
커넥션 풀은 무조건 크다고 좋은 것이 아닙니다. 풀이 커지면 메모리 점유율이 늘어나고 유지 관리 비용이 상승합니다.
MySQL의 공식 레퍼런스 가이드에 따르면, 서비스 규모에 따라 다르지만 보통 수백 명의 동시 사용자를 처리하는 데 20~30개 정도의 커넥션 풀로도 충분한 경우가 많습니다. 본인의 애플리케이션 트래픽 규모를 정밀하게 분석하여 적절한 수치를 설정하는 것이 핵심입니다.
Connection Pool은 “매번 새 차를 뽑지 않고 렌터카를 빌려 타는 것”과 같습니다. 훨씬 경제적이고 빠릅니다.