이 글은 인프런 김영한님의 강의를 복습하며 작성한 글입니다. DriverManager와 DataSource DriverManager 살펴보기 Connection conn = DriverManager.getConnection(ConnectionConst.URL, ConnectionConst.USERNAME, PASSWORD); DriverManager는 커넥션을 요청할 때 마다 생성해서 전달해준다. DriverManager를 통해 커넥션을 얻을 때마다 설정값을 전달해줘야한다. (URL / Username / Password) DataSource 살펴보기 DataSource는 각 DB마다 불러오는 커넥션을 얻는 방법이 다르다는 것에 착안해서, 커넥션을 얻는 방법을 추상화한 인터페이스다. 이 인터페이스는 Co..
이 글은 인프런 김영한님의 강의를 복습하며 작성한 글입니다. 커넥션을 얻는 방법의 추상화 앞서서 DB와 통신을 하는데 있어서 반드시 커넥션이 필요하다는 것을 확인했다. 그리고 그 커넥션을 얻기 위해 Driver Manager를 통해서 얻는 방법, 커넥션 풀을 통해서 얻는 방법이 있는 것도 확인했다. 그리고 커넥션 풀 인터페이스를 구현한 수많은 커넥션 풀 구현체들이 있다. 이 이야기를 하는 이유는 커넥션을 얻는 방법이 너무나 다양하다는 것이다. 커넥션을 얻는 방법이 여러가지이기 때문에 각 방법마다 커넥션을 얻기 위해 다른 코드가 요구된다. 이런 경우 내가 사용하고 있는 기술이 조금만 변경될 경우, 매번 코드를 수정해야 하는 일이 발생한다. 이것을 개선하기 위해 커넥션을 얻는 방법의 추상화가 필요하다. Da..
이 글은 인프런 김영한님의 강의를 복습하며 작성한 글입니다. Driver Manager와 DB 커넥션 DB에 접근하기 위해서는 반드시 DB 커넥션이 필요하다. 그런데 JDBC의 DB Driver를 이용하는 경우 매번 DB Connection을 맺고 끊어야 한다는 문제점이 있다. 그렇다면 DB Connection을 맺고 끊는 것이 어떻길래 문제가 있다는 것일까? DriverManager의 DB 커넥션 획득 순서 다음은 사용자 요청이 왔을 때, DB Connection을 가져오는 방법이다. 서비스 계층, 비즈니스 로직은 DB 드라이버를 통해 Connection을 조회함. DB 드라이버는 DB와 TCP/IP 커넥션을 연결한다. 이 과정에서 네트워크 연결을 위한 3 Way HandShaking 같은 네트워크 동..
이 글은 인프런 김영한님의 강의를 복습하며 작성한 글입니다. JDBC를 이용한 CRUD Repository 제작 이번 포스팅에서는 JDBC를 이용한 CRUD Repository를 제작하려고 한다. 앞선 포스팅에서 만들었던 "DBConnectionUtill"이라는 클래스를 이용해 Connection을 얻어와서 CRUD를 하는 Repository를 제작하고, 실제 테스트까지 처리를 한다. 첫번째, DB Table을 만든다. create table member( member_id varchar(10), money integer not null default 0, primary key(member_id) ) DB에 다음 테이블을 만들어준다. JPA와 다르게 DriverManager는 Table을 자동으로 DDL..
이 글은 인프런 김영한님의 강의를 복습하며 작성한 글입니다. 데이터베이스 연결하기 가장 초기에는 어플리케이션과 DB를 연결하기 위해 DriverManager를 사용했다고 한다. DriverManager는 기본적으로 JDBC 인터페이스를 구현한 구현체를 통해 Connection을 받아온다. DriverManager를 사용하기 위해 두 가지 코드를 작성하고자 한다. 전역 상수용 추상 클래스 생성 DB Connection 얻는 클래스 생성 with DriverManager 전역 상수용 추상 클래스 public abstract class ConnectionConst { // DB 정보 public static final String URL = "jdbc:h2:tcp://localhost/~/test"; publ..