소프트웨어 개발 방법론: 폭포수(Waterfall), 애자일(Agile)

소프트웨어 개발 방법론: 폭포수(Waterfall), 애자일(Agile)

소프트웨어 개발방법론이란?

소프트웨어 개발하기 위한 절차, 방법, 기술 등을 소프트웨어 개발방법론이라고 합니다. 더 효율적인 소프트웨어 개발을 위해 생긴 개념입니다.

소프트웨어 개발방법론 종류

소프트웨어 개발방법론에는 다양한 종류가 있습니다. 저는 가장 기본인 되는 방법론인 “폭포수 방법론”과 요즘 가장 많이 사용되는 방법론인 “애자일 방법론”에 대해 다루려고 합니다.

1. 폭포수 방법론(Waterfall Methodology)

폭포수 방법론은 가장 직관적이고 이해하기도 쉬운 기본적인 소프트웨어 개발방법론입니다. 폭포수가 위에서 아래로 자연스럽게 흐르듯 정해진 순서대로 흘러가며 개발을 진행하는 방식을 의미합니다.

폭포수 방법론
폭포수 방법론

총 5가지 단계로 구성되고 구성은 다음과 같습니다.

계획 및 분석(Discover) ➡️ 설계(Design) ➡️ 개발(Develop) ➡️ 테스트(Test) ➡️ 운영/유지보수(Deploy)

  • 계획 및 분석(Discover) : 요구 분석, 문제 해결 방법 도출을 수행하는 단계 입니다.
  • 설계(Design) : 구조 설계, 디자인, 상세 설계를 수행하는 단계 입니다.
  • 개발(Develop) : 코딩, 모듈 테스트, 통합 테스트를 수행하는 단계 입니다.
  • 테스트 : 시스템 테스트, 사용자 테스트, 인수 테스트를 수행하는 단계 입니다.
  • 운영/유지보수 : 운영, 유지보수, 보완, 기능 추가를 수행하는 단계 입니다.

2. 애자일 방법론(Agile Methodology)

요즘 IT 회사에서 가장 많이 사용하는 방법론입니다. 간단하게 설명하면 폭포수 방법론의 전체 과정을 작은 단위로 사이즈를 줄인 뒤 여러번 반복하는 방법론입니다. 그래서 폭포수 방법론과 큰 차이는 없습니다. 약간의 차이점은 아래 그림을 통해 설명합니다.

폭포수 vs 애자일
폭포수 vs 애자일
분류 폭포수 애자일
개요 계획 중심, 선형적인 개발 방법 반복적이고 점진적인 개발 방법
프로세스 단계별로 엄격하게 분리된 개발 단계 반복적인 개발 단계
요구사항 초기에 명확하게 정의하고 변경 어려움 유연하게 대처 가능
테스트 개발 완료 후 테스트 개발 초기부터 테스트
방향성 예측 가능한 방향성 변경 가능한 방향성
비용 변경 및 오류 수정 비용이 높음 초기 비용이 낮으나 유지보수 비용 높음
적용 분야 큰 규모의 프로젝트 중간, 작은 규모의 프로젝트
장점 명확한 계획과 예측 가능성, 문서화 용이성 요구사항 변경 대처 용이, 고객 요구사항 반영
단점 변경 어려움, 유연성 부족, 반응성 떨어짐 계획 변경 어려움, 초기 비용 낮지 않음

요즘 IT 회사의 프로젝트의 경우 개발 도중 계획이 수정되거나 추가되는 경우가 많기 때문에 한 번의 계획에 모든 것을 정하고 개발을 진행하는 형태보다는 빠르게 수정된 계획에 맞게 개발을 할 수 있는 애자일 방법론이 뜨는 것 같습니다.

이런 애자일 방법론도 다양한 방법론으로 나뉘는데요. 칸반, 스크럼 등 다양한 애자일 방법론 종류에 대해서도 알아봅시다. 애자일 방법론 더 알아보기

results matching ""

    No results matching ""