
정의
커넥션을 획득하는 방법을 추상화하는 인터페이스
목적 및 특징
목적
- JDBC API를 이용해 DB 구현체를 쉽게 바꿀수 있었던 것처럼 Driver Manager를 사용하다가 hikariCP 커넥션 풀로 변경한다거나, 커넥션 풀을 사용하다가 다른 커넥션 풀로 변경할 때, 커넥션을 획득하는 애플리케이션 코드를 함께 변경해야했다.
- 이런 문제를 해결하기 위해서 Java 표준인 javax.sql.DataSource라는 인터페이스를 제공합니다.
특징
- 이 인터페이스의 핵심 기능은 커넥션 조회다.(
getConnecion()
)
예시
장점
- 커넥션 조회 기능을 추상화함으로써
- Connection Pool 구현 기술을 변경하고 싶으면 해당 구현체로 갈아끼우기만 하면 된다.
- 설정과 사용의 분리
- 설정과 관련된 속성들은 한 곳에 모아둠으로써 향후 변경에 더 유연하게 대처할 수 있다.
- 설정은 신경쓰지 않고, DataSource의
getConnection()
만 호출해서 사용하면 된다.
단점
단점 극복 방법
비교군과의 차이
질문
- DataSource가 무엇인가요?
- DataSource의 목적은 무엇인가요?
- DataSource의 장점은 무엇인가요?
출처