1부 시작하기
1장. 돈 문제
__레드-그린-리팩터: TDD 구성 요소
__문제 인식
__첫 번째 실패하는 테스트
____Go
____자바스크립트
____파이썬
__그린으로 전환
____Go
____자바스크립트
____파이썬
__마무리하기
____Go
____자바스크립트
____파이썬
__변경 사항 반영하기
__중간 점검
____Go
____자바스크립트
____파이썬
2장. 다양한 통화로 돈 계산
__유로에 발 들이기
____Go
____자바스크립트
____파이썬
__DRY한 코드를 유지하라
____Go
____자바스크립트
____파이썬
__반복하지 말라고 하지 않았나?
__분할 정복
____Go
____자바스크립트
____파이썬
__마무리하기
____Go
____자바스크립트
____파이썬
__변경 사항 반영하기
__중간 점검
3장. Portfolio
__다음 테스트 설계하기
____Go
____자바스크립트
____파이썬
__변경 사항 반영하기
__중간 점검
2부 모듈화
4장. 관심사의 분리
__테스트 코드와 프로덕션 코드
____단방향 의존성
____의존성 주입
____패키징 및 배포
__모듈화
__의존성 제거
__중간 점검
5장. Go의 패키지 및 모듈
__코드를 패키지로 분리하기
__Go 모듈
__패키지 생성하기
__캡슐화
__테스트에서 중복 제거하기
__변경 사항 반영하기
__중간 점검
6장. 자바스크립트의 모듈
__코드를 모듈로 나누기
__자바스크립트 모듈로 넘어가기
____CommonJS
____비동기 모듈 정의
____유니버설 모듈 정의
____ESModules
__테스트 개선하기
____테스트에서 중복 제거하기
____테스트 클래스 및 테스트 메서드 추가하기
____자동으로 테스트를 찾고 실행하기
____테스트가 성공적으로 실행되면 출력 생성하기
____앞서 실행된 테스트가 어써션에
이 책에서 다루는 내용
도메인 복잡성을 제어하기 위한 테스트 주도 개발의 분할 정복 접근 방법 사용
언어, 테스팅 프레임워크, 도메인 개념을 아우르는 테스트 주도 개발 동작 방식 이해
테스트 주도 개발이 지속적 통합을 가능하게 하는 방식 학습
테스트 주도 개발을 바탕으로 리펙터링 및 재설계 지원
자바스크립트로 간단하고 효과적인 단위 테스트 하네스 작성 방법 학습
테스트 주도 개발 진행 중 만든 단위 테스트를 바탕으로 지속적 통합 환경 구축
테스트 주도 개발을 사용해 Go, 자바스크립트, 파이썬으로 깨끗하고, 깔끔한 코드 작성
이 책의 대상 독자
소프트웨어를 작성하는 개발자를 대상으로 한다.
‘개발자’에 어울리는 직함이 많다. 소프트웨어 엔지니어, 애플리케이션 아키텍트, 데브옵스 엔지니어, 자동화 테스트 엔지니어, 프로그래머, 해커, 코드 위스퍼러 등 직함은 셀 수도 없다. 개발자를 가리키는 직함은 인상적이거나 겸손하거나 유행을 타거나 근엄하거나 전통적이거나 현대적인 느낌이 있다. 다양한 직함 속 개발자들은 매일은 아니더라도 적어도 일주일의 어느 정도는 컴퓨터 앞에서 소스 코드를 읽고 쓰는 데 시간을 보낸다는 공통점이 있다. 그런 이유로 ‘개발자’라는 용어로 대상 독자를 특정했다.
코딩은 상상력을 동원할 수 있는 가장 자유롭고 평등한 활동이다. 이론적으로, 신체적 기량에서 ‘두뇌’만 있다면 필요한 모든 것이 준비된 셈이다. 나이, 성별, 국적, 출신 중 어느 것도 장애물이 돼서는 안 된다. 특히 신체적 장애는 장애물이 될 수 없다.
지은이의 말
우리는 말로 표현할 수 없을 만큼 운이 좋다. 우리는 수년간 테스트 주도 개발을 했다. 머큐리 우주 프로그램 코드를 작성한 개발자들이 펀치 카드로 테스트 주도 개발(Test-Driven Development, TDD을 실천한 지도 수십 년이 지났다(https://oreil.ly/pKpSZ. 테스트 주도 개발적용을 수월하게 하는 XUnit 라이브러리는 세기를 거슬러 올라