# 안정적으로 Job의 상태를 보관하기 위해서 JobRepository DB 구현체를 만들어 보겠다.
DB 구현체를 테스트 하려면 DB연동이 필요하다. DB를 따로 설치하고 준비하면 최초 개발에 시간이 걸리니 일단 메모리 DB인 HSQL을 사용해 테스트를 진행했다.
# @Configuration을 이용해 DataSource를 가져오는 객체 구현
# DataSource를 제대로 가져올 수 있는지 테스트 코드 작성
# class 접근제어 변경
# 다른 Config 클래스에서 빈객체를 가져 올  수 있는지 검증 로직 추가
# DomainConfig 객체 추가
# DomainConfig Bean 객체 등록
# 오타로 인한 이름 변경
# Config 클래스 생성
# JPA를 이용해 JobRepository를 구현할 것이다.
JpaJobRepository클래스를 테스트 하려면 사실상 DB 연동 등 많은 부분이 필요하기 때문에 스프링이 제공하는 테스트 지원 기능을 사용할 것이다. 아직은 도메인 데이터 구조를 표현한 JobData는 작성하지 않았다.
# 테스트 순서가 잘못됐다.
우선 findById() 를 먼저 작성하고 save()를 진행해야 됐는데 참고하고 있는 소스에서는 먼저 save() 메서드를 작성해 약간의 혼동이 생겼다.
이부분은 꼭 기억하자 !!! findById()를 먼저 구현하자.
# 메모리 디비에 저장되어 있는 Job 데이터가 존재하는지 여부를 검사하는 테스트 코드 작성
# 테스트를 진행하기 위해서(JpaJobRepositoryIntTest#findById) 임시 데이터 추가
# 테스트를 진행하기 위해서(JpaJobRepositoryIntTest#findById) 임시 데이터 추가
# Job데이터를 생성하기 위해 factory 객체를 JpaJobRepository 생성자에 추가한다.
# 생성자를 통해서 받은 의존 객체와 디비에서 조회해온 job 데이터 정보를 이용해 Job 객체를 생성한다.
추가적으로 JobImpl 클래스에서 Job객체를 생성하도록 위임
# JpaConfig 작성
- setPersistenceUnitName은 META-INF에 저장된 persistence.xml에 등록되어 있다.
# Job 객체를 가져오는 클래스를 JobImpl에 위임
# 우선 findById() 메서드만 성공하도록 구현함.
# persistence.xml을 작성한다.