# 비디오 변환을 처리하면 변환된 결과 비디오 파일과 썸네일 파일이 생성되는데, 그 파일을 작업 요청자가 지정한 위치에 저장해야한다.
이 위치는 FTP가 될 수도 있고, HTTP 파일 업로드가 될수도 있고, 단순히 로컬 파일 시스템이 될 수 도있다. 일단, 구현의 상세함은 뒤로 미루고 결과 파일이 보관 될 위치를 추상화 인터페이스를 생성한다.
# 비디오 변환을 처리하면 변환된 결과 비디오 파일과 썸네일 파일이 생성되는데, 그 파일을 작업 요청자가 지정한 위치에 저장해야한다.
이 위치는 FTP가 될 수도 있고, HTTP 파일 업로드가 될수도 있고, 단순히 로컬 파일 시스템이 될 수 도있다. 일단, 구현의 상세함은 뒤로 미루고 결과 파일이 보관 될 위치를 추상화 인터페이스를 생성한다.
# Job 생성자에 DestinationStorage 객체를 추가하고 Mock을 이용해서 DestinationStorage 객체 할당은 한다.
# 목적지를 알고 있는 것은 DestinationStorage이므로, Job이 DestinationStorage에 파일을 저장해 달라고 요청하도록 코드를 수정하고 CreatedFileSender가 필요 없어짐.
# createdFileSender를 사용했던 모든 부분을 DestinationStorage로 변경
# save() 메서드를 추가한다.
# 이제 필요 없어진 코드가 있다. 바로 CreatedFileSender이다. 이제 이 타입을 사용하는 코드를 모두 과감하게 삭제한다. (주석으로 막아서 테스트를 싱행하고 통과되면 지우는 방법을 점진적으로 삭제한다.)
# transcode() 메서드 내부에 구조적 반복 해결
# verifyOtion이 검증과 관련된 정보를 갖고 있으니, VerifyOption을 단순 데이터 구조가 아닌 기능을 제공하는 객체 생성
# 이름이 마음에 안들어 이름을 변경.
VerifyOption은 더 이상 단순 옵션이 아니다. 실제 검증을 수행하는 역할을 갖게 되었으므로, CollaborationVerifier와 같이 역할에 맞는 이름을 부여한다.
# CollaborationVerifier 접근자 public -> private으로 변경
Merge remote-tracking branch 'origin/master'