
: 작업 계획을 짧은 단위로 세우고, 시제품을 만들어 나가는 사이클을 반복함으로써 고객의 요구 변화에 유연하고도 신속하게 대응하는 개발 방법론

1. 반복과 증분 개발:
에자일 방식은 작은 주기(일반적으로 2~4주)로 작업을 나누어 개발하는데, 각 주기의 끝에 작동 가능한 제품 또는 소프트웨어 버전을 생성한다.
2. 고객 중심:
에자일은 고객의 요구 사항을 이해하고 우선시한다. 개발 초기에 요구 사항을 고정하는 것이 아니라, 변경과 새로운 요구 사항을 수용한다.
3. 자주 피드백:
에자일은 개발 작업 중에 자주 피드백을 받고, 필요할 때 조정을 가한다. 이를 통해 문제를 조기에 발견하고 해결할 수 있다.
3. 자기 조직 팀:
에자일 팀은 자기 조직되며, 작업을 계획하고 관리한다. 팀 멤버들은 다양한 역할을 수행하며 서로 협력한다.
4. 반복적 검토 및 개선:
에자일 방식은 주기마다 프로젝트를 검토하고, 계획을 개선하며 지속적으로 성과를 향상시킨다.

계획 -> 설계(디자인) -> 개발(발전) -> 테스트 -> 검토(피드백)
1. 계획:
고객과 사용자가 원하는 바를 파악하고, 타당성을 조사하여, SW 기능과 제약조건을 정의하는 명세서 작성, 대상이 되는 문제 영역과 사용자가 원하는 task를 이해하는 단계이다.
2. 설계(디자인):
기획 의도에 맞는 설계, 디자인 추가, 수정하는 단계이다.
3. 개발(발전):
설계 단계에서 만들어진 설계서를 바탕으로 프로그램을 작성, 코딩, 디버깅, 단위/통합테스트 수행한다.
4. 테스트:
발생 가능한 실행 프로그램 오류를 발견, 수정하는 단계이다.
5. 검토(피드백):
기획의도를 파악하고 시험결과와 기획에 따라 수정한 부분을 제시하는 단계이다.
: 소프트웨어 개발 및 프로젝트 관리를 위한 전통적인 접근 방식 중 하나로, 일련의 선형 단계를 따라 프로젝트를 진행한다.

1. 요구 분석 (Requirements Analysis):
프로젝트의 목표 및 요구 사항을 정의하고 문서화한다. 이 단계에서는 모든 요구 사항을 미리 정확하게 파악해야 한다.
2. 시스템 설계 (System Design):
요구 사항에 기반하여 시스템 아키텍처 및 설계를 수립한다.
3. 구현 (Implementation):
설계된 시스템을 실제로 개발하고 코딩하는 단계이다.
4. 시험 및 검증 (Testing and Verification):
개발된 소프트웨어를 테스트하고, 요구 사항과 일치하는지 확인한다.
5. 유지 보수 (Maintenance):
소프트웨어가 출시된 후에 발생하는 버그 수정, 기능 개선 및 지원 작업을 포함한다.

폭포수 모델:
선형적, 미리 계획, 요구 사항을 초기에 정확하게 수집, 변경 어려움,
피드백은 프로젝트 맨 끝에.
에자일 방식:
반복적, 민첩, 요구 사항의 변화 수용, 지속적인 피드백, 프로젝트 관리가 유연.
1. 개발 접근 방식:
폭포수 모델: 선형적인 단계별 접근.
에자일 방식: 반복적이고 유연한 접근, 변경에 대응.
2. 요구 사항 처리:
폭포수 모델: 요구 사항 정확하게 미리 수집.
에자일 방식: 요구 사항 변화를 고려하며 점진적으로 개선.
3. 피드백과 검토:
폭포수 모델: 주로 프로젝트 맨 끝에서 피드백.
에자일 방식: 주기적이고 지속적인 피드백 통합.
4. 프로젝트 관리와 제어:
폭포수 모델: 엄격한 계획과 변경 관리.
에자일 방식: 유연하게 프로젝트 관리, 민첩한 변경 관리.
5. 리스크 관리:
폭포수 모델: 초기 리스크 관리.
에자일 방식: 지속적인 리스크 관리와 대응.
폭포수 모델은 계획과 예측 가능성을 강조하고 요구 사항의 변경을 어렵게 처리하는 반면,
애자일 방식은 변화에 대응하고 고객의 요구를 중요시하며 프로젝트를 반복적으로 개선하는 유연한 방식을 제공한다.
에자일 방식은 고객 만족, 민첩성, 품질 향상, 프로젝트 가시성, 자기 조직 팀, 리스크 관리, 창의성 및 협력을 촉진하는 등 다양한 이점을 제공하여 많은 조직에서 선택하며 사용한다.

1. 고객 만족:
에자일은 고객의 의견과 요구를 중시한다. 프로젝트 중에 고객의 피드백을 적극 수용하여 원하는 제품을 빠르게 제공할 수 있다.
2. 변화에 대한 민첩성:
현대 비즈니스 환경에서는 변화가 빈번하게 발생한다. 에자일은 요구 사항의 변화에 대응할 수 있어 민첩한 개발을 가능하게 한다.
3. 품질 향상:
에자일은 지속적인 테스트와 피드백을 통해 빈번한 검증을 허용함으로써, 제품의 품질을 향상시킬 수 있다.
4. 프로젝트 가시성:
에자일은 주기적으로 작업 결과물을 제공하므로 프로젝트의 진행 상황을 빠르게 파악할 수 있다.
5. 자기 조직 팀:
에자일은 팀원들에게 자율성과 책임을 부여한다. 팀원들은 스스로 작업을 조직하고 관리하며 효율적인 의사 소통과 협력을 통해 작업을 완료한다.
6. 리스크 관리:
작은 주기로 프로젝트를 나누어 진행하므로, 문제가 발생했을 때 빠르게 대응할 수 있다. 또한 지속적인 리스크 평가를 통해 프로젝트 위험을 최소화할 수 있다.
7. 팀의 창의성과 협력 촉진:
에자일은 팀원 간의 협력과 의견 공유를 중요시하므로, 창의적인 해결책을 도출할 수 있는 환경을 제공한다.