본문 바로가기
소프트웨어공학/SW 개발 모델

[SW 개발 모델] 워터폴(Waterfall) 모델

by 클레어몬트 2025. 2. 18.

Waterfall = 폭포수

 

ㅁ워터폴(Waterfall) 모델: 전통적으로 사용되는 방법론 중 하나로, 단계별 순차적으로 진행되는 특성을 가지며 각 단계가 완료된 후 다음 단계로 넘어가는 방식

주로 대규모 프로젝트에서 활용되며, 요구사항이 명확하고 변경 가능성이 적은 환경에서 효과적이다

 

[워터폴 모델의 6단계]

1. 요구사항 분석 (Requirement Analysis)

  • 프로젝트의 목적과 목표를 정의하고, 고객 및 이해관계자의 요구사항을 수집한다
  • 소프트웨어가 가져야 할 기능과 제약 사항을 문서화한다

2. 시스템 설계 (System Design)

  • 요구사항 분석에서 정의된 내용을 바탕으로 시스템의 구조와 아키텍처를 설계한다
  • ERD 설계, 인터페이스 설계, 모듈 설계, API 명세서 작성 등을 포함한다

3. 구현 (Implementation)

  • 설계된 내용을 기반으로 실제 코드를 작성한다
  • 개발팀이 프로그래밍을 수행하며, 각 모듈을 개발하여 통합한다

4. 테스트 (Testing)

  • 개발이 완료된 소프트웨어를 테스트하여 결함을 찾고 수정한다
  • 단위 테스트(Unit Testing), 통합 테스트(Integration Testing), 시스템 테스트(System Testing) 등을 수행한다

5. 배포 (Deployment)

  • 테스트가 완료된 소프트웨어를 실제 운영 환경에 배포한다
  • 사용자가 소프트웨어를 사용할 수 있도록 설치 및 설정을 진행한다

6. 유지보수 (Maintenance)

  • 배포된 소프트웨어에 대한 유지보수 작업을 수행한다
  • 버그 수정, 성능 개선, 새로운 요구사항 반영 등의 작업이 포함된다

 

(워터폴 모델 장점)

  • 명확한 단계 구분으로 인해 프로젝트 진행 상황을 쉽게 파악할 수 있다
  • 문서화가 철저하게 이루어져 향후 유지보수 및 인수인계가 용이하다
  • 대규모 프로젝트에서 체계적인 접근 방식을 제공한다

 

(워터폴 모델 단점)

  • 요구사항 변경이 어려워 초기 기획 단계에서 모든 요구사항을 명확하게 정의해야 한다
  • 다음 단계로 넘어가면 이전 단계로 돌아가기 어렵기 때문에 유연성이 부족하다
  • 개발 완료 후 테스트를 진행하므로, 오류가 후반부에 발견될 경우 수정 비용이 크다

 

<워터폴 모델이 적합한 상황>

  • 요구사항이 명확하게 정의되어 변경 가능성이 적은 경우
  • 문서화가 중요한 대규모 프로젝트
  • 정부 프로젝트나 방산, 항공우주, 의료 시스템 등 높은 신뢰성이 요구되는 보수적인 프로젝트

워터폴 vs 애자일

 

 

 

 

워터폴 모델은 체계적인 접근 방식으로 프로젝트를 진행할 수 있도록 도와주지만, 유연성이 부족하다는 단점이 있다. 최근에는 변화가 많은 프로젝트에서는 애자일(Agile) 모델이 선호되지만, 여전히 문서화가 중요하고 명확한 계획이 필요한 프로젝트에서는 워터폴 모델이 적합하다. 프로젝트의 특성을 고려하여 적절한 개발 방법론을 선택하는 것이 중요하다.

 

https://claremont.tistory.com/entry/SW-%EA%B0%9C%EB%B0%9C-%EB%AA%A8%EB%8D%B8-%EC%95%A0%EC%9E%90%EC%9D%BCAgile-%EB%B0%A9%EB%B2%95%EB%A1%A0

 

[SW 개발 모델] 애자일(Agile) 방법론

소프트웨어 개발 환경은 빠르게 변화하고 있으며, 사용자의 요구사항도 지속적으로 변한다. 기존의 전통적인 개발 방식(e.g. 워터폴 모델)에서는 모든 요구사항을 사전에 정의하고 순차적으로

claremont.tistory.com