커넥션 풀이란..

박성현·2025년 8월 28일

개발중 학습

목록 보기
22/43

커넥션 풀(Connection Pool) 이해하기 – DB 연결 효율 관리

웹 애플리케이션에서 DB를 사용할 때, 매번 DB에 연결을 새로 만드는 방식은 성능상 부담이 큽니다.
커넥션 풀은 이런 문제를 해결하기 위해 만들어진 DB 연결 재사용 구조입니다.


커넥션 풀의 기본 원리

  1. 커넥션 생성

    • 서버 시작 시 또는 요청 시점에 DB 커넥션을 미리 생성하거나 필요할 때 생성합니다.
  2. 요청 시 커넥션 할당

    • 사용자가 SELECT, UPDATE 같은 쿼리를 요청하면 풀에서 유휴 커넥션을 가져와 사용합니다.
  3. 쿼리 완료 후 반환

    • 쿼리가 끝나면 커넥션을 끊지 않고 풀로 돌려보내 유휴 상태로 유지합니다.
    • 다음 요청 시 동일한 커넥션을 재사용할 수 있습니다.

여러 사용자가 동시에 요청할 때

  • 커넥션 풀은 요청 단위로 커넥션을 할당합니다.
  • 한 사람이 동시에 여러 쿼리를 실행하면 풀에서 여러 커넥션을 할당받고,
  • 여러 사용자가 동시에 요청하면 풀에 있는 유휴 커넥션을 나눠 사용합니다.
  • 중요한 점: 유휴 커넥션은 현재 사용되지 않고 풀에서 대기 중인 연결을 의미하며, 특정 개인과 매칭되는 것이 아닙니다.

커넥션 풀 주요 설정

속성의미
initialSize풀 시작 시 미리 생성할 커넥션 수
maxActive / maxTotal동시에 사용할 수 있는 최대 커넥션 수
maxIdle풀에 유지할 수 있는 최대 유휴 커넥션 수
minIdle풀에 항상 유지할 최소 유휴 커넥션 수
maxWaitMillis풀에 커넥션이 없을 때 최대 대기 시간(ms)
  • 적절한 설정을 통해 성능과 DB 리소스 효율을 동시에 확보할 수 있습니다.

결론

  • 커넥션 풀은 DB 연결을 재사용하도록 만들어졌습니다.
  • 사용자가 SELECT나 UPDATE를 수행해도 커넥션을 끊지 않고 유휴 상태로 돌려보내고, 다음 요청에서 다시 사용합니다.
  • 이를 통해 연결 생성/종료 비용을 줄이고, 동시에 여러 사용자의 요청을 효율적으로 처리할 수 있습니다.

profile
개발기록장

0개의 댓글