0306
DBCP (Database Connection Pool)
• 미리 일정량의 DB 커넥션을 생성해서 풀에 저장해 두고 있다가 HTTP 요청에 따라
필요할 때 풀에서 커넥션을 가져다 사용하는 기법
• 참고로 스프링 부트 2.0 부터는 디폴트 커넥션 풀로 HikariCP 사용
커넥션 풀을 사용하는 이유는 프로그래밍을 하다보면 DB(DataBase)와 연결하여 사용하는
JDBC를 이용하는데 이 때 DB와 연동이 필요할 때마다 커넥션을 생성해서 사용을 하는 경우가 있다.
이 방식을 사용하게 되면 페이지를 실행할 때마다 커넥션을 생성하고 닫는 데 시간이 소모되기 때문에
동시 접속이 많은 웹 사이트에서는 전체 성능이 낮아진다.
위와 같은 이유로 커넥션 풀 기법을 사용한다.
즉, 커넥션 풀을 사용하여 데이터 베이스와 연결된 커넥션을 미리 만들어 두어서
풀에 저장해 두었다가 필요할 때, 풀에서 커넥션을 가져다 쓰고 다시 반환하여 커넥션을 생성하고
닫는데 소모되는 시간으로 인해 성능이 낮아지는것을 걱정하지 않아도 된다.

커넥션 풀 특징
- 풀 속에 미리 커넥션을 생성해두어서 필요시 커넥션을 생성하는데 드는 연결 시간을 단축한다.
- 커넥션을 재사용하기 때문에 생성되는 커넥션 수가 일정하게 유지된다.
- db 서버 환경이 바뀌는 경우 커넥션을 일일이 생성했던 페이지는 전부 그 서버 환경을 바꾸어야 한다.
하지만, 커넥션 풀을 사용한 경우에는 풀을 정의한 설정만 변경해주면 되므로 유지보수가 좋다.
4. 커넥션 개수는 적절하게 설정해야한다.
커넥션 풀 사용 시 유의 사항
• 커넥션의 사용 주체는 WAS 스레드이므로 커넥션 개수는 WAS 스레드 수와 함께 고 려해야 함
• 커넥션 수를 크게 설정하면 메모리 소모가 큰 대신 동시 접속자 수가 많아지더라도 사
용자 대기 시간이 상대적으로 줄어들게 되고, 반대로 커넥션 개수를 작게 설정하면 메
모리 소모는 적은 대신 그만큼 대기시간이 길어질 수 있음.
따라서 적정량의 커넥션 객체를 생성해 두어야 함

강의 내용과 커넥션 풀의 특징 왜 사용하는 것인지에 대해 더 자세하게 작성해보았다.
오늘 강의는 비록 짧았지만 커넥션 풀을 사용하는 이유나 특징을 검색해보며 왜 사용하는지 알게 되어
내일 실습이 더 재밌을꺼 같다.
#패스트캠퍼스 #패캠챌린지 #수강료0원챌린지 #직장인인강 #직장인자기계발
#패캠인강후기 #패스트캠퍼스후기 #환급챌린지 #오공완 #10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online.
* 필수 링크 : http://bit.ly/3Y34pE0