이정우
8. 📌 경계
✅ 요약하기
각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다.
- 외부 코드 사용하기
- 인터페이스 제공자
- 더 많은 고객을 얻기 위해 가용성과 적용성을 높인다.
- 인터페이스 사용자
- 자신의 요구에 집중하는 인터페이스를 바란다.
- 이러한 긴장으로 시스템 경계에서 문제 발생 소지가 많다.
- 경계 살피고 익히기
- 외부 코드 사용시 적은 시간에 더 많은 기능 출시가 쉬워진다. 테스트가 필수와 책임은 아니지만 하는 편이 바람직하다.
- 타사 라이브러리 사용시 사용법이 분명치 않다고 가정.
- 하루이틀 문서 읽으며 사용법 결정
- 이후 자사 코드를 작성해 정상 동작 여부를 확인
- 버그 위치와 원인 확인에 오랜 디버깅으로 어려움을 겪는다.
- 학습테스트
- 자사 코드를 작성해 외부 코드를 호출하는 대신 먼저 간단한 테스트케이스를 작성하고 외부 코드를 익히는 방법
- 학습 테스트는 공짜 이상이다.
- 비용 소비 없이 이해도를 높여주는 정확한 실험이다.
- 패키지의 새 버전 출시에 패키지가 예상대로 돌아가는지 검증한다.
- 새 버전이 우리의 코드와 호환되지 않으면 곧바로 밝혀낸다.
- 학습 테스트 여부와 무관하게 실제 코드와 같은 방식으로 인터페이스를 사용하는 테스트 케이스가 필요하다.
- 학습 테스트가 있다면 새 버전의 패키지로의 이전이 쉬워진다.
- 아직 존재하지 않는 코드를 사용하기.
- 아는 코드와 모르는 코드를 분리하는 경계
- 경계를 기준으로 능력, 존재의 여부 등으로 알 수 없는 경우가 있다.
- 원하는 인터페이스의 사전 구현은 인터페이스의 전적인 통제를 가능케 한다.
- 깨끗한 경계
- 경계에 위치하는 코드는 깔끔히 분리해야 한다.
- 기대치를 정의하는 테스트케이스 작성
- 외부 패키지 호출 코드를 줄여 경계 관리
- 새로운 클래스로 경계를 감싼다.
- ADAPTER 패턴을 사용해 원하는 인터페이스를 패키지가 제공하는 인터페이스로 변환
- 어떠한 방식이든 코드 가독성, 경계 인터페이스 사용하는 일관성이 높아지고 외부 패키지의 변화시 변경할 코드가 줄어든다.
2. 🤔 이해가 어려운 부분
🔍 질문하기
책을 읽으며 이해하기 어려웠던 개념이나 명확하지 않았던 내용을 정리합니다.
- 개념 또는 원칙의 이름
- 어려웠던 부분
ADAPTER 패턴은 처음 봤습니다.
- 어려웠던 부분
- 개념 또는 원칙의 이름
- 어려웠던 부분
. - 궁금한 점
.
- 어려웠던 부분
- 개념 또는 원칙의 이름
- 어려웠던 부분
. - 궁금한 점
.
- 어려웠던 부분
3. 📚 참고 사항
📢 논의하기
관련된 자료가 있다면 공유하고, 더 깊이 논의하고 싶은 아이디어나 의견을 정리합니다.
- 관련 자료 공유
- 추가 자료
관련 블로그 글이나 공식 문서 링크를 제공합니다.
- 추가 자료
- 논의하고 싶은 주제
- 주제
논의하고 싶은 내용을 간략히 정리합니다. - 설명
논의하고 싶은 이유를 작성합니다.
- 주제