Connection Pool : 데이터베이스와 연결되는 Connection 객체를 미리 여러 개 생성해두고, 이를 요청할 때 꺼내서 사용하고 다시 반환하는 기법
■ 사용하는 이유
웹 애플리케이션에서는 클라이언트의 요청이 들어올 때마다 DB 연결이 필요하지만, 매번 새로운 Connection을 생성하고 소멸하는 과정은 성능상 부담이 크다.
→ Connection Pool을 사용하면 매번 연결을 새로 만들 필요 없이, 미리 만들어진 Connection을 재사용함으로써 DB 접근 시간을 단축하고 리소스 사용을 효율화할 수 있다.
→ 동시에 생성 가능한 Connection 수를 제한하여 DB 서버에 부하가 집중되는 것을 방지할 수 있다.
■ Connection이 부족할 때, 시스템은 어떻게 동작하나요?
Connection Pool 내의 모든 자원이 사용 중이라면, 새로운 요청은 Connection이 반환될 때까지 대기 상태로 전환됩니다.
이러한 방식은 DB에 동시에 과도한 연결이 이루어지지 않도록 조절하는 장치로 작동하며, Connection이 반환되면 대기 중인 요청에게 순차적으로 제공됩니다.
→ 이 구조를 통해 시스템은 DB 자원을 효율적으로 관리하면서도 안정적으로 다수의 요청 처리 가능
■ Connection Pool 설정 시, 주의해야 할 점
Pool의 크기를 너무 작게 설정하면 요청이 몰릴 때, 병목 현상이 발생하여 대기 시간이 늘어날 수 있습니다.
만약, 너무 크게 설정하면 메모리를 과도하게 사용하게 되어 시스템 자원에 부담을 줄 수 있습니다.
'Computer Science > Databse' 카테고리의 다른 글
[DB] 트랜잭션 & 트랜잭션 격리 수준 (0) | 2025.06.04 |
---|