[Clean Code] 8장 경계

Bam·2023년 9월 19일
0

책꽃이

목록 보기
8/8
post-thumbnail

소프트웨어 개발 과정에서 모든 부분을 개발하게 되는 경우는 드물다. 외부 API나 라이브러리, 패키지, 오픈 소스 등 다양한 도구들을 이용해서 개발을 한다. 이 경우 소프트웨어 간의 경계를 개발한 코드와 깔끔하게 통합시켜야한다.


외부 코드 사용하기

인터페이스의 제공자와 사용자 사이에는 긴장이 존재한다. 제공자는 적용성을 최대한 넒히려고하고 사용자는 자신의 요구에 집중되어있는 인터페이스를 원한다. 이러한 긴장때문에 시스템의 경계에서 문제가 발생하는 경우가 있다.


경계 살피고 익히기

외부 코드를 사용하면 프로그램 생산성이 좋아진다.

하지만 외부 코드를 익히거나 통합하는 것은 어렵고 두 개를 동시에 수행하는 것도 어렵다. 이때는 간단한 테스트 케이스를 통해 외부 코드를 익히는 것을 추천한다. 이 방식을 학습 테스트라고 부른다.

학습 테스트는 프로그램에서 사용하고자하는 방식으로 외부 코드(API 등)를 호출한다. 즉, 외부 코드를 사용 목적에 초점을 맞추는 것이다.


학습 테스트는 공짜 이상이다.

학습 테스트에 드는 비용은 없다. 어차피 API를 사용하기 위해서는 배워야하는 과정을 거쳐야하기 때문에 학습 테스트를 하더라도 부가 비용이 발생하지 않는다. 그리고 학습 테스트는 필요한 지식만을 학습하는 쉬운 방법이고 이해도를 높여주는 실험이기도 하다.

즉, 학습 테스트는 투자한 노력의 양보다 얻는 것이 더 많다.


깨끗한 경계

경계에 위치하는 코드는 깔끔하게 분리한다. 그리고 이에 대해 기대치를 정의하는 테스트 케이스도 작성한다.

외부 패키지를 호출하는 코드를 가능한 줄여 경계를 관리하자.

0개의 댓글