테스트 주도 개발 입문

깔끔한 코드 작성을 위한 폴리글랏 안내서
$36.23
SKU
9791161758534
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Fri 12/6 - Thu 12/12 (주문일로부 10-14 영업일)

Express Shipping estimated by Tue 12/3 - Thu 12/5 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2024/06/28
Pages/Weight/Size 188*235*15mm
ISBN 9791161758534
Categories IT 모바일 > 컴퓨터 공학
Description
단위 테스트 코드 작성을 기본으로 하는 테스트 주도 개발 방식은 소프트웨어가 테스트 가능한(Testable) 구조를 갖도록 강제하며, 이로 인해 보다 간단하면서도 구조화된 설계로 이끌 뿐만 아니라 코드에 대한 신뢰를 높일 수 있는 효과적인 방법이다. 이 책에서는 Go, 자바스크립트, 파이썬의 세 가지 프로그래밍 언어로 테스트 주도 개발을 실천하는 실용적 방법을 제공한다. 켄트 벡(Kent Beck)의 저서 『테스트 주도 개발』(인사이트, 2014)에서 다룬 돈 문제(Money Problem) 예제를 각 언어로 재해석해 서술했으며, 테스트 주도 개발 방식에 쉽고 재미있게 익숙해질 수 있도록 돕는다. 실패하는 테스트를 먼저 작성하고 프로덕션 코드를 작성해 테스트를 통과하게 만든 후 개선하는, '레드-그린-리펙터 사이클'의 테스트 주도 개발 필수 구성 요소 세 단계를 다룬다. 또한 GitHub Action을 활용한 지속적 통합과, 자동화된 회귀 테스트의 실천적 방법을 제시한다.
Contents
1부 시작하기

1장. 돈 문제


__레드-그린-리팩터: TDD 구성 요소
__문제 인식
__첫 번째 실패하는 테스트
____Go
____자바스크립트
____파이썬
__그린으로 전환
____Go
____자바스크립트
____파이썬
__마무리하기
____Go
____자바스크립트
____파이썬
__변경 사항 반영하기
__중간 점검
____Go
____자바스크립트
____파이썬

2장. 다양한 통화로 돈 계산

__유로에 발 들이기
____Go
____자바스크립트
____파이썬
__DRY한 코드를 유지하라
____Go
____자바스크립트
____파이썬
__반복하지 말라고 하지 않았나?
__분할 정복
____Go
____자바스크립트
____파이썬
__마무리하기
____Go
____자바스크립트
____파이썬
__변경 사항 반영하기
__중간 점검

3장. Potfolio

__다음 테스트 설계하기
____Go
____자바스크립트
____파이썬
__변경 사항 반영하기
__중간 점검

2부 모듈화

4장. 관심사의 분리


__테스트 코드와 프로덕션 코드
____단방향 의존성
____의존성 주입
____패키징 및 배포
__모듈화
__의존성 제거
__중간 점검

5장. Go의 패키지 및 모듈

__코드를 패키지로 분리하기
__Go 모듈
__패키지 생성하기
__캡슐화
__테스트에서 중복 제거하기
__변경 사항 반영하기
__중간 점검

6장. 자바스크립트의 모듈

__코드를 모듈로 나누기
__자바스크립트 모듈로 넘어가기
____CommonJS
____비동기 모듈 정의
____유니버설 모듈 정의
____ESModules
__테스트 개선하기
____테스트에서 중복 제거하기
____테스트 클래스 및 테스트 메서드 추가하기
____자동으로 테스트를 찾고 실행하기
____테스트가 성공적으로 실행되면 출력 생성하기
____앞서 실행된 테스트가 어써션에서 실패해도 모든 테스트를 실행하기
__변경 사항 반영하기
__중간 점검

7장. 파이썬의 모듈

__모듈로 코드를 분리하기
__테스트에서 중복 제거하기
__변경 사항 반영하기
__중간 점검

3부. 피처와 재설계

8장. 포트폴리오 평가하기


__돈 섞기
____Go
____자바스크립트
____파이썬
__변경 사항 반영하기
__중간 점검

9장. 여기도 통화, 저기도 통화

__해시(맵) 만들기
____Go
____자바스크립트
____파이썬
__변경 사항 반영하기
__중간 점검

10장. 오류 처리

__오류 위시리스트
____Go
____자바스크립트
____파이썬
__변경 사항 반영하기
__중간 점검

11장. 은행 업무로 재설계

__의존성 주입
__모두 합치기
____Go
____자바스크립트
____파이썬
__변경 사항 반영하기
__중간 점검

4부. 마무리 짓기

12장. 테스트 순서


__환율 변경
____Go
____자바스크립트
____파이썬
__변경 사항 반영하기
__중간 점검

13장. 지속적 통합

__핵심 개념
____버전 관리
____빌드 서버 및 에이전트
____아티팩트 저장소
____배포 환경
__모두 합치기
____깃허브 계정 생성
____깃허브 계정 인증
____코드 저장소를 깃허브에 푸시
____CI 빌드 스크립트 준비
____Go
____JavaScript
____Python
__변경 사항 반영하기
__중간 점검

14장. 회고

__프로필
____순환 복잡도
____결합도
____단순성
__목적
____응집도
____완전성
__프로세스
__모두 합치기
____Go
____자바스크립트
____파이썬
__TDD는 죽었다?
__중간 점검

부록 A. 개발 환경 구축

__온라인 REPL
____Repl.it
____LeetCode
____CoderPad
____Go 플레이그라운드
____온라인 REPL의 종합 목록
__통합 개발 환경
____비주얼 스튜디오 코드
____인텔리제이 IDEA
____이클립스
__언어 도구 설치하기
____Go
____자바스크립트/ES6
____파이썬

부록 B. 세 언어의 간략한 역사

__Go
__자바스크립트
____단언 모듈
____모듈 메커니즘
__파이썬

부록 C. 감사의 말
Author
살림 시디퀴,김인태
소프트웨어 개발자, 교육자, 연사이자 저자다. 몇 번의 기술 호황과 불황이 반복되는 시기를 겪으며 의료, 유통, 관공서, 금융 및 제약 부문에서 크고 작은 팀의 일원으로 소프트웨어를 개발했다. 소프트웨어를 개발하는 동안 부끄러운지도 모른 채 저질렀던 실수에서 얻은 교훈을 다른 이들과 공유하고자 한다. 노력을 토대로 세계 무대로 나아가길 즐긴다. 경험을 글로 풀어 블로그(http://thesaleem.com/blog)에 게시하는데, 가끔은 제삼자의 관점에서 쓴 글도 볼 수 있다.
소프트웨어 개발자, 교육자, 연사이자 저자다. 몇 번의 기술 호황과 불황이 반복되는 시기를 겪으며 의료, 유통, 관공서, 금융 및 제약 부문에서 크고 작은 팀의 일원으로 소프트웨어를 개발했다. 소프트웨어를 개발하는 동안 부끄러운지도 모른 채 저질렀던 실수에서 얻은 교훈을 다른 이들과 공유하고자 한다. 노력을 토대로 세계 무대로 나아가길 즐긴다. 경험을 글로 풀어 블로그(http://thesaleem.com/blog)에 게시하는데, 가끔은 제삼자의 관점에서 쓴 글도 볼 수 있다.