1 분 소요

Agile 방법론

👉🏻 Agile Manifesto

Agile Manifesto (핵심 가치)

공정과 도구보다 개인과의 상호작용
포괄적인 문서보다 작동하는 소프트웨어
계약 협상보다 고객과의 협력
계획을 따르기보다 변화에 대응하기

Agile 원칙 (요약)

  • 개발 후반부라도 요구사항 변경 수용
  • 짧은 주기(2주~2개월)로 작동하는 소프트웨어 전달
  • 비즈니스 관계자와 개발자의 협력 중시
  • 개발 팀 내부 효율적 소통 = 면대면 대화
  • 진척 척도 = 작동하는 소프트웨어
  • 지속 가능한 개발 속도 유지
  • 기술적 탁월성과 좋은 설계에 대한 관심
  • 단순성(안 하는 일의 양 극대화)
  • 자기 조직적인 팀 구성
  • 정기적으로 회고하여 효과성 개선

👉 12 Principles of Agile Software

Agile Software Development

  • 유연성, 협업, 고객 만족을 중시하는 SW 개발 방법론
  • Agile Manifesto에 기반
  • 반복적(iterative) & 점진적(incremental) 접근법
  • 빠르고 자주 작동하는 제품을 제공하는 것을 강조

Agile 개발 사이클

  1. Meet
  2. Plan
  3. Design
  4. Develop
  5. Test
  6. Evaluate

→ 6에서 다시 1로 순환하는 구조

Agile Practices

  • Scrum: 짧은 반복 주기(sprint), 매일 stand-up, product backlog 관리
  • Kanban: 보드 기반 시각적 관리 (작업 카드/스티키 노트 활용)
  • CI (지속적 통합): 코드 변경 사항을 공유 저장소에 자주 병합 → 충돌을 조기 식별 및 해결
  • TDD (테스트 주도 개발): 코드 작성 전 자동화 테스트를 먼저 작성 → 요구사항 충족 검증 & 결함 최소화
  • Pair Programming (쌍 프로그래밍): 두 개발자가 함께 작업 → 코드 품질 향상, 지식 공유, 결함 감소

📌 참고: GeeksforGeeks - Agile Software Development


Waterfall 모델 (워터폴)

Agile 이전에 가장 널리 쓰였던 전통적 SW 개발 방법론.
각 단계가 순차적(one-way)으로 진행되어 이전 단계로 돌아가기 어렵다.

Waterfall 개발 단계

  1. 요구사항 분석 (Requirements)
  2. 설계 (Design)
  3. 구현 (Implementation)
  4. 테스트 (Verification)
  5. 배포 & 유지보수 (Maintenance)

특징

  • 명확한 문서화와 단계별 산출물 중시
  • 프로젝트 초기에 요구사항을 최대한 완벽히 정의해야 함
  • 변경 사항 반영이 어렵고 비용이 큼
  • 안정성과 예측성은 뛰어나지만 유연성은 낮음

Agile vs Waterfall 비교

구분 Agile Waterfall
개발 방식 반복적·점진적 (Iterative & Incremental) 순차적 (Sequential)
요구사항 변경 수용 가능, 유연함 초기 정의 고정, 변경 비용 큼
결과물 전달 짧은 주기(2주~2개월)마다 작동 SW 제공 최종 단계에서 한 번에 제공
고객 참여 지속적 협력 초기 요구사항 정의 후 제한적 참여
문서화 최소한, 작동하는 SW 중심 문서화와 절차 중시
위험 관리 초기부터 지속적 피드백 후반에 문제 발견 가능성 ↑