워터폴 모델

🏷️ 정보

워터폴 모델(Waterfall Model)은 소프트웨어 개발을 요구사항 → 설계 → 구현 → 검증 → 유지보수의 선형 단계로 진행하는 전통적 개발 방법이다. 각 단계는 이전 단계가 완료된 뒤 시작되며, 결과물이 폭포수처럼 아래로 흐른다는 비유에서 이름이 유래했다.

역사적 아이러니

"워터폴의 아버지"로 불리는 Winston W. Royce의 1970년 논문 Managing the Development of Large Software Systems실제로는 반복적 개발을 권장했다. Royce는 순수 선형 모델을 "위험하고 실패를 낳는다(risky and invites failure)"고 기술했으며, 프로토타입을 먼저 만들고 피드백을 반영하는 반복 개발을 제안했다.

그러나 후대 엔지니어들이 이 논문의 첫 페이지 선형 다이어그램만을 인용하면서, Royce가 비판한 모델이 오히려 그의 이름으로 정립되었다. 애자일 진영이 "워터폴을 극복하자"고 외칠 때, 이들은 실제로는 Royce가 이미 비판한 모델을 극복하자고 외친 셈이다.

특징

적용 영역

현대에도 다음 영역에서는 선형·단계적 접근이 선호된다. - 항공·의료·원자력 등 안전-critical 시스템 (규제 요구사항) - 하드웨어 의존 프로젝트 (양산 후 변경 비용이 높음) - 정부·공공 조달 (명세 기반 계약)

애자일과의 관계

애자일 진영은 워터폴을 반대 극점으로 설정했지만, 현실에서 순수 워터폴을 쓰는 조직은 드물다. 대부분의 실제 프로젝트는 하이브리드(Water-Scrum-Fall, Wagile 등)로 운영된다.

관련 문서