개발 방법론의 필요성
대규모 비즈니스 시스템 구축 시 체계적인 공정 및 기법을 제공함으로써, 양질의 정보 시스템 구축을 가능하게 하고 개발 생산성 향상 및 개발 노하우의 축적의 기반이 된다.
개발 과정에서 테스트를 중심으로 코드를 작성하는 방법론.
테스트 케이스를 작성 후 해당 테스트를 실패/통과 하는 코드를 작성하여 기능을 추가할 때마다 테스트를 실행한다.
코드의 안정성과 동작 여부 검증.
개별 함수나 메서드의 동작 중심으로 테스트.
>>실패하는 테스트 케이스를 먼저 작성한 후 개발 진행!
장점 : 디버깅 시간 단축, 재설계 시간 단축, 추가 구현의 용의함, 튼튼한 객체 지향적인 코드 생산.
단점 : 생산성 저하.

TDD를 기반으로 한, 개발 프로세스에 사용자의 행위와 시나리오를 중심으로 한 개발 방법론.
비즈니스 요구사항에 집중하여 테스트 케이스를 개발한다.
TDD를 결합해 시나리오 테스트까지 하는 것.
>>Given-When-Then 형태로 표현

도메인 영역을 중심으로 설계하는 개발 방법론.
보편적인 언어의 사용을 추구하며 도메인 전문가와 소프트웨어 개발자 간의 커뮤니케이션 문제를 없애고 상호가 이해할 수 있고 모든 문서와 코드에 이르기까지 동일한 표현과 단어로 구성된 단일화된 언어체계를 구축해나간다.

나의 선택은 TDD였다.
1. 세가지 방법론 중 가장 익숙한 단어였다.
2. 공부하는 단계이므로 리소스와는 상관없이 차근차근 밟아나간다는 생각으로 하는게 중요하다고 생각했다.
3. 당장 협업이 아니라 스터디 목적이므로 이해관계자가 필요없다.