08. 경계

외부 코드를 우리 코드로 깔끔하게 처리하는 기법을 살펴 본다

외부 코드 사용하기#

  • 외부 패키지는 범용성을 많이 생각하기 때문에 필요하지 않은 기능까지 있을 수 있다
  • 그래서 이를 Wrapper 클래스로 일부 필요하지 않는 기능을 제외할 수 있다
  • 항상 외부 API, 인터페이스에 대해 추상화 하라는건 아니고,
    • 리턴값이나 인수로 사용하면 의도치 않은 기능을 외부에서 많이 사용할 수 있으니 주의

경계를 살피고 익히기#

  • 학습테스트를 활용해 프로그램에서 의도한 방식으로 외부 API를 다뤄보며 학습할 수 있음
  • 외부 코드도 익히면서 프로그램에서 의도한 방식으로 통합 테스트까지 학습테스트로 할 수 있음
  • 학습 테스트가 아니더라도, 프로그램에서 의도한 방식으로 외부 인터페이스를 사용하는 테스트 케이스가 필요
  • 이런 경계 테스트는 패키지의 새 버전으로 이전하기 쉬워짐

아직 존재하지 않는 코드 사용#

  • 존재하지 않는 코드에 대해 정의가 명확해지면 interface를 명세화한 다음
    • Fake 클래스를 구현해서 진행한다
  • 이후 외부 API 가 존재하게 되면 Adapter 패턴을 활용해 인터페이스를 구현한다

깨끗한 경계#

  • 경계에 위치한 코드는, Wrapper 클래스나 Adapter 패턴을 이용해 분리하자
  • 해당 경계에 대한 프로그램 의도를 정의하는 테스트케이스도 작성
  • 외부 패키지를 호출하는 코드도 가능하면 줄여 경계를 관리하기 편하도록 하자
Last updated on