이번주에 배운 것은 "파이썬 장고 실무 심화" 강의를 전부 듣고 "딥러닝을 통한 이미지처리 구현"를 듣기 시작했다. 이 중 장고 심화 강의에서 TDD에 관하여 배운 것이 인상이 깊었다.
TDD : Test-Driven Development [wikipedia]
테스트 주도 개발(Test-driven development, TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 우선 개발자는 바라는 향상 또는 새로운 함수를 정의하는 (초기적 결함을 점검하는) 자동화된 테스트 케이스를 작성한다. 그런 후에, 그 케이스를 통과하기 위한 최소한의 양의 코드를 생성한다. 그리고 마지막으로 그 새 코드를 표준에 맞도록 리팩토링한다. 이 기법을 개발했거나 '재발견' 한 것으로 인정되는 Kent Beck은 2003년에 TDD가 단순한 설계를 장려하고 자신감을 불어넣어 준다고 말하였다.
기존의 개발 방식대로라면 코드를 먼저 짜고 테스트를 돌렸지만, 테스트 주도 개발은 새로 개발하는 기능이 제대로 작동하는 지에 대한 테스트를 먼저 작성한 후 테스트 통과를 위해 코드를 작성해나가는 방식이었다. 우리가 취업시 준비하는 코딩테스트의 느낌이 났다. 튜터님의 말로는 현업에서는 대부분 사용하고 있다고 한다. 다음 프로젝트부터 적용해보면 좋을 것 같다.
https://deveric.tistory.com/m/100
https://asfirstalways.tistory.com/296
https://blog.aliencube.org/ko/2014/04/02/differences-between-bdd-and-tdd/
http://clipsoft.co.kr/wp/blog/tddtest-driven-development-%EB%B0%A9%EB%B2%95%EB%A1%A0/
https://media.fastcampus.co.kr/knowledge/dev/tdd/
잘 보고 갑니다~