Spring/Spring Database
[Spring Database] Connection Pool과 Data Source
[Spring Database] Connection Pool과 Data Source
2022.08.31데이터베이스 커넥션을 획득할 때는 다음과 같은 과정을 거친다. 1. 애플리케이션 로직에서 데이터베이스 드라이버를 통해 획득 가능한 커넥션 조회 2. 데이터베이스 드라이버에서는 TCP/IP 커넥션을 연결한다. (3 way handshake 같은 네트워크 동작 사용) 3. 커넥션이 연결되면 데이터베이스에 ID, PW 및 부가정보를 전달한다. 4. 데이터베이스에서는 전달받은 정보를 바탕으로 내부 인증을 완료하고 데이터베이스 세션을 생성한다. 5. 데이터베이스에서 커넥션 생성이 완료됐다는 응답을 보내고, 데이터베이스 드라이버가 클라이언트에게 커넥션 객체를 반환한다. 이렇게 커넥션을 새로 만드는 작업은 과정도 복잡하고 시간도 많이 소모된다 -_-. 매번 TCP/IP 커넥션을 새로 생성하기 위해 리소스를 사용하고,..
[Spring Database] JDBC
[Spring Database] JDBC
2022.08.30Java DataBase Connectivity 의 약자로, 자바에서 데이터베이스에 접속할 수 있도록 도와주는 자바의 API이다. 클라이언트가 서버에게 데이터를 저장하거나 조회하려는 요청을 보내면 서버는 데이터베이스에 접근해 해당 요청을 실행한다. 잠시 과거의 데이터베이스 사용 방식에 대해 알아보자. 먼저 커넥션을 연결한다. (TCP / IP) 보통 JDBC드라이버와 데이터베이스간의 연결 시에는 TCP/IP 프로토콜을 사용한다. 그 후 서버는 데이터베이스가 이해할 수 있는 SQL을 연결된 커넥션을 통해 데이터베이스에 전달한다. 데이터베이스는 전달된 SQL을 실행하고, 결과를 서버에게 준다. 이후 서버는 응답 결과를 활용해 클라이언트의 요청을 수행한다. 각각의 데이터베이스마다 연결하는 방법과 SQL을 전달..