본문 바로가기
북스터디/클린코드

08장 - 경계

by 혀닙 2025. 5. 29.
📘 클린 코드 북스터디 정리입니다

📚 도서: 로버트 C. 마틴 《Clean Code》
🧑‍💻 목적: 좋은 코드에 대한 감각과 습관을 익히기 위해
🗓️ 진행 기간: 2025년 5월 ~ 매주 2장

📖 [08장] 경계


✅ 핵심 요약 (Key Takeaways)

이 장의 핵심 문장:

경계에 위치한 코드는 명확히 분리해야 한다

저자가 전달하고자 하는 메시지 요약:

  • 구현 변경 시 다양한 선택지를 확보하기 위해 경계를 명확히 유지할 필요가 있음
  • 깨끗한 경계란 내부 코드와 외부 라이브러리의 책임을 분리하고, 서로 영향을 최소화하는 구조
  • 이를 위해 추상화(Interface), 감싸기(Wrapping), 어댑터(Adapter) 패턴 등을 활용
  • 모르는 외부 라이브러리는 테스트 코드로 탐색하며 이해

💡 내용 정리

1. 외부 코드 사용하기

  • 제공자: 범용성 강조 / 사용자: 요구사항에 집중
  • 경계 인터페이스는 외부로 노출되지 않도록 관리
  • 공개 API의 인수나 반환값으로 직접 사용 ❌

2. 경계 테스트 (학습 테스트)

  • 외부 API를 이해하기 위한 테스트 코드 작성
  • 통합 전후에도 새로운 위험 요소 탐색 가능
  • 패키지 버전 업 시 문제를 빠르게 발견할 수 있음

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

  1. 기능 정의
  2. 인터페이스 설계 → 가독성 및 코드 의도 명확화
  3. 어댑터 패턴 → 변경 시 영향 최소화
  4. 테스트

4. 깨끗한 경계

  • 설계가 잘 되어 있다면 변경 비용 최소화 가능
  • 외부 API 호출은 Wrapping/Adapter로 분리
  • 아직 모르는 라이브러리는 기대치를 정의한 테스트로 경계 탐색

💬 인상 깊었던 문장 & 인사이트

인상 깊었던 문장

이쪽 코드를 진행하고자 우리는 자체적으로 인터페이스를 정의했다.

왜 인상 깊었는가

그간 프로젝트에서 외부 코드의 지연을 핑계 삼아

내부 구현을 미룬 경험이 얼마나 많았던가!


하지만 그건 결국 핑곗거리에 지나지 않았다는 것을

단번에 느낄 수 있게 해준 문장이었다.


외부 코드가 아직 정의되지 않았더라도,

인터페이스를 통한 추상화부터 진행할 수 있다.



🛠 실무 적용 아이디어 (To Action)

나의 코드에서 개선해볼 부분은?

  • 아직 구체화되지 않은 외부 요소는 인터페이스로 추상화

오늘부터 실천해볼 작고 구체적인 실천

  • 인터페이스를 통한 설계 시작
  • 외부 시스템 부재로 내부 구현을 미루지 않기
  • Wrapping / Adapter 패턴 도입하여 경계 책임 분리

'북스터디 > 클린코드' 카테고리의 다른 글

09장 - 단위 테스트  (1) 2025.06.03
07장 - 오류 처리  (0) 2025.05.26
06장 - 객체와 자료 구조  (0) 2025.05.21
05장 - 형식 맞추기  (1) 2025.05.20
04장 주석(Comments)  (1) 2025.05.18

댓글