728x90
반응형
DBCP
DataBase Connection Pool의 약자로, 데이터베이스와 Connection을 맺고 있는 객체를 관리하는 역할을 수행한다.
JDBC
Java DataBase Connection의 약자로, Java에서 데이터베이스에 연결하기 위한 인터페이스이다.
Oracle, MySQL 등 데이터베이스들은 JDBC를 사용하기 위한 각각의 Driver를 제공한다. JDBC는 이 Driver를 통해 DB에 접속한다.
JDBC만 있어도 DB에 접속이 가능한데, 왜 DBCP를 쓸까?
만약, JDBC만을 사용해서 DB에 접속하면 아래와 같은 순서가 반복하게 된다.
1. DB접속을 위한 Driver 로드
2. getConnection Method로 부터 DB커넥션 객체를 얻음
3. Query수행을 위한 PreparedStatement 객체 생성
4. excuteQuery를 실행하여 결과를 받아온다.
이는 매번 DB에 연결할 때마다 Driver를 로드하고, Connection 객체를 얻어야 하므로 비효율적이다.
이 부분을 효율적으로 처리하도록 바꾸는 것이 DBCP의 역할이다.
DBCP는 WAS실행 시 미리 일정량의 DB Connection 객체를 미리 생성하고 Pool이라는 공간에 저장해둔다.
그리고, DB연결 요청이 있으면, 이 Pool이라는 공간에서 Connection 객체를 가져다 쓰고 반환하게 된다.
즉, DBCP는 DB와 미리 연결된 Connection을 Pool에 저장해두었다가, 요청이 오면 Connection을 빌려주고, 볼일이 끝나면 다시 반납받는다.
728x90
반응형
'⚙️Backend > Spring' 카테고리의 다른 글
[Spring] Paging + PageMaker 알고리즘 (2) | 2020.06.22 |
---|---|
[Spring] Filter + AOP + Interceptor : Interceptor (0) | 2020.06.08 |
[Spring] Login 기능 및 기타 어노테이션 (0) | 2020.06.08 |
[Spring] Filter + AOP + Interceptor : AOP (0) | 2020.06.06 |
[Spring] Filter + AOP + Interceptor : Filter (2) | 2020.06.06 |