본문 바로가기
테크

워터폴형 개발 모델이란?

by 힛스토리 2023. 7. 24.
728x90
반응형

워터폴형 개발 모델이란?

워터폴(Waterfall)이란 소프트웨어나 하드웨어 개발의 현장에서 이용하는 일종의 시스템 개발 수법이며 상류 공정으로부터 하류에 따라 개발을 진행시키는 수법입니다. 

 

워터폴 개발 모델에서는 외부(사용자) 또는 내부의 요구 정의를 정리한 후에 설계나 세세한 공정을 만들어 나갈 필요가 있습니다. 

 

또, 워터폴에서의 시스템 개발에서는 기본적으로, 공정을 스킵해 작업은 실시하지 않지만 인접한 공정으로 약간의 반복이 행해지는 일도 있습니다. 

 

그러므로, 기본적으로 워터폴에서의 시스템 개발은 전의 공정을 완전하게 끝내고 나서가 아니면 다음의 공정으로 진행되지 않는 구조가 되고 있습니다.

 

현재의 소프트웨어와 시스템 개발에서는 민첩한 개발 모델이 자주 활용되지만, 워터폴 개발 모델은 시스템의 품질을 중시할 때나 대규모 개발에 최적인 시스템 개발 방법으로 자주 사용되고 있습니다.

 

워터폴 모델에 담긴 의도는 예기치 않은 사태가 생기지 않는 질서였던 제조 사이클을 만드는 것이었습니다. 워터폴의 제창자들은 그 장점을 부드럽게 전했다. 

 

날카롭게 문서를 제대로 만들고 나서 코드의 기술을 시작할 수 있는 무엇을 만드는지가 사전에 확실히 정의되는 진척 상황을 파악하기 쉽다. 

 

이것들은 이론상은 아무도 훌륭한 메리트입니다만, 워터폴형의 개발을 막상 추진해 보면 그렇게 잘 되지 않습니다.

워터폴-개발
워터폴 개발

워터폴형 개발의 주된 공정·순서는?

워터폴형에는 읽고 보시다시피 시스템 개발을 위에서 아래로 흐르도록 프로젝트를 진행시켜 나가야 합니다. 

 

기본적인 공정의 특징으로서는 "요건 정의・사양", "외부 설계", "내부 설계", "개발・시스템 실장", "테스트", "운용"을 바탕으로 공정을 차례로 진행해 나가는 것이 특징입니다. 

 

다음 섹션에서는 중요한 워터폴형 개발에 필수적인 6가지 공정을 소개합니다.

 

① 요건 정의를 결정한다

요구사항 정의에서는 반드시 시스템 요구사항을 이해관계자로 결정합니다. 이 공정에서 주의해야 할 점으로는 고객과 어떤 기능을 개발할지 등의 협의를 진행시켜 나가는 것이 포인트입니다.

 

② 외부 설계를 실시한다

외부 설계 공정에서는, 실제로 소프트웨어나 시스템의 UI등에 관한 회의나 화면 조작의 이미지나 흐름 등의 설정을 실시합니다. 여기에서 활용할 수 있는 것이 와이어 프레임이나 모형입니다.

 

③ 내부 설계를 실시한다

내부 설계는 시스템 개발에 필요한 세부 사항을 결정합니다. 대표적인 내부 설계에서는 구체적인 처리 흐름의 설계를 실시합니다.

 

④ 코딩 시작

이 과정에서는 실제로 프로그램을 작성하는 단계로서 프로그래머가 코딩을 시작합니다.

 

⑤ 테스트 실행

이 단계에서는 작성한 코드와 시스템을 테스트합니다. 테스트에는 시스템 테스트단위 테스트, 결합 테스트를 실시합시다.

 

⑥ 사용

출시 후 운영 업무가 필요합니다. 나중에 고객의 요청에 맞는 추가 기능 개발도 필요할 수 있습니다. 워터폴형 개발이 선의로 움직이고 있는 것은 지금도 옛날도 변하지 않습니다. 

 

다만, 소프트웨어 개발의 최첨단에 있다고는 말할 수 없는 것 같습니다. 워터폴의 원칙을 고지하고 프로젝트를 진행하면, 결과적으로 하류의 작업이 산적이 되어 손에 질 수 없게 되어 버리는 케이스가 적지 않습니다. 

 

소프트웨어의 세계에서 말하면 설계나 계획에 몇 달이나 소비하고 나서 드디어 코드의 기술이 시작되는 상황입니다. 개발이 끝나면 완성된 제품이 구상 당초와 완전히 다른 것이 되어 버린 것조차 있기 때문에 기억해 둡시다.

워터폴 개발 방법의 장점이란?

- 진행 상황과 일정 관리를 파악하는 것이 쉬움

- 예산이나 한계, 납기의 알기 쉬움

- 관계자나 참가자의 교환이 간단

- 품질 담보가 편해진다

- 버그 발생률이 낮음

 

또, 워터폴형 개발 모델에서는 작성 이외의 작업을 포함하지 않기 때문에 낭비 없이 심플한 시스템 개발을 실시할 수 있는 메리트 등도 포함되어 있습니다.

워터폴 개발 방법의 단점이란?

- 전제 상황 등이 변경된 경우에는 계획을 재설정해야 합니다.

- 제품 및 서비스에 대한 테스트를 수행할 수 없음

- 고객의 의견을 받아들이기가 어려워짐

애자일-개발과- 워터폴의-차이란
애자일 개봘과 워터폴의 차이는?

애자일 개발과 워터폴의 차이란?

몇 년 전까지 소프트웨어와 제품 개발은 워터 폴 개발 기술을 기반으로 관리되었습니다. 폭포 개발 모델에서 각 작업은 단계적으로 수행되며 작업이 폭포처럼 진행됩니다. 

 

이러한 각 단계는 별도의 단계로 표시되며 다음 단계를 시작하기 전에 이전 단계를 완료해야 합니다. 

 

워터폴형 개발 모델의 개발 공정은 그 성질상 일정한 예산, 한계, 시간, 품질로 완료된다는 장점이 있습니다. 그러나 현실에는 고객으로부터 강한 불만이 전해지는 케이스가 많았기 때문에, 현재는 애자일 개발 수법이 많이 활용되고 있습니다.

 

 

[이전 글 읽어보기]

애자일(Agile) 개발이란?

 

애자일(Agile) 개발이란?

애자일(Agile) 개발이란? 변화가 심한 비즈니스 환경에서 소프트웨어에 대한 요구 변화도 치열해지고 있습니다. 요구의 변화에 ​​따라 새로운 비즈니스 변화를 창출하기 위해 더 빠른 소프트웨

heeestoryy.tistory.com

 

반응형

'테크' 카테고리의 다른 글

IT 용어 설명) 세션(Session)이란?  (0) 2023.07.26
IT 용어 설명) IT 아키텍처란?  (0) 2023.07.25
애자일(Agile) 개발이란?  (0) 2023.07.23
레거시 시스템이란?  (0) 2023.07.21
IT 용어 설명) 마이그레이션이란?  (0) 2023.07.20

댓글