일반적으로 데이터를 영구적으로 저장하고 사용하기 위해 데이터베이스를 사용한다.
todo 예제에서 card 정보를 데이터베이스에 저장하고 사용하고 있다. 그런데 이번 todo-backend 예제에서는 직접 데이터베이스와 통신하는 코드를 작성하지 않았다. 데이터베이스와 연결, 쿼리 실행 및 결과 데이터 가져오기 와 같은 기본 작업은 어디서/어떻게 하고 있을까?
자바 애플리케이션에서 데이터베이스와의 연동을 위해 사용하는 기술을 알아보자
자바 프로그램이 데이터베이스와 연결되어 데이터를 주고받을 수 있게 해주는 인터페이스이다. (DriverClass, Connection, PreparedStatement, ResultSet)

백기선의 스프링 데이터 JPA 강좌 중
try(Connection connection = DriverManager.getConnection(url, username, password)) {
System.out.println("Connection created: " + connection);
//String sql = "CREATE TABLE card (id int, title varchar(255), assignee varchar(255), status varchar(255), priority int);";
String sql = "INSERT INTO card VALUES('study spring', 'son.lee', 'TODO', '1');";
try(PreparedStatement statement = connection.prepareStatement(sql)) {
statement.execute();
}
}
하지만 JDBC를 직접 사용하는 것은(예제) 아주 번거롭다. (드라이버 로딩, 커넥션 맺고 끊기, 데이터 가져오기, ResultSet 매핑)
JDBC를 직접 사용하면 아래의 불편한 점이 있다.
위 불편함을 개선하기 위해 JDBC 대신 도메인 모델을 사용할 수 있다.
Card card = new Card("study spring", "son.lee", "TODO", 1);
cardRepository.save(card);