← Back to Blog

[Programming] Waterfall Methodology

computer science > programming

2026-07-053 min read

#computer-science #programming #waterfall #software-development #methodology

Waterfall이란?

Waterfall은 소프트웨어 개발을 순차적인 단계로 나누어 진행하는 개발 방법론이다. 폭포처럼 이전 단계에서 다음 단계로 흐른다는 의미에서 Waterfall이라고 부른다.

일반적인 흐름은 다음과 같다.

요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 배포 -> 유지보수

핵심은 각 단계를 명확히 끝낸 뒤 다음 단계로 넘어가는 것이다. 따라서 초기에 요구사항을 충분히 정의하고, 그 요구사항을 기준으로 설계와 구현을 진행한다.


기본 단계

Waterfall은 보통 다음 단계로 구성된다.

단계설명
요구사항 분석사용자가 원하는 기능과 제약 조건을 정리
설계시스템 구조, 데이터 모델, 인터페이스를 설계
구현설계 문서를 바탕으로 실제 코드를 작성
테스트구현 결과가 요구사항을 만족하는지 검증
배포완성된 시스템을 운영 환경에 반영
유지보수버그 수정, 운영 대응, 제한적인 변경 수행

각 단계의 산출물이 다음 단계의 입력이 된다. 예를 들어 요구사항 명세서가 설계의 기준이 되고, 설계 문서가 구현의 기준이 된다.


특징

Waterfall의 가장 큰 특징은 계획 중심이라는 점이다. 개발 초기에 범위, 일정, 비용, 요구사항을 가능한 한 명확히 정한다.

무엇을 만들지 먼저 확정한다.
그 다음 어떻게 만들지 설계한다.
그 다음 구현한다.

이 방식은 요구사항 변경이 적고, 결과물이 비교적 명확한 프로젝트에 잘 맞는다. 반대로 개발 중간에 요구사항이 자주 바뀌는 프로젝트에서는 대응이 느릴 수 있다.


장점

Waterfall의 장점은 관리하기 쉽다는 것이다. 단계가 명확하므로 현재 프로젝트가 어디까지 진행되었는지 파악하기 쉽다.

장점설명
명확한 단계진행 상황과 책임 범위를 구분하기 쉽다
문서화에 강함요구사항, 설계, 테스트 기준이 문서로 남는다
일정 관리 용이전체 계획을 먼저 세우기 쉽다
계약 기반 프로젝트에 적합범위와 산출물을 사전에 합의하기 좋다

특히 외주 개발처럼 계약 범위가 명확해야 하는 프로젝트에서는 Waterfall 방식이 여전히 사용된다.


단점

Waterfall은 변경에 약하다. 초기에 정한 요구사항이 틀렸거나, 개발 도중 시장 상황이 바뀌면 뒤 단계에서 수정 비용이 커진다.

단점설명
변경 대응이 느림앞 단계로 돌아가야 할 수 있다
피드백이 늦음사용자가 실제 동작하는 제품을 늦게 본다
초기 요구사항 의존처음 분석이 틀리면 전체 방향이 흔들린다
테스트가 뒤에 위치결함 발견이 늦어질 수 있다

예를 들어 구현이 끝난 뒤 사용자가 "원한 기능이 아니다"라고 말하면 요구사항 분석과 설계 단계로 돌아가야 한다. 이 경우 일정과 비용이 크게 늘어날 수 있다.


언제 적합한가

Waterfall은 다음과 같은 상황에 적합하다.

상황이유
요구사항이 안정적일 때변경 가능성이 낮으면 순차 진행이 효율적
규제나 문서가 중요할 때단계별 문서화가 강점
납품 범위가 명확할 때계약과 검수 기준을 세우기 쉽다
기술적 불확실성이 낮을 때사전 설계의 신뢰도가 높다

예를 들어 내부 업무 시스템, 공공 프로젝트, 하드웨어와 강하게 연결된 시스템에서는 Waterfall이 선택될 수 있다.


Agile과의 차이

Waterfall과 Agile의 차이는 개발을 바라보는 관점에서 나온다.

구분WaterfallAgile
진행 방식순차적반복적
요구사항초기에 확정하려고 함변경을 수용
피드백후반부에 많음짧은 주기로 반영
문서상대적으로 중요동작하는 소프트웨어를 더 중시
적합한 환경안정적인 요구사항불확실한 요구사항

Waterfall이 항상 나쁘고 Agile이 항상 좋은 것은 아니다. 프로젝트의 불확실성, 조직 구조, 계약 방식, 배포 주기에 따라 적합한 방식이 달라진다.


정리

Waterfall은 요구사항부터 유지보수까지 단계를 순차적으로 진행하는 개발 방법론이다. 명확한 계획과 문서화가 강점이지만, 변화에 빠르게 대응하기는 어렵다.

따라서 Waterfall은 다음과 같이 이해하면 된다.

처음에 충분히 정의하고,
정해진 단계에 따라 만들고,
마지막에 검증하는 방식

요구사항이 안정적이고 산출물 기준이 명확한 프로젝트라면 여전히 실용적인 선택지가 될 수 있다.