본문 바로가기
IT/이슈 및 정보

폭포수모델과 애자일모델의 비교 분석 완벽 정리

by ghostzoominn 2020. 9. 2.

「 Waterfall vs Agile, 두가지는 반드시 아셔야 합니다 」

소프트웨어 개발 모델(프로세스)에는 폭포수, 애자일, 나선, 프로토타입 등 다양한 방법론이 있습니다.

 

이들 중 가장 특성이 두드러지며, 면접 시 가장 많이 질문하는 폭포수모델과 애자일모델에 대해 알아보고, 비교 분석하여 정리 하도록 하겠습니다.

 

※ 글 아래쪽에 코레일 면접 기출 문제도 포함되어있습니다.

소프트웨어 개발 모델의 이해

「 폭포수(Waterfall)모델 」

폭포수 모델은 소프트웨어 개발 모델 중 초창기에 정립 된 모델로, 1970년에 고안되었습니다.

 

이러한 프로세스가 정립되기전에는 Build & Fix 방식으로, 요구사항에대해 일단 코드로 만든 후, 계속 수정해 나가며 프로그램을 완성하는 방식으로 프로그램이 만들어져왔습니다.

 

하지만 폭포수 모델이 정립되며, 이는 좀 더 구체화되고 순차적으로 진행되게 되었습니다.

 

폭포수모델은 '분석', '설계', '개발/구현', '테스트' 단계를 순차적으로 진행하여 프로그램을 만듭니다.

 

1. 폭포수모델의 구성 단계

1) 분석 : 고객의 요구조건, 시스템 환경 등 타당성을 검토하고 요구사항에 대한 명세를 작성.

 

2) 설계 : 요구사항 명세를 바탕으로 S/W의 전체 구조와 구조간의 관계, 상세 알고리즘 등을 세부적으로 설계.

 

3) 개발/구현 : 요구사항 명세를 준수하는 설계에 따라 직접 코딩하여 S/W를 개발하는 단계.

 

4) 테스트 : 완성된 프로그램을 테스트하는 단계(통합테스트, 인수테스트, 시스템테스트 등)

 

다음으로, 폭포수모델의 특징을 알아보겠습니다.

 

2. 폭포수 모델의 특징

1) 절차적 : 소프트웨어 개발을 단계별로 순차적으로 진행하는 '절차적' 프로그래밍 기법. 

 

2) 단계검증 : 각 단계별로 검증이 완료된 후 다음 단계로 이동.

 

3) 하향식 접근 : 전 단계의 작업이 모두 완료되어야 다음 진행이 가능한 방식.

 

4) 피드백 : 결함 발견시 전 단계로 돌아가는 피드백 단계 존재.

 

다음으로, 폭포수 모델의 장·단점에 대해 알아보겠습니다.

 

3. 폭포수 모델의 장·단점

1) 장점

 - 오랜기간 사용 된 S/W개발 모델로써, 다양한 사례가 풍부하고 검증된 방식에 따라 업무 진행이 가능

 - 전체 과정이 S/W의 생명주기와 일치하여, 이해하기 쉬움

 - 각 진행 단계 별 산출물(문서)이 확실하여, 진행중 및 진행이후에도 관리가 용이함

 

2) 단점

 - 각 단계가 종결 되어야 다음 단계 진행 가능

 - 사용자 피드백에 대한 빠른 대응이 어려움

 - 스트 단계에서 발견된 중요 결함은 치명적인 문제가 될 수 있음

 

4. 폭포수 모델을 적용하기 좋은 조건

1) 고객의 요구사항이 단순하고 변경 가능성이 높지않음.

 

2) 프로젝트의 규모와 난이도가 높지않음.

 

3) 각 단계 종료후 나올 산출물의 결과가 명확함.

 

「애자일(Agile)모델」

애자일 모델

소프트웨어 개발 모델(프로세스) 중 애자일(Agile)모델은 아무런 계획없이 개발하는 방법과 계획이 지나치게 많은 개발 방법들 사이에서 타협점을 찾고자 하는 방법론 입니다.

 

계획이 없는 방법론은 개발기간, 비용, 인원 등 앞으로의 일을 예측하기 힘들고, 문서화 되지 않아 추후 유지관리에 문제가 생길 수 있는 단점이 있습니다.

 

하지만 계획에 너무 의존하는 방법론은 문서나 단계, 절차 등 형식적인 절차를 따르는데 필요한 시간과 비용이 과도하게 들어 오히려 효율성이 떨어질 수 있는 단점이 있습니다.

 

따라서 애자일 모델에서는 문서를 통한 개발 방법이 아닌, 일정 주기를 가지고 실질적인 코딩을 통해 개발을 진행하며 그때그때 필요한 요구를 더하고 수정하며 진행하는 방법론이라 할 수 있습니다.

 

이러한 애자일 모델의 4가지 특징은 다음과 같습니다.

 

1. 애자일(Agile) 모델의 특징

1) 공정과 도구보다 개인과 상호작용을 중시.

 

2) 문서보다는 작동하는 소프트웨어를 중시.

 

3) 계약 협상보다는 고객과의 협력을 중시.

 

4) 계획에 맞추기보다는 변화에 대응하는것을 중시.

 

2. 애자일 모델의 장·단점

1) 장점

 - 개발 주기를 통해 프로젝트의 방향과 목표를 가늠하도록 도와줌

 - 반복적인 결과물이 나오게되는데, 이를 통해 수정된 요구사항과 문제점을 빠르게 파악할 수 있음

 - 파악된 문제점을 초기에 해결 할 수 있음

 

2) 단점

 - 너무 개발자 중심의 방법론일 수 있음(기획자, 디자이너가 개발자에게 끌려가는 형태)

 - 빈번한 수정으로 개발시 인력들이 느끼는 피로도가 높음

 - 불완전하고 예측불가능한 요소(비용, 시간 등)를 지닌채 진행 할 수 있음

 

3. 애자일 모델을 적용하기 좋은 조건

1) 정확한 목표를 위한 프로세스를 정립하지 못한 조직.

 - 쉽고 빠르게 애자일 모델을 적용해 볼 수 있음.

 

2) 전통적인 프로세스를 도입해 진행하고있지만, 효율적인 결과물을 산출해 내지 못하는 조직.

 - 애자일 모델의 도입으로 조직의 문화가 바뀌고 효율성이 개선될 수 있음.

 

「폭포수모델 vs 애자일 모델 」

폭포수 모델 : '분석', '설계', '개발/구현', '테스트' 단계를 순차적으로 진행

애자일 모델 : 일정 주기를 가지고 실질적인 코딩을 통해 개발을 진행하며, 필요한 요구를 더하고 수정하며 진행

 

「2018년 상반기 코레일 면접기출」

Q. 폭포수 모델과 애자일 모델를 각각 설명하고 차이점을 말해보세요

댓글