- 인터페이스 제공자와 사용자는 상충되는 목적으로 인터페이스를 제공/사용한다
- 제공자는 포괄적으로 인터페이스를 제공한다
- 사용자는 더 closed된 형태의 인터페이스를 원한다
- 외부 코드에서 제공하는 경계형 인터페이스를 여기저기 넘기면 안된다
- 사용자에게 목적에 반하는 메소드도 제공할 수 있다
- 인터페이스가 바뀜에 따라 수정할 코드가 늘어난다
→ 감싸기 메서드/클래스로 외부에 노출시키지 않는 방법이 있다
- 테스트 케이스를 작성해서 외부 코드를 먼저 익히자(학습 테스트)
- 학습 테스트는 이해도를 높여주는 정확한 실험이다
- 통합 이후에도 재사용 할 수 있다
- 아는 코드와 모르는 코드를 분리하자
- 위 코드는 학습테스트를 하지 않고 사용하여 createFile의 googleDriveService가 nullpointer 오류를 발생시켰다.
- 원인은 handleSignInResult에서 실패에 대한 처리를 해주지 않았던 것이였다.