소프트웨어 개발 방법론 (개발 프로세스 관점)

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) 등의 개념 포함

이외에도 도메인이나 기업 문화에 따라 다양한 변형 방법론이 존재합니다. 필요에 따라 애자일과 전통적인 방법론을 혼합하여 사용하는 경우도 많습니다.