본문 바로가기
기타

[소프트웨어 개발 방법론] 폭포수 개발

by soobaaaam 2022. 1. 29.
728x90

소프트웨어 개발 방법론은 소프트웨어를 만드는 절차를 정의한다.

이런 방법론들은 소프트웨어를 만드는 방법과 팀을 이끄는 방법을 알려준다.

 

폭포수(Waterfall) 개발이란

폭포수 개발은 가장 전통적인 개발 방법론이다. 

이름 그대로 한 단계가 끝나면 다음 단계로 한 번에 한 단계씩 넘어가는 방식이다. 폭포수 개발 방법론에는 소프트웨어 개발 생명주기(SDLC)가 포함되어 있다. 

 

소프트웨어 개발 생명주기(Software Development Life Cycle)

SDLC는 다음의 과정을 포함한다.

 

  1. 요구사항 분석 : 개발할 소프트웨어에 필요한 요구사항을 모두 알아내는 단계이다. 무엇을 해야 하고, 어떤 기능이 있어야 하며, 어떻게 동작해야 하는지 등을 본격적으로 개발에 들어가기 전에 알아야 한다.
  2. 소프트웨어 디자인 : 요구사항 분석이 끝났다면 어떻게 만들지를 정해야 한다. 소프트웨어 디자인 단계에서는 시스템 아키텍처를 설계한다.
  3. 구현 : 개발 단계이다. 앞의 과정에서 한 설계가 코드로 바뀐다.
  4. 테스트 : 테스터가 테스트를 하고 버그를 찾아낸다. 다음 단계로 넘어가기 전에 최대한 많은 버그를 수정한다.
  5. 배포 : 이제 만들어진 소프트웨어가 실제로 작동하는지 확인한다. 그리곤 세상 사람들에게 알린다. 
  6. 유지 보수 : 사람들에게 소프트웨어가 전달되었다면 더 많은 버그가 그 사람들에게 발견된다. 버그들을 고치고, 새로운 기능을 추가하고, 모든 것들이 정상적으로 움직이게 해야 한다.

 

폭포수 개발의 문제점

일련의 과정으로 이어지는 폭포수 개발에는 '요구사항 변화'라는 가장 큰 문제가 있다. 

프로젝트가 끝나기 전까지 요구사항의 변화를 알 수 없기에 모든 과정이 끝난 후 요구사항이 변하거나 새로 생긴다면, 이미 완성된 것들을 모두 버리거나 새로운 요구사항을 포기해야 한다.

 

이러한 문제를 인식하고 보완하기 위해 생겨난 개발 방식이 '애자일'이다.