커넥션을 획득하는 과정
0. 요청,
1. DB드라이버(라이브러리)에서 커넥션을 찾음.
2. TCP/IP 방식으로 DB와 커넥션 연결. 이 때 3 way handshake과 같은 네트워크 연결을 위한 동작이 발생.
3. 커넥션이 완료된 DB에 DB드라이버가 db id, pw와 기타 부가 정보를 db에 전달.
4. db는 받은 id와 pw로 내부 인증을 완료하고(db 관리자의 id나 pw가 맞는지 등), db내부에서 세션 생성
5. DB는 커넥션 생성이 완료되었다고 응답.
6. DB드라이버는 커넥션 객체를 생성해서 반환.
이렇게 커넥션 한번 획득하는데 많은 과정을 거친다.
이거는 매번 이렇게 생성하고 버릴 게 아니라 생성 해놓고 유지시키는 게 좋다.
이렇게 미리 만들어 놓는 커넥션 풀은 서비스마다 다르지만 보통 기본값은 10개이다.
커넥션 풀은 개념도 단순해서 직접 만들어서 쓸 수도 있지만, 사용도 편리하고 성능도 좋은 커넥션 풀 라이브러리 들이 많다. 그걸 사용하자.
지금은 거의 HikariCP라는 라이브러리를 쓴다. 스프링 부트에서도 기본 커넥션 풀이다.
'스프링 > 5. 스프링 DB-1' 카테고리의 다른 글
10. DataSourceDriverManager (0) | 2023.09.28 |
---|---|
9. DataSource (0) | 2023.09.28 |
7. 수정, 삭제 (0) | 2023.09.28 |
6. 조회 (0) | 2023.09.27 |
5. JDBC 등록 (0) | 2023.09.27 |