본문 바로가기
정보처리기사

애자일(Agile)

by project100 2023. 6. 10.

애자일(Agile) 방법론의 개념

절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발 방법론

개발 기간이 짧고 신속하며, 워터폴에 대비되는 방법론으로 최근 회사에서 각광받는 방법론

 

사람중심, 변화 유연, 효율적, 신속 적응적 경량 개발 방법론

개발 기간 짧고 신속, 폭포수 모형에 대비, 피드백, 유동적

Discover - Design - Develop - Test(반복)

 

 

애자일(Agile) 방법론의 등장배경

소프트웨어 개발 환경의 변화 : 개발 트렌드가 모바일 환경으로 변화, 시장 적시성과 잦은 배포의 중요성 부각

기본 개발 방법의 한계 : 문서 절차 위주의 전통적 방법에 대해 변화에 신속 대응이 어려움, 빠른적용, 효율적 개발의 필요성 증가

 

 

애자일(Agile) 방법론의 유형 

XP(eXtreme Programming)

의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론

1~3주의 반복 개발주기

5가지 가치 : 용기(Courage), 단순성(Simplicity), 의사소통(Communication), 피드백(Feedback), 존중(Respect)

12가지 기본원리

짝 프로그래밍, 공동 코드 소유, 지속적인 통합, 계획세우기, 작은 릴리즈, 메타포어, 간단한 디자인, 테스트 기반 개발, 리팩토링, 40시간 작업, 고객상주, 코드표준

 

* 테스트 기반 개발Test Driven Development(TDD) : 작성해야 하는 프로그램에 대한 테스트 먼저 수행, 실제 코드 작성

* 리팩토링(Refactoring) : 프로그램의 기능을 바꾸지 않으면서 중복 제거, 단순화 등을 위해 시스템 재구성한다는 원리

 

스크럼(SCRUM)

매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론

주요개념 : 백로그(Backlog), 스프린트(Sprint), 스크럼미팅, 스크럼마스터, 스프린트 회고, 번다운 차트

 

린(LEAN)

도요타의 린 시스템 품질 기법을 소프트웨어 개발 프로세스에 적용, Just In Time, Kanban(칸반) 보드 사용

7가지 원칙 : 낭비 제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화

 

 

애자일(Agile)과 전통적 방법론 비교

비교대상 애자일 방법론 전통적 방법론
계획수립 유동적 범위 설정 확정적 범위 설정
업무수행 팀 중심 업무 수행 관리자 주도적 명령과 통제, 개인 단위로 업무수행
개발/검증 반복주기단위 개발 / 검증 분석, 설계, 구현, 테스트 순차적 수행
팀관리 업무 몰입, 팀 평가 경쟁, 개별 평가
문서화 코드 강조 문서 강조
성공요소 고객 가치 전달 계획 / 일정 준수
유형 XP, 린, 스크럼 폭포수, 프로토타입, 나선형