작성
·
370
0
강의를 보고 생각한 구조가 맞는지 궁금합니다.
데이터베이스를 연결하기 위해 추상화한 인터페이스 Connection, Statement, ResultSet가 있고 이 3가지는 데이터베이스 드라이버에서 구현을 하고 있습니다. 그리고 DriverManager가 드라이버를 사용해 커넥션을 얻어옵니다.
하지만 이렇게 매번 커넥션을 얻어오면 비용이 많으들어가서 커넥션풀이 생겨납니다. 그래서 커넥션 풀이 생겨났고 DataSource인터페이스가 생겨났고 각 커넥션풀은 이것을 구현합니다.
그러면 DataSource에서는 DriverManager를 이용해 커넥션을 얻어오는것이고 Connection, Statement, ResultSet는 데이터베이스 구현체 드라이버에서 구현하는게 맞을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
강의를 보고 생각한 구조가 맞는지에 대해 설명해드릴게요.
데이터베이스 연결을 위해 추상화된 인터페이스로 Connection, Statement, ResultSet이 있습니다. 이 인터페이스들은 데이터베이스 드라이버에서 구현되어야 합니다. DriverManager는 이 드라이버를 사용하여 커넥션을 얻어옵니다.
일반적으로 매번 커넥션을 얻어오는 것은 비용이 매우 많이 소요됩니다. 따라서 커넥션 풀이 등장하게 됐습니다. 커넥션 풀은 DataSource 인터페이스를 구현하고 있습니다. DataSource에서는 DriverManager를 이용하여 커넥션을 얻어오게 됩니다.
Connection, Statement, ResultSet은 데이터베이스 구현체인 드라이버에서 구현되어야 합니다. 따라서 말씀하신 것처럼 Connection, Statement, ResultSet는 데이터베이스 구현체인 드라이버에서 구현되는 것이 맞습니다.
이렇게 커넥션 풀과 데이터베이스 드라이버의 역할을 이해하셨다면, 구조에 대한 생각이 맞게 되었을 거라고 생각합니다.
추가로 궁금한 사항이 있으시다면 댓글로 알려주세요. 좋은 하루 되세요!