풀의 최대 커넥션 개수를 보통 maxSize 같은 설정으로 해둔다. (예: 20개)
ex:
20명의 요청은 즉시 풀에서 Connection을 빌려감
나머지 10명은 대기 큐(wait queue) 에 들어감
→ 앞선 요청이 끝나서 커넥션이 반납되면, 그걸 받아서 실행됨
대기 시간이 너무 길면 → Timeout 예외 발생 (예: ConnectionTimeoutException)
풀 크기를 초과하는 요청은 대기하거나 실패하는 구조
→ 이걸로 DB에 무제한 연결이 몰려서 서버가 다운되는 걸 방지
애플리케이션 서버 메모리(JVM 메모리) 안에 저장
풀을 관리하는 라이브러리(HikariCP, DBCP, MyBatis의 POOLED 등)가
내부적으로 List<Connection> 같은 자료구조로 보관
DB 서버에 저장하는 게 아니라, 우리 애플리케이션이 실행되는 서버 안에서 관리