"취업준비를 하면서 'TDD 개발 경험'이 있는 사람, 또는 '테스트 개발에 대해서 긍정적으로 생각하거나 중요하다고 생각하는 사람'이 취업 우대사항란에 종종 있는것을 발견한다.
이번에 맘먹고 '클린코드를 위한 테스트 주도개발'이라는 책을 가지고 테스트 주도 개발(Test-Driven Development, TDD)에 대해서 공부하고자 한다."
기능 테스트는 사용자 관점에서 애플리케이션 외부를 테스트하는 것이고, 단위 테스트(Unit Tests)는 프로그래머 관점에서 그 내부를 테스트한다는 것이다.
"책을 읽으면서 이해한 바로는 애플리케이션의 외부를 테스트한다는 말은 웹 서버에 접속한다던지 또는 사용자의 입장에서 어떤 입력 값을 넣는다던지 이런식의 접근이었고 단위테스트는 그렇게 입력이 되었을때 또는 입력했다고 가정하고 내부의 함수가 의도한데로 잘 작동되는지 또는 의도한 에러가 발생하는지를 말하는 것 같다."
이 책에서 다루는 TDD 접근법은 양쪽의 테스트를 모두 적용한다. 이후 작업순서는 다음과 같다.
이 과정을 잘 보면, 기능 테스트는 상위 레벨의 개발을 주도하고 단위 테스트는 하위 레벨을 주도한다는 것을 알 수 있다.
"사실 읽으면서 이해는 되는것 같은데 확실히 체감(?)이라고 해야할까? 그런 느낌이 확 오지 않아서 과정마다 예시 코드를 적어보면서 이해해보고자 한다.
책의 예시코드는 Django로 되어있고 나 또한 장고로 백엔드 개발에 입문하였기 때문에 장고 코드로 예시 만들어 볼것이다."