스터디/클린코드(Clean Code)

[스터디] 클린코드 8장 (2022년 7월 13일)

눙엉 2022. 7. 13. 23:53

8장의 제목은 경계이다. 

경계란 외부 코드를 내 코드에서 호출하는 부분을 뜻한다.

이번 장은 외부 코드를 어떻게 내 코드에 녹일 것인지에 대해 중점을 두고 보면 될 것 같다.

 

경계 살피고 익히기

외부 코드를 사용하면 적은 시간에 더 많은 기능을 출시하기 쉬워진다.

외부 패키지 테스트는 우리 책임은 아니지만 우리가 사용할 코드를 테스트하는 편이 바람직하다.

 

개발을 하며 직접 만들어서 사용하기도 하지만 라이브러리 같은 외부 코드를 사용하면 많은 시간을 절약할 수 있다.

하지만 무조건적으로 라이브러리를 사용하지말고 잘 비교해보고 사용해야 한다.

 

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

학습 테스트란 기능 구현을 위한 테스트라기 보다 어떻게 동작하는지를 검증하기 위한 테스트이다.

학습 테스트에 드는 비용은 없다. 오히려 필요한 지식만 확보하는 손쉬운 방법이다.

패키지 새 버전이 생겼을 때 만들어둔 학습 테스트를 통해서 호환성을 검사할 수 있다.

 

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

adapter 패턴으로 API 사용을 캡슐화해 API가 바뀔 때 수정할 코드를 한 곳으로 모았다.

 

adapter패턴에 대해 구글링을 해보니 예시로 가전제품에 사용하는 돼지코라고 불리는 멀티 플러그 생각하면 된다고 했다.

각 나라마다 사용되는 전압과 주파수가 다르지만 그 중간에서 서로 맞춰주는 역할이라고 생각하면 되겠다.

 

어떤 API를 가져오더라도 나의 코드에 맞게 adapter만 교체하면 사용할 수 있어서 좋은 것 같다.

 

 

 

깨끗한 경계

통제하지 못하는 코드를 사용할 때는 너무 많은 투자를 하거나 향후 변경 비용이 지나치게 커지지 않도록 각별히 주의해야 한다.

통제가 불가능한 외부 패키지에 의존하는 대신 통제 가능한 우리 코드에 의존하는 편이 훨씬 좋다.