TIL (Today I Learned)
2022.05.13
오늘 읽은 범위
8장. 경계
Map은 굉장히 다양한 인터페이스로 수많은 기능을 제공한다. (p.144)
(..) Map 클래스를 사용할 때마다 위와 같이 캡슐화하라는 소리가 아니다. Map과 같은경계 인터페이스를 이용할 때는 이를 이용하는 클래스나 클래스 계열 밖으로 노출되지 않도록 주의한다.
경계 살피고 익히기 (p.146)
우리가 사용할 코드를 테스트하는 편이 바람직하다.
학습테스트 (p.147)
: 우리쪽 코드를 작성해 외부 코드를 호출하는 대신 먼저 간단한 테스트 케이스를 작성해 외부 코드를 익히는 방법. (외부코드;사용라이브러리 코드)
학습 테스트는 패키지가 예상대로 도는지 검증한다. (..) 패키지가 우리 코드와 호환되리라는 보장은 없다. (..) 새 버전이 우리 코드와 호환되지 않으면 학습 테스트가 이 사실을 곧바로 밝혀낸다. (..) 실제 코드와 동일한 방식으로 인터페이스를 사용하는 테스트 케이스가 필요하다. (p.149-150)
아직 존재하지 않는 코드를 사용하기 (p.150)
: 아는 코드와 모르는 코드를 분리하는 경계다. (..) 저쪽 팀이 아직 API를 설계하지 않았으므로 구체적인 방법은 몰랐다. (aka.모르는 코드)
깨끗한 경계 (p.152)
경계에 위치하는 코드는 깔끔히 분리한다. 또한 기대치를 정의하는 테스트 케
이스도 작성한다. 이쪽 코드에서 외부 패키지를 세세하게 알아야 할 필요가 없
다. 통제가 불가능한 외부 패키지에 의존하는 대신 통제가 가능한 우리 코드에
의존하는 편이 훨씬 좋다.
학습테스트 (p.147)
: 우리쪽 코드를 작성해 외부 코드를 호출하는 대신 먼저 간단한 테스트 케이스를 작성해 외부 코드를 익히는 방법. (외부코드; 사용라이브러리 코드)
ADAPTER 패턴