애자일(Agile) 방법론이란?
- 날렵한, 재빠른이란 의미로 소프트웨어 개발 중 설계 변경에 신속히 대응하여 요구사항을 수용할 수 있다.
- 절차와 도구보다 개인과 소통을 중요시하고 고객과의 피드백을 중요하게 생각한다.
- 소프트웨어가 잘 실행되는데 가치를 둔다.
- 소프트웨어 배포 시차를 최소화할 수 있다.
애자일 방법론 유형에는 대표적으로 3가지가 있다.
익스트림프로그래밍(XP, eXtremeProgramming), 스크럼(Scrum), 린(LEAN), DSDM, FDD, Crystal
1. 익스트림프로그래밍(XP, eXtremeProgramming) 기법
1-1. XP의 핵심 가치
- 용기(Courage)
- 단순성(Simplicity)
- 의사소통(Communication)
- 피드백(Feedback)
- 존중(Respect)
# 용단의피존
1-2. XP의 기본원리(실천사항)
- Whole Teman(전체 팀)
- Small Releases(소규모 릴리즈)
- Test-Driven Development(테스트 주도 개발)
- Continuous Intergration(계속적인 통합)
- Collective Ownership(공동 소유권)
- Pair Programming(짝 프로그래밍)
- Design Improvement(디자인 개선) 또는 Refactoring(리팩토링)
2. 스크럼(Scrum) 기법
- 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심의 개발 방법론이다.
- 팀원 스스로가 스크럼 팀을 구성하여 개발의 효율성을 높이는 기법
2-1. 스크럼 팀
- 제품 책임자(PO, Product Owner): 요구사항이 담긴 백로그를 작성하는 주체
- 스크럼 마스터(SM, Scrum Master): 스크럼 팀이 스크럼을 잘 수행할 수 있도록 가이드 역할을 수행함
- 개발팀(DT, Development Team): 제품 책임자와 스크럼 마스터를 제외한 모든 팀원으로 제품 개발을 수행함
2-2. 스크럼 주요 진행 과정
제품 백로그 > 스프린트 계획 > 스프린트 백로그 > 스프린트(2~4주, 일일 스크럼, 번다운 차트) > 스프린트 리뷰 > 스프린트 회고
2-3. 스크럼 용어개념
- 제품 백로그: 제품의 가능한 모든 요구사항에 대한 우선순위화 된 작업의 목록
- 스프린트 계획: 스프린트에서 수행되어야 할 작업들을 스프린트 계획 미팅에서 정한다.
- 스프린트 백로그: 스프린트를 위해 선택된 제품 백로그 항목들의 집합이며 스프린트 목표를 실현하기 위한 계획서
- 스프린트: 스프린트는 짧은 기간(2~4주) 동안 제품이나 서비스 개발을 지속적으로 개선하며 피드백을 받아 고쳐나간다.
- 일일 스크럼: 스크럼 팀은 일일 스크럼(약 15분)을 통해 스프린트가 목표에 맞게 진행이 되고 있는지, 스프린트 백로그의 작업들이 잘 완성되고 있는지 검토한다.
- 번다운 차트: 스프린트 기간동안에 개발된 스프린트 백로그 비율을 표시하는 차트
- 스프린트 리뷰: 스크럼 팀과 제품 이해관계자들이 해당 스프린트에서 무엇이 완료되었는지에 대해 함께 확인하는 리뷰이다.
- 스프린트 회고: 스크럼 팀이 스스로를 되돌아 보고 다음 스프린트 동안 무엇을 개선할 수 있을지 계획한다.
3. 린(LEAN) 기법
- 도요타의 린 시스템 품질 기법을 소프트웨어 개발에 적용한 것, 낭비 요소를 제거하여 품질을 향상한다.
- JIT(just in time), 칸반(kanban)보드를 사용한다.
3-1. 7가지 원칙
- 낭비의 제거: 불필요한 코드나 기능 불분명한 요구사항 등 품질의 영향을 미치지 않는 것들을 제거한다.
- 품질 내재화: 개발 초기부터 품질을 향상하도록 모듈화 한다.
- 지식의 창출: 학습을 하고 지식을 창출한다.
- 늦은 확정: 중요한 문제에 대한 의사결정을 최대한 미룬다.
- 빠른 인도: 최대한 빨리 결과물을 인도한다.
- 사람 존중
- 전체 최적화: 요구사항 수집부터 제품을 릴리스하는 시점까지 모든 프로세스를 최적화 한다.
'자격증 > 정보처리기사(필기)' 카테고리의 다른 글
객체지향 (0) | 2023.05.10 |
---|---|
UI(User Interface, 사용자 인터페이스) (0) | 2023.05.10 |
요구사항 분석 (0) | 2023.05.10 |
UML(Unifield Modeling Language) (0) | 2023.05.09 |
[정보처리기사] 1과목 소프트웨어 설계 (0) | 2023.05.09 |
댓글