학습/기술사

폭포수 모델(Waterfall Model)에 대한 설명

@SoftyChoco 2025. 9. 8. 00:13
@SoftyChoco의 다른 컨텐츠

개요

소프트웨어 개발 생명주기 모델 중 하나로 가장 고전적인 모델.
각 단계가 순차적으로 진행되며, 다시 이전단계로 되돌아가기가 어렵기 때문에 "폭포수 모델"이라고 이야기 함.
모델 구조가 간단하며 각 단계별로 산출물이 나오기 때문에 요구사항이 명확하고, 변경될 일이 없는 작은 프로젝트에 적합함.

구성도

타당성 검토 > 계획 > 요구사항 분석 > 설계 > 구현 > 테스트 > 유지보수

작업 방식

  1. 타당성 검토
    • 기술적, 법적으로 문제가 없는지 검토하는 단계
    • 산출물: 타당성 검토 확인서
  2. 계획
    • 프로젝트의 범위, 일정, 자원 등을 수립하는 단계
    • 산출물: 프로젝트 계획서
  3. 요구사항 분석
    • 고객 요구사항을 분석하고, 명세하는 단계
    • 산출물: 요구사항 명세서
  4. 설계
    • 요구사항 명세서를 기반으로 DB 구조, 시스템 구조 등을 설계를 진행하는 단계
    • 산출물: 시스템 구조도, ERD, UML(유스케이스 등)
  5. 구현
    • 설계를 기반으로 실제 소프트웨어를 구현하는 단계
    • 산출물: 소스코드, 실행파일
  6. 테스트
    • 구현된 소프트웨어를 테스트하는 단계
    • 산출물: 테스트 결과 확인서
  7. 유지보수
    • 운영 중 발생된 이슈에 대하여 유지보수를 진행하는 단계

폭포수 모델의 장단점

장점

  • 품질 신뢰도 높음: 단계마다 문서화가 되기 때문에 요구사항이 명확한 경우 품질에 대한 신뢰도가 높다.
  • 모델에 대한 이해도 쉬움: 단계가 잘 나뉘어있고, 순차적이기 때문에 이해가 쉽다.
  • 체계적인 관리: 단계별 산출물이 명확하므로 프로젝트 진척도 확인이 쉽고 인수인계에 용이하다.

단점

  • 요구사항 변경 어려움: 요구사항 변경 시 이전단계로 돌아가기 어렵기 때문에 수정이 어렵다.
  • 초기 요구사항 중요성: 초기 요구사항이 명확하지 않으면, 결과도 나쁨.
  • 후반에 결과물 확인: 구현이 완료된 후 결과물 확인이 가능하기 때문에, 작업 도중 확인이 어렵다.

고려사항

위 단점에서 나오는 문제들로 인해, 잦은 개선이나 붋명확한 요구사항의 소프트웨어 개발 시에는 애자일 방법론 혹은 V 모델을 고려해볼 수 있다.
요구사항이 명확하게 파악된 경우라면 폭포수 모델이 적합하다.