개요 이번 편에서는 커넥션을 점유하고 반납하는 과정을 알아보자. 먼저, 개념을 설명한 뒤, 예시를 들어 디버깅을 해보기로 하자. 커넥션 점유(개념) connection.getConnection() -> HikariDataSource.getConnection() -> HikariPool.getConnection() -> ConcurrentBag.borrow() 1편에서 설명한 것처럼 커넥션을 점유하는 과정은 borrow() 메소드를 통해서 이루어지며, 크게 3가지 과정으로 구성된다. 먼저 threadList를 검사해서 해당 Thread가 커넥션 풀에 방문한 이력이 있는지 검사하고 이력이 있다면 SharedList 까지 보지 않고 빠르게 커넥션을 반환해 준다. (마치 캐시처럼) 물론 해당 커넥션이 NOT_I..