커넥션풀(DBCP)

Soozoo·2024년 8월 6일

Spring

목록 보기
1/12

커넥션 풀(Connection Pool)은 데이터베이스와 같은 자원에 대한 커넥션(연결)을 미리 만들어 두고, 필요할 때마다 이를 재사용하도록 관리하는 기법입니다. 이를 통해 애플리케이션에서 새로운 커넥션을 생성하고 닫는 데 소요되는 오버헤드를 줄이고, 자원의 효율적인 활용을 도모할 수 있습니다.

커넥션 풀의 주요 기능

  1. 커넥션 재사용: 커넥션을 필요로 하는 클라이언트가 요청을 하면, 커넥션 풀에서 사용 가능한 커넥션을 할당합니다. 요청이 끝나면 커넥션을 닫는 대신 다시 풀에 반환합니다. 이렇게 하면 매번 새로 커넥션을 생성하는 부담이 줄어듭니다.
  2. 성능 최적화: 커넥션을 생성하는 과정은 시간이 많이 걸릴 수 있으며, 데이터베이스 서버에 부하를 줄 수 있습니다. 커넥션 풀을 사용하면 미리 생성된 커넥션을 재사용하므로 성능이 향상됩니다.
  3. 자원 관리: 커넥션 풀은 최대 커넥션 수를 제한하여 데이터베이스 서버에 과부하가 걸리지 않도록 관리합니다. 풀에 있는 커넥션 수가 최대치에 도달하면, 추가 요청은 대기하거나 실패하게 됩니다.
  4. 안정성 제공: 커넥션 풀은 관리되지 않는 커넥션 누수를 방지하고, 비정상적으로 종료된 커넥션을 감지하여 제거하는 등의 작업을 통해 시스템의 안정성을 유지합니다.

커넥션 풀 사용의 장점

  • 응답 시간 단축: 새로운 커넥션을 생성하는 시간을 줄여 애플리케이션의 응답 시간을 단축시킵니다.
  • 서버 부하 감소: 불필요한 커넥션 생성 및 종료를 줄임으로써 서버의 부하를 줄입니다.
  • 자원 관리 효율성: 데이터베이스 서버와 같은 자원을 효율적으로 사용하여 시스템의 전반적인 성능을 향상시킵니다.
profile
넙-죽

0개의 댓글