[면접 질문] Connection Pool이란? (Feat. ChatGPT)

TraceofLight·2023년 6월 25일
0

InterviewStudy

목록 보기
8/11
post-thumbnail

DB Connection Pool이란?

DB와 미리 Connect 해놓은 객체를 Pool에 저장
클라이언트 요청 시 Connection을 대여
처리가 끝나면 Connection을 반납하여 Pool에 다시 저장

미리 연결해뒀다가 필요할 때 꺼내쓰는 형태의 커넥션 객체와 같다고 이해할 수 있을 거 같다.

사용하는 이유?

Java Spring의 경우,

  • DB에 직접 연결해서 처리하는 방식을 사용하는 경우
  • 매번 JDBC Driver를 로드하고 커넥션 객체를 받아와야 함
  • 요청 때마다 드라이버 로드, 객체 생성, 연결이 반복적으로 이루어짐

→ 매우 비효율적이라 이러한 문제를 해결하기 위해 Connection Pool을 사용한다.

+ 그 외의 프레임워크들도 사용한다고 한다.

특징

  • WAS 실행 시 Connection 객체 Pool에 미리 생성
  • HTTP 요청에 따라 객체를 가져다 쓰고 반환
  • Connection 요청마다 연결, 생성 시간이 소비되지 않음
    → 연결 부하 감소 효과가 있음
  • 동시 접속자 수가 Pool의 객체 개수보다 많은 경우?
    → 미리 생성된 커넥션 객체가 모자르면 반환까지 순번대로 대기

Pool이 클수록 메모리 소모↑ 대기시간↓

profile
24시간은 부족한 게 맞다

0개의 댓글