728x170
해당 글에서는 소프트웨어 개발방법론에 대해 이해하고 각각의 종류에 대해 이해를 돕기 위해 작성한 글입니다.
1) 소프트웨어 개발방법론
💡 소프트웨어 개발 방법론 이란?
- 소프트웨어를 개발하기 위한 '구체적인 절차, 방법, 기술 등을 정리'한 것입니다.
- 이를 통해 개발자들이 프로젝트를 효율적으로 관리하고 소프트웨어를 더욱 품질 높게 개발할 수 있도록 도와줍니다.
2) 폭포수 방법론(Waterfall Methodology)
💡 폭포수 방법론(Waterfall Methodology)이란?
- 소프트웨어 개발 방법론 중 하나로 개발 생명 주기를 폭포수가 내려오는 것처럼 순차적으로 ‘일련의 단계’로 나누어 개발하는 방법을 의미합니다.
- 해당 방법론을 통해 각 단계는 이전 단계의 결과물을 입력으로 받아 다음 단계의 결과물을 출력하는 구조를 가지고 있습니다.(방법론의 원칙적으로 완료된 단계(이전 단계)로 돌아갈 수는 없습니다)
- 계획 및 분석(Discover) - 설계(Design) - 개발(Develop) - 테스트 - 운영/유지보수 단계를 가집니다.
용어 | 설명 |
계획 및 분석(Discover) | 요구 분석, 문제 해결 방법 도출을 수행하는 단계 입니다. |
설계(Design) | 구조 설계, 디자인, 상세 설계를 수행하는 단계 입니다. |
개발(Develop) | 코딩, 모듈 테스트, 통합 테스트를 수행하는 단계 입니다. |
테스트 | 시스템 테스트, 사용자 테스트, 인수 테스트를 수행하는 단계 입니다. |
운영/유지보수 | 운영, 유지보수, 보완, 기능 추가를 수행하는 단계 입니다. |
3) 애자일 방법론(Agile Methodology)
💡 애자일 방법론(Agile methodology)이란?
- 소프트웨어 개발 방법론 중 하나로 ‘반복적이고 점진적인 개발 방법’을 통해 개발을 진행하는 것을 특징으로 합니다.
- 개발 초기부터 고객의 요구 사항을 반영하여 빠르게 개발하고 그 과정에서 지속적으로 피드백을 받아 개발을 진행합니다.
- 각각의 단계는 계획 및 분석(Discover) - 설계(Design) - 개발(Develop) - 테스트단계를 '작은 단위의 사이클로 분리'하고 사이클이 종료가 되면 다음 사이클로 반복적으로 진행합니다.
- 애자일 방법론의 종류는 대표적으로 칸반(Kanban), 스크럼(Scrum), 익스트림 프로그래밍 (Extreme Programming, XP)이 존재합니다.
💡 애자일 방법론의 주요 용어
용어 | 설명 |
스프린트(Sprint) | 애자일 방법론 중 스크럼(Scrum)에서 사용되는 용어로 고객 요구사항에 대한 개발을 정해진 기간 안에 완료하는 “작업 주기”를 의미합니다. |
백로그(Backlog) | 개발할 기능 또는 작업 목록입니다. 스프린트 전에 우선순위를 결정하고, 스프린트 동안 개발될 목록으로 사용됩니다. |
스탠드업 미팅(Stand-up Meeting) | 스크럼에서 사용되는 미팅으로, 매일 아침 팀원들이 모여 진행 상황과 문제를 공유하는 미팅입니다. |
이터레이션(Iteration) | 애자일 방법론에서 사용되는 용어로, 고객 요구사항을 단계적으로 수행하며, 반복적인 개발과 검증을 통해 소프트웨어를 개발하는 것을 의미합니다. |
인큐베이션(Incubation) | 애자일 방법론에서 사용되는 용어로, 새로운 아이디어나 기능을 개발하기 전에 실험적으로 검증하는 단계를 의미합니다. |
💡 [참고] 애자일 방법론의 종류에 대해 궁금하시면 이후에 작성한 글을 참고하시면 도움이 됩니다.
4) 요약 : 폭포수 방법론, 애자일 방법론 비교
💡 폭포수 방법론과 애자일 방법론을 비교하여서 각각에 대해 이해하고 비교합니다.
분류 | 폭포수 방법론(Waterfall Methodology) | 애자일 방법론(Agile Methodology) |
개요 | 계획 중심, 선형적인 개발 방법 | 반복적이고 점진적인 개발 방법 |
프로세스 | 단계별로 엄격하게 분리된 개발 단계 | 반복적인 개발 단계 |
요구사항 | 초기에 명확하게 정의하고 변경 어려움 | 유연하게 대처 가능 |
테스트 | 개발 완료 후 테스트 | 개발 초기부터 테스트 |
방향성 | 예측 가능한 방향성 | 변경 가능한 방향성 |
비용 | 변경 및 오류 수정 비용이 높음 | 초기 비용이 낮으나 유지보수 비용 높음 |
적용 분야 | 큰 규모의 프로젝트 | 중간, 작은 규모의 프로젝트 |
장점 | 명확한 계획과 예측 가능성, 문서화 용이성 | 요구사항 변경 대처 용이, 고객 요구사항 반영 |
단점 | 변경 어려움, 유연성 부족, 반응성 떨어짐 | 계획 변경 어려움, 초기 비용 낮지 않음 |
💡 결론적으로 서로간의 가장 큰 차이점은 '수행 단계의 반복 여부'입니다.
- '폭포수 방법론' 같은 경우는 수행 과정에서 하나의 단계를 완료하게 되면 완료된 단계(이전 단계)로 돌아갈 수 없습니다.
- 그러나 '애자일 방법론'의 경우는 하나의 단계가 되는 과정을 쪼개서 단계를 수행하고 이전 단계로 돌아가서 수정을 하게 되는 시점이 된다면 돌아가서 수행을 할 수 있습니다.
5) 린 방법론(Lean Methodology)
💡 린 방법론(Lean Methodology)이란?
- 소프트웨어 개발 방법론 중 하나로 이전 제조 산업에서 비롯된 개발 방법론으로 ‘낭비를 최소화하고 가치를 최대화하는 것’을 목적으로 합니다.
- 린 방법론은 제품을 개발하는 전 과정에서 고객의 피드백을 수시로 반영하며, 불필요한 작업을 최소화하여 생산성을 높이는 것을 목표로 합니다.
- 린은 제조 산업에서 사용하는 방법을 소프트웨어 개발방법론과 결합하여 사용합니다. 린 방법론의 종류는 린 소프트웨어 개발 (LSD), 린 UX, 린 스타트업, 린 애자일, 린 시스템스 엔지니어링이 있습니다
주요 용어 | 설명 |
MVVP(Minimum Viable Product) | 가능한 최소한의 기능으로 구성된 제품 또는 서비스 |
A/B 테스트(A/B Test) | 두 가지 버전의 제품 또는 서비스를 비교하여 어느 것이 더 효과적인지를 테스트하는 방법 |
피벗(Pivot) | 실패한 가설이나 전략을 버리고 새로운 가설이나 전략을 시도하는 것 |
캔버스(Business Model Canvas) | 비즈니스 모델을 구성하는 주요 요소들을 시각적으로 정리한 도구 |
린 캔버스(Lean Canvas) | 캔버스를 린 방법론에 맞게 수정한 것으로, 제품 개발에 필요한 핵심 요소들을 시각적으로 정리한 도구입니다. |
1. 린 스타트업(Lean Startup)
💡 린 스타트업(Lean Startup)
- 스타트업에서 사용되는 린 방법론 중 하나로 ‘작은 단위로 빠르게 실험하고 검증하는 것’을 중요시합니다.
- 특히 린 스트업의 핵심은 “적극적인 실험”입니다. 제품이나 서비스를 빠르게 출시한 후 시장의 피드백을 수집하고 그에 따라 제품이나 서비스를 조정합니다.
- 적극적인 고객 피드백 수집과 실험적인 개발 방법을 채용하여 제품 개발에 대한 초기 비용을 줄이고, 빠르게 실패하며 성공할 수 있는 방법을 모색합니다.
💡 린 스타트업의 과정
- 아이디어 도출(IDEAS) → 가설 설정과 실험 설계(BUILD & PRODUCT) → 실험 실행과 피드백 수집(MEASURE) → 결과 분석 및 개선(DATA & LEANRN)
1. 아이디어 도출 단계에서는 문제 발견과 고객 니즈 파악을 위한 시장 조사를 수행합니다.
2. 가설 설정과 실험 설계 단계에서는 목표를 설정하고 가설을 설정하고 가설을 테스트할 수 있는 실험을 설계합니다.
3. 실험 실행과 피드백 수집 단계에서는 설계한 실험을 실행하고 고객의 피드백을 수집합니다.
4. 결과 분석과 개선 단계에서는 수집한 데이터를 분석하여 가설을 검증하고 제품이나 서비스를 개선합니다.
오늘도 감사합니다. 😀
그리드형
'공통 > 개발방법론' 카테고리의 다른 글
[개발방법론] TDD, BDD 이해하기-1 : 정의 및 수행과정 (2) | 2023.11.05 |
---|---|
[개발방법론] 스크럼(Scrum) 방법론 이해하기 (0) | 2023.03.14 |
[개발방법론] 애자일 방법론과 종류: 칸반, 스크럼, 익스트림 프로그래밍 (0) | 2023.03.11 |