결론 먼저 말하자면 여러가지 Connection 방법들의 인터페이스(부모)이다!
아래 두 그림처럼 Connection을 얻어오는 방식으로 DriverManager 방식을 쓰다가, 커넥션 풀을 사용하는 방법으로 변경하려면 커넥션을 획득하는 코드들도 모두 변경해야 할 것이다!

그렇다면 WAS는 connection을 얻어오는 방식 각각의 코드들을 알 필요가 있을까? 라는 의문점이 들 것이다. 역시 자바의 방식대로 인터페이스를 제공하는 방식으로 해결한다!
바로 “javax.sql.DataSource” 라는 인터페이스를 제공한다.
DataSource 는 커넥션을 획득하는 방법을 추상화하는 인터페이스이다.
그렇다. 자바나 스프링은 이렇게 갈아끼우기 쉬우라고 인터페이스를 제공하는 방식으로 많이 도와준다.
참고로 DriverManager는 DataSource 인터페이스를 쓰지 않기 때문에 DriverManagerDataSource를 제공한다.

결론은 이제 WAS는 DataSource 인터페이스만 알고 그곳으로만 Connection을 얻으면 된다!
아래는 DriverManager를 통해서 connection을 얻은 로직이다.
     @Test
    void dataSourceDriverManager() throws SQLException {
        //DriverManagerDataSource - 항상 새로운 커넥션을 획득
        DriverManagerDataSource dataSource = new DriverManagerDataSource(URL, USERNAME, PASSWORD);
        useDataSource(dataSource);
    }