커넥션풀이 필요한 이유
WAS는 사용자의 요청에 DB에서 필요한 데이터를 얻게된다. 이 과정에서 DB에 대한 커넥션을 연결해야 하는데 이는 시간이 오래걸리는 무거운 작업이다. 그렇기 때문에 이 커넥션 풀을 사용하게 된다.
DB가 커넥션을 얻는 과정
- 애플리케이션 로직은 DB 드라이버를 통해 커넥션 조회
- DB 서버와 TCP/IP 연결(3way handshake)
- DB에 ID/PWD 전달
- 인증 후 DB 세션 생성
- 커넥션 객체 반환
풀 이란?
객체를 보관하는 장소. 한번 생성된 객체 인스턴스를 필요할 때 꺼내 쓰고 사용 후 반환하는 기술.
장점
- 미리 생성해 놓은 커넥션을 재활용 하기에 복잡한 커넥션을 얻는 과정을 애플리케이션이 시작할 당시에 한번만 수행하면 된다
- DB에 무한정 연결이 생성되는 것을 막아주어 DB를 보호하는 효과
단점
- 여러 쓰레드가 사용하는 공유 객체(크리티컬 섹션)이므로 보호해줄 필요가 있다
'Study > Server' 카테고리의 다른 글
[Server] DDD(Domain-Driven Design) 도메인 주도 설계 (0) | 2022.07.15 |
---|---|
[Server] Go Web Server HTTPS 적용하기 (0) | 2022.06.07 |
[Server] OAuth 알고 쓰기 (0) | 2022.06.02 |
[Server] 인증(Authentication)과 인가(Authorization), 그리고 JWT(JSON Web Token) (0) | 2022.05.01 |
[Network] HTTP란? 그리고 HTTP 1.1, HTTP 2 (0) | 2021.09.02 |