폭포수 방법론 / 애자일 방법론 이해
개발 방법론을 소개하면서 나 또한 이해하는 시간을 가지려 한다.
아직 개발 방법론을 통해 프로젝트를 진행한 경험은 없지만, 늘 듣기만 했었기에 이참에 정리해본다.
제가 이해한 내용에서 틀린 부분이 있다면 피드백 부탁드립니다.
폭포수 방법론(Waterfall)
소프트웨어 개발 단계가 위에서 부터 아래로 폭포에서 물이 떨어지듯이 순차적으로 진행 되는 것을 뜻한다.
[개발 단계]
- 요구사항분석(Requirement) -> 설계(Design) -> 구현(Implementation) -> 검증(Vertification) -> 유지보수(Maintenance)
[장점]
- 전체 과정이 수직적으로 진행되기에 각 과정에 대한 이해가 용이하다.
[단점]
- 앞 단계 일이 끝나지 않으면 뒤 단계를 수행할 수 없다.
- 요구사항이 변경된 경우 전체 단계 검토로 인하여 시간과 비용이 매우 많이 늘어남
- 개발 중 고객의 피드백/요구사항 반영하기 어려움
애자일 방법론
변화에 민첩하게 대응하며 소프트웨어의 작은 구성 요소를 신속하게 제공하여 고객의 만족도를 개선하는 방법론
[용어 정리]
1) 스프린트(기간)
- 작은 기능 하나에 대한 [계획, 개발, 테스트, 기능 완료] 주기를 일컫는 말이다.
- 1~4주 사이의 기간 동안 스프린트 진행
- 기간이 끝나면 스프린트 리뷰/회고 시간도 가짐
2) 스크럼(Scrum)
- 애자일 방법론을 잘 활용하기 위한 도구이다.
- 스프린트에 대한 각 개발 단위이다.
[스크럼 주요 단계]
1) 제품 백로그(Product Backlog)
- 제품 책임자(Product Owner)가 제품의 기능 및 우선순위에 따라 정한다.
- 개발 제품에 대한 전체 요구 사항을 작성한다.
2) 스프린트 백로그(Sprint Backlog)
- 각각 스프린트 목표에 도달하기 위해 필요한 작업 목록이다.
3) 스프린트(Sprint)
- 반복적인 개발 주기를 정한다. (보통 1~4주)
- 작은 기능 하나에 대한 계획/개발/테스트/완료를 수행하는 주기이다.
* 계획 ~ 제품 리뷰/회고까지가 1 스프린트 이다.
4) 데일리 스크럼 미팅(Daily Scrum Meeting)
- 매일 진행하는 미팅으로 어제/오늘 업무에 대한 내용 등을 공유한다.
- 주로 15분 정도로 짧게 매일 한다.
5) 스프린트 리뷰/회고
[장점]
- 개발 중 요구사항이 변경되었을 경우, 해당 요구 사항 반영이 용이하다.
-> 스프린트 내에서 피드백 처리 가능
- 스프린트 내 결과물이 나오기 때문에 요구사항의 변화와 문제점을 빠르게 파악할 수 있음
- 지속적으로 테스트 되기에 개발 초기에 버그를 발견할 수 있음
[단점]
- 스프린트 내 피드백 수용 등 실용적으로 개발을 하기에 체계화된 문서가 적을 수 있음
- 빈번한 수정이 발생할 수 있음