코드 기능 명세

모든 프로그램 코드는 입력과 출력을 갖고 특정 입력에 대해 기대하는 출력이 있습니다. 이런 기대 동작들을 코드의 명세 또는 요구사항이라고 부릅니다.


도메인

  • 소프트웨어는 문제를 푸는 도구
  • 도메인은 소프트웨어가 풀어야 할 문제가 정의되는 공간(비즈니스 시스템의 도메인은 비즈니스)
  • 문제를 충분히 이해하지 못하면 문제를 푸는 도구를 잘 만들수 없다.(틱택토 게임을 이해하지 못하면 틱택토 컴퓨터 게임을 만들 수 없다.)


비즈니스 시스템의 도메인 지식 흐름

비지니스 전문가 -> 분석가 -> 프로그래머 -> 컴퓨터
<- 목적/추상적 ———- 수단/구체적->


프로그래머와 기능 명세

  • 컴퓨터는 스스로 설계를 결정하지 않기 때문에 프로그래머가 도메인 지식을 컴퓨터에 전달할 때엔 모든 요소들이 명확히 결정될 수 밖에 없음.
  • 충분히 명확한 도메인 지식을 확보하지 못한 프로그래머는 지식 흐름 상류에 지식 보강을 요청해야 함


단위 테스트 작성 실습

분산(Variance) 계산하는 프로그램 작성

  • statistics variance 검색하면 공식 나옴
  1. 전달받은 요구사항대로 구현
  2. 버그 리포트로 추가 요구사항 대응
    • 입력값이 없으면 분산을 계산할 수 없다.
    • 데이터는 2개 이상되어야 계산할 수 있다.


느낀점

  • 도메인 지식을 잘 이해 하는것이 가장 중요하고 이해가 정확하지 않다면 질의응답을 통해서 정확하게 이해를 할때까지 커뮤니케이션을 해야한다.



« TDD 입문하기 테스트 기법 »


참고

Code 1-1

brew 사용해서 dotnet-sdk 설치

패스트 캠퍼스 - The RED: 이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법.

TDD HandsOn