강의를 보고 생각한 구조가 맞는지 궁금합니다.
442
작성한 질문수 30
강의를 보고 생각한 구조가 맞는지 궁금합니다.
데이터베이스를 연결하기 위해 추상화한 인터페이스 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는 데이터베이스 구현체인 드라이버에서 구현되는 것이 맞습니다.
이렇게 커넥션 풀과 데이터베이스 드라이버의 역할을 이해하셨다면, 구조에 대한 생각이 맞게 되었을 거라고 생각합니다.
추가로 궁금한 사항이 있으시다면 댓글로 알려주세요. 좋은 하루 되세요!
spring initialiser 어떤걸 선택해야될지 모르겠어요
0
38
2
트랜잭션 템플릿이 체크예외는 커밋하는 이유가 궁금합니다.
0
51
1
jdbc 학습하다 궁금해서 질문드려요
0
85
1
정상이체와 이체중 예외발생 차이
0
70
2
이번 강의부터가 JDBC 직접 사용 맞나요?
0
89
1
순수한 서비스 계층에 대한 의문???
0
83
2
3_4test, 4test 자동 리소스 안됨
0
59
2
데이터베이스 선택 관련 질문.
0
71
2
after 메서드 사용 유무
0
60
2
데이터베이스 접근 및 DB 락
0
57
1
@SpingBootTest, @TestConfiguration
0
57
1
Read Committed 격리 수준 사용 관련 질문
0
51
1
AopCheck Test 부분의 EnhancerBySpring 확인 법??
0
69
2
커리큘럼 관련 질문
0
78
1
서비서 계층 스프링 프레임워크 사용
0
89
1
validation(toMember)의 위치
0
84
2
데이터 계층에서 서비스 로직의 datasource를 인식하는 방법
0
166
2
member 상수 질문
0
124
2
ctrl + F6 이후로 con 인식이 안 됩니다
0
154
2
DrivenManager 와 Connection 반환에 대한 질문입니다!
0
110
1
섹션5 트랜잭션 템플릿관련 질문(이기종 DB)
0
116
1
세션1 테이블 조회결과 그림은 Redo 로그에 속하나요?
0
103
1
트랜잭션이 필요하지 않은 경우 DB 대신 파일 시스템을 사용하는 것이 더 효율적인가?
0
98
1
강의 14분쯤 Exception 질문
0
116
2





