개발 관련/개발 방법론

폭포수 방법론 / 애자일 방법론 이해

라이언 IT 2023. 1. 23. 18:27

개발 방법론을 소개하면서 나 또한 이해하는 시간을 가지려 한다.

아직 개발 방법론을 통해 프로젝트를 진행한 경험은 없지만, 늘 듣기만 했었기에 이참에 정리해본다.

 

제가 이해한 내용에서 틀린 부분이 있다면 피드백 부탁드립니다.

 


폭포수 방법론(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) 스프린트 리뷰/회고

[장점]
 - 개발 중 요구사항이 변경되었을 경우, 해당 요구 사항 반영이 용이하다.

   -> 스프린트 내에서 피드백 처리 가능
 - 스프린트 내 결과물이 나오기 때문에 요구사항의 변화와 문제점을 빠르게 파악할 수 있음
 - 지속적으로 테스트 되기에 개발 초기에 버그를 발견할 수 있음

[단점]
 - 스프린트 내 피드백 수용 등 실용적으로 개발을 하기에 체계화된 문서가 적을 수 있음
 - 빈번한 수정이 발생할 수 있음