요르딩딩

[DB] Data Base Connection Pool (커넥션 풀) 본문

[Web]/[DB & Mybatis]

[DB] Data Base Connection Pool (커넥션 풀)

요르딩딩 2021. 8. 20. 16:32
728x90
반응형

이번시간에는 웹개발을 하며 Spring에서 주로 사용하는 DB Connection Pool에 대해서 알아보겠습니다.

 

Java에서는 DataSource인터페이스를 통해 Connection Pool을 사용합니다.

 

Connection Pool이란

WAS(web application server)가 실행될때 DB연결을 위해  Pool안에 미리 일정 갯수의 connection객체를 만들어두고, 

사용자가 DB연결 요청을하면 Pool에서 생성한 connection 객체를 넘겨주고, 사용이 끝나면 반환받아 보관하는 기법입니다.

 

아래그림은 Connection pool의 동작과정입니다.

Connection Pool 사용의 장점

1. 서버의 부하를 줄여줍니다.

   Java에서 DB Connection할때 부하가 많이 걸리는 작업이라 한번에 많은 DB Connection을 요구하면 최악의 경우 서버가 다운될 수 도 있습니다. 그렇기 때문에 미리 Connection을 생성하고 재사용하기 위해 사용합니다.

 

2. 서브의 한정적인 자원을 효율적으로 사용가능합니다.

  서브는 한정적인 자원을 가지고 있는데, 요청시 무한대로 Connection을 생성한다면 성능에 문제가 생길 수 있습니다. 그렇기 때문에 Connection Pool에 미리 일정한 숫자의 Connection을 생성해서 관리합니다.

 

Java에서 커넥션 풀 설정

Java에서는 DataSource 인터페이스를 통해 커넥션 풀을 사용합니다.

 

참고 :  https://programmer93.tistory.com/74

 

커넥션 풀(Connection pool)이란?

커넥션 풀(Connection Pool)이란? WAS(웹 컨테이너)가 실행 될 때 DB연결을 위해 미리 일정수의 connection 객체를 만들어 Pool에 담아 뒀다가 사용자의 요청이 발생하면 Pool에서 생성되어 있는 Connection 객

programmer93.tistory.com

 

+추가)

DB접속정보를 잘못입력하면 connection할때 error가 발생합니다.

정확하지는 않지만 테스트를 해보니 connection pool이 처음 생성되는 시기는 첫 DB연결 요청을 할때 인거 같습니다.

이유는 잘못된 DB접속정보를 사용하여 WAS를 올려도 정상적으로 was는 올라가지만, DB에 요청을 하면 그때서야  접속오류가 발생하기 때문입니다.

728x90
반응형

'[Web] > [DB & Mybatis]' 카테고리의 다른 글

1:N 일때 JOIN 알아보기 (inner, left, right, outer )  (0) 2021.10.28
Jsonb 타입 사용  (0) 2021.10.01
[DB] 옵티마이저 (Optimizer)  (0) 2021.06.23
[DB] mybatis trim  (0) 2021.06.10
[DB] 쿼리 최적화  (0) 2021.05.28
Comments