소프트웨어 개발 방법론 (개발 프로세스 관점)
2025. 3. 12. 15:32ㆍ개발/개발 방법론
1. 전통적인 방법론
① 폭포수(Waterfall) 모델
- 단계별(요구사항 분석 → 설계 → 개발 → 테스트 → 유지보수)로 진행하는 선형 모델
- 각 단계를 완료해야 다음 단계로 진행 가능
- 문서화가 철저하며, 대규모 프로젝트나 명확한 요구사항이 있는 경우 적합
② V-모델(Verification & Validation)
- 폭포수 모델의 확장으로, 개발 단계와 테스트 단계가 병렬적으로 진행됨
- 각 개발 단계마다 대응되는 테스트 단계가 있음
- 높은 품질이 요구되는 프로젝트(안전-critical 시스템)에서 사용
2. 에자일(Agile) 방법론 계열
- 변화에 유연하게 대응하고, 지속적인 피드백을 기반으로 개발
- 빠른 프로토타입 개발과 반복적 개선을 강조
① 스크럼(Scrum)
- 역할(Role): 제품 책임자(Product Owner), 스크럼 마스터(Scrum Master), 개발팀
- 일정한 기간(스프린트, 보통 2~4주) 동안 특정 기능을 개발하고 반복 수행
- 매일 스탠드업 미팅(Daily Scrum) 진행
- 백로그(Product Backlog, Sprint Backlog) 관리
② 칸반(Kanban)
- 작업 흐름을 가시적으로 관리하는 방식
- 칸반 보드를 활용하여 'To Do → In Progress → Done' 등의 단계로 작업을 시각화
- WIP(Work In Progress, 진행 중인 작업 수)를 제한하여 과부하 방지
③ XP(eXtreme Programming)
- 애자일 개발 중에서도 개발자의 기술적 실천(practices)에 초점
- 핵심 원칙: 테스트 주도 개발(TDD), 페어 프로그래밍, 지속적 통합(CI), 단순한 설계, 작은 릴리즈
- 코드 품질 향상과 유지보수성 개선에 효과적
④ 린 소프트웨어 개발(Lean Software Development)
- 도요타 생산 방식(Lean Manufacturing)에서 파생된 방식
- 7가지 원칙: 낭비 제거, 품질 내재화, 빠른 인도, 팀원 존중, 학습 촉진, 전체 최적화, 지연 결정 최소화
⑤ DSDM(Dynamic Systems Development Method)
- 애자일 기반이지만, 프로젝트 관리 요소가 강화된 방법론
- 타임박싱(Timeboxing)을 사용하여 기한 내 개발을 보장
3. 하이브리드 및 기타 방법론
① RUP(Rational Unified Process)
- IBM에서 개발한 방법론으로, 폭포수 모델과 애자일 개념을 혼합
- **4단계(입문, 세부 정의, 구축, 인도)**로 이루어지며 반복적 진행
② SAFe(Scaled Agile Framework)
- 대규모 조직에서 애자일을 확장하기 위한 방법론
- 여러 개의 팀이 협력할 때 적용
③ Scrum@Scale / LeSS(Large-Scale Scrum)
- 스크럼을 여러 팀에서 확장할 때 사용하는 방식
④ DevOps
- 개발(Development)과 운영(Operations)을 통합하여 지속적 배포 및 운영 자동화를 강조
- CI/CD(Continuous Integration/Continuous Deployment), IaC(Infrastructure as Code) 등의 개념 포함
이외에도 도메인이나 기업 문화에 따라 다양한 변형 방법론이 존재합니다. 필요에 따라 애자일과 전통적인 방법론을 혼합하여 사용하는 경우도 많습니다.