Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원/플러스 알파

[ Mybatis ] - 커넥션 풀 Connection pool

giggs 2022. 9. 3. 09:38

 

커넥션 풀이란? 

 

 

지금까지 우리는 db에 접속할 일이 있을 때마다

java에서 db쪽으로 접속해서 새로운 커넥션을 얻어왔었다.

 

 

커넥션을 새로 얻는다는 것은

==  매번 들어오는 요청마다 새로운 프로세스를 실행하는 것이다.

이렇게 된다면 자원 소비가 너무 크다.

 

왜?

 

java와 DB 둘 사이의 거리가 너무 멀다. -

java를 실행하는 컴퓨터와 db를 실행하는 컴퓨터가

물리적으로도 멀리 있기에.( 서버룸에서 db 관리 )

 

 

 

 

 

 

그래서 매번 들어오는 요청마다 / 작업마다

커넥션을 생성하지 않게 해 주기 위해 등장한 것이

 

"커넥션 풀"

 

요청마다 커넥션 얻고 / 커넥션 얻고 하는 것이 아닌

애초에  java쪽에서 시작할 때부터connection을 여러 개 들고 있는 것!

 

 

어떻게 들고 있냐면 

먼저 들어온 게 먼저 나가는queue에 담겨 있을 것이다.

 

 

 

 

 

이렇게 여러 개의 커넥션을 미리 담아놓은 공간을

 

" 커넥션 풀 "

 

이라고 한다.!

 

커넥션을 꺼내가서 다 사용하고 나면

없어지는 것이 아니라

다시 반납한다!

 

 

 

 

 

클라이언트 요청이 오면 connection을 빌려주고,

처리가 끝나면 다시 connection을 반납받아 pool에 저장하는 방식