📘 클린 코드 북스터디 정리입니다
📚 도서: 로버트 C. 마틴 《Clean Code》
🧑💻 목적: 좋은 코드에 대한 감각과 습관을 익히기 위해
🗓️ 진행 기간: 2025년 5월 ~ 매주 2장
📚 도서: 로버트 C. 마틴 《Clean Code》
🧑💻 목적: 좋은 코드에 대한 감각과 습관을 익히기 위해
🗓️ 진행 기간: 2025년 5월 ~ 매주 2장
📖 [08장] 경계
✅ 핵심 요약 (Key Takeaways)
이 장의 핵심 문장:
경계에 위치한 코드는 명확히 분리해야 한다
저자가 전달하고자 하는 메시지 요약:
- 구현 변경 시 다양한 선택지를 확보하기 위해 경계를 명확히 유지할 필요가 있음
- 깨끗한 경계란 내부 코드와 외부 라이브러리의 책임을 분리하고, 서로 영향을 최소화하는 구조
- 이를 위해 추상화(Interface), 감싸기(Wrapping), 어댑터(Adapter) 패턴 등을 활용
- 모르는 외부 라이브러리는 테스트 코드로 탐색하며 이해
💡 내용 정리
1. 외부 코드 사용하기
- 제공자: 범용성 강조 / 사용자: 요구사항에 집중
- 경계 인터페이스는 외부로 노출되지 않도록 관리
- 공개 API의 인수나 반환값으로 직접 사용 ❌
2. 경계 테스트 (학습 테스트)
- 외부 API를 이해하기 위한 테스트 코드 작성
- 통합 전후에도 새로운 위험 요소 탐색 가능
- 패키지 버전 업 시 문제를 빠르게 발견할 수 있음
3. 아직 존재하지 않는 코드 사용하기
- 기능 정의
- 인터페이스 설계 → 가독성 및 코드 의도 명확화
- 어댑터 패턴 → 변경 시 영향 최소화
- 테스트
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 |
댓글