개발 방법론(Development Methodology)은 소프트웨어 개발 프로젝트의 생명주기를 관리하고 가이드하는 일련의 절차, 원칙, 프로세스, 도구 및 기술들을 포함하는 체계적인 접근 방식입니다. 개발 방법론은 프로젝트의 계획, 요구 사항 분석, 설계, 구현, 테스트 및 유지 보수와 같은 개발 과정에 대한 효율성과 품질을 향상시키는 데 도움이 됩니다.
방법론은 여러가지가 있겠지만, 폭포수 모델, 애자일, 데브옵스, 프로토타입, 스파이럴을 예시로 알아보겠습니다.
폭포수 모델(Waterfall Model)
- 전통적이고 순차적인 개발 방법론으로, 각 단계가 완료될 때까지 다음 단계로 진행하지 않는 방식입니다.
- 요구사항 정의, 설계, 구현, 테스트, 유지보수 단계로 구성됩니다.
- 단계가 순차적으로 진행되기 때문에, 변화나 수정이 어려울 수 있습니다.
- 계획 및 문서화에 중점두며 변경 사항에 대처하기 어려워 실제 프로젝트에서의 유연성이 떨어진다.
- 요구사항의 변동성이 적고, 명확한 목표와 일정이 정해진 경우에는 폭포수 모델 등의 순차적인 방법론이 적합합니다.
애자일(Agile)
- 반복적인 개발 방법론으로, 짧은 주기로 개발하고 검토하여 요구사항이나 디자인을 수정하는 방식입니다.
- 변화에 대한 적응력이 뛰어나고, 프로젝트의 전체 진행 상황을 빠르게 파악할 수 있습니다.
- 대표적으로 스크럼(Scrum), XP(eXtreme Programming) 등이 있습니다.
- 빠른 개발과 유연성이 필요한 경우에 적합합니다.
- 요구사항이 불분명하거나 변경이 예상되는 경우에는 애자일 등의 반복적인 방법론이 적합합니다.
데브옵스(DevOps) 방법론
- 개발(Dev)과 운영(Ops) 팀 간의 협업 및 통합을 강조하는 방법론입니다.
- 개발, 테스트, 배포, 모니터링 등의 프로세스를 자동화하고 지속적인 통합(CI) 및 지속적인 배포(CD)를 적용합니다.
- CI/CI를 통해 개발 및 배포 속도를 향상시키고 소프트웨어 품질을 개선하는 데 목표를 두고 있습니다.
- 조직 내의 커뮤니케이션 및 협업 문화를 강화하고 빠른 피드백 및 개선 사이클을 통해 비즈니스 가치를 높이는 것을 목표로 합니다.
프로토타입(Prototype)
- 초기 버전의 상품 및 서비스를 만든 뒤, 사용자의 의견을 빠르게 수용하며 요구사항을 검증하고, 수정 및 개선 합니다. 이를 통해 점차 발전시켜 나가는 방식입니다.
- 사용자와의 소통을 강조하며, 빠른 피드백을 통해 개발 과정에서 발생할 수 있는 문제점을 조기에 발견하고 해결할 수 있습니다.
- 빠른 시간 내에 원하는 결과물을 얻을 수 있는 장점이 있습니다.
스파이럴(Spiral)
- 반복적이고 증분적인 개발 프로세스와 위험 분석 및 관리를 결합한 방법론입니다.
- 목표 설정 - 위험 분석 - 소프트웨어 개발 및 검증 - 다음 단계 작업 계획
- 프로젝트를 여러 단계로 나누고 각 단계에서 위험을 평가하여 불확실성을 줄이고 프로젝트의 성공 가능성을 높이는 것을 목표로 합니다.
- 위험 요소가 높고 복잡한 프로젝트에 적합하며, 조기에 위험을 감지하고 대응할 수 있습니다.
- 과도한 문서화와 관리 비용이 발생할 수 있으며, 일정 및 예산 추정이 어려울 수 있습니다.
https://au.indeed.com/career-advice/career-development/software-development-methodology
What Is a Software Development Methodology? (With 11 Types)
Learn about software development methodology, including its definition, 11 types of software development methodologies and tips for choosing the right process.
au.indeed.com
https://positiwise.com/blog/what-is-software-development-methodology/
What is Software Development Methodology?
This article is about software development methodologies, explaining the basic definition of the most popular development method followed in the IT industry.
positiwise.com
Top 12 Software Development Methodologies
The software development methodology is a framework that is used to structure, plan, and control the process development of an information system.
www.tatvasoft.com
'개발기초' 카테고리의 다른 글
[자바스크립트] 클로저(Closure)에 대해서 (0) | 2023.04.20 |
---|---|
[자바스크립트] 프로미스 (Promise)와 async/await에 대해서 (1) | 2023.04.20 |
데이터베이스와 ORM (0) | 2023.04.18 |
[자바스크립트] 동기와 비동기, 코드 실행 방식에 대해서 (0) | 2023.04.14 |
[자바스크립트] 비동기적 처리를 돕는 '콜백 함수' (0) | 2023.04.13 |
댓글