DB

Connection Pool

Raconer 2023. 4. 15. 00:16
728x90

Connection Pool은 데이터베이스 연결을 효율적으로 재사용하기 위한 연결 캐시(Connection Cache)입니다.
매번 새 연결을 생성하는 대신, 미리 생성된 연결을 풀(Pool)에 보관하고 필요할 때마다 꺼내 쓰고 반환합니다.


📌 왜 필요한가?

  • 데이터베이스 연결은 생성과 종료에 많은 비용이 듭니다.
  • 사용자가 많아질수록 연결 비용은 급증하고, 성능 저하가 발생합니다.
  • Connection Pool은 재사용 가능한 연결을 관리하여 이런 비용을 줄입니다.

🔧 동작 방식

  1. 애플리케이션 시작 시, DB 연결을 여러 개 생성해 Pool에 저장.
  2. 클라이언트가 요청하면 Pool에서 유휴 Connection을 제공.
  3. 사용이 끝나면 Connection은 닫지 않고 다시 Pool로 반환.
  4. 동시 접속이 많아 남은 Connection이 없으면, 대기 상태로 전환 후 반환되면 순서대로 처리.

⚙️ Connection Pool 크기 설정 팁

설정 설명
너무 큼 메모리 과다 사용, 시스템 리소스 낭비
너무 작음 동시 요청 시 대기 시간 증가
✅ 적절한 크기 서버 부하와 트래픽을 고려해 동적으로 조절 필요

📚 정리

  • Connection Pool은 Connection 재사용으로 성능을 높이는 기술입니다.
  • 미리 생성된 연결을 활용해 응답 속도 향상자원 절약 가능.
  • 연결 수를 제한해 안정적인 서비스 유지 가능.
  • 동시 접속 증가 시 대기 메커니즘을 통해 시스템 다운 방지.
728x90

'DB' 카테고리의 다른 글

Redis 란?_명령어_brpop  (0) 2023.04.16
Redis 란?_명령어_기초  (0) 2023.04.16
Redis 란?_Key/value 규칙  (0) 2023.04.16
Redis 란?_기본 정보  (0) 2023.04.16
데이터베이스 트랜잭션(Transaction) 이란?  (0) 2023.04.15