스터디/테스트 주도 개발 시작하기
4장 TDD-기능 명세-설계
yjzini
2024. 9. 26. 00:52
기능 명세
- 기능 구현을 위해서 기능을 크게 입력과 출력으로 나눠서 생각할 수 있음
- 입력
- : 기능을 실행하는데 필요한 값
- 메서드와 파라미터로 전달
- 결과
- : 여러 형식으로 정의할 수 있음
- 리턴 값, Exception
- 변경 ex. DB에 데이터를 추가하는 등의 시스템 상태의 변경
- : 여러 형식으로 정의할 수 있음
- 입력
- 설계는 기능 명세로부터 시작
- 요구 사항 문서를 이용해서 기능 명세를 구체화하는 동시에 입력과 결과를 도출 → 도출한 기능 명세를 코드에 반영
설계 과정을 지원하는 TDD
- 테스트 코드를 만들기 위해 무엇이 필요?
- 테스트할 기능을 실행
- 클래스, 메서드, 함수 이름 결정
- 파라미터 (이름 & 인자의 타입과 개수) 결정
- 실행 결과를 검증
- 리턴 값
- 테스트할 기능을 실행
- 이름은 설계에서 매우 중요! 이름을 고민하는 시간을 아까워하지 말자!
필요한 만큼만 설계하기
- 필요할 것으로 예측해서 미리 설계를 유연하게 만들지 않고 필요한 만큼만! 설계 변경
- ex. 미리 앞서서 필요해 보이는 익셉션 타입을 만들지 않는다
- 유연한 설계는 필요한 시점에 추가하여 설계가 불필요하게 복잡해지는 것을 방지할 수 있음
기능 명세 구체화
- 기능 명세를 정리
- 요구사항의 명세에서 입력과 결과를 도출
- 애매한 부분을 발견하면 실무 담당자나 기획자와 얘기를 통해 구체적으로 정리해야 함
- 개발자는 최대한 예외적인 상황이나 구체적인 예를 끌어내야 함.
⌈테스트 주도 개발 시작하기⌋ 책 스터디를 진행하며 작성한 글입니다.
책 출처: 최범균, ⌈테스트 주도 개발 시작하기⌋, 가메출판사