반환값과 검사 예외가 필요한지가 작업 인터페이스를 결정한다.
run은 값을 반환하지 않는다.
call이 T를 반환한다.
Future<?>로 완료를 확인한다.
Future<T>로 타입 결과를 받는다.
핵심: 결과를 사용하지 않아도 실패를 어디에서 관찰할지 정해야 한다.