CS

애자일(Agile)에 대하여

1. 개념

애자일은 소프트웨어 개발 방법 이론 중 하나로 신속한 반복 작업을 통해 소프트웨어를 개발하고
변화를 적극 수용하여 소프트웨어를 지속적으로 개선해나가는 방법을 의미한다.

 

애자일은 소프트웨어를 개발하기 위한 어떤 규칙을 제공하는 것이 아니라

개발에 필요한 가치를 제공하는 가치 체계이자 업무를 바라보는 관점이다.

 

따라서 애자일(Agile)은 단어의 뜻 그대로 기민하게 소프트웨어를 개발하기 위한 모든 방법을 포함한다.

애자일 방식의 개발 프로세스에는 XP, Scrum, TDD 등이 있다.

2. 배경

애자일은 전통적인 개발 방법인 워터풀 방식의 문제점을 해결하고자 등장했다.

 

공장 생산 라인의 제조 방법에서 파생되어 소프트웨어 개발에 적용된 워터풀 방식은

체계적인 절차와 세부적인 계획을 통해서 최초 사양과 동일한 소프트웨어를 만드는 것이 목적이었다.

 

모든 절차와 계획을 자세히 문서화했기 때문에 개발 프로세스를 이해하기 쉽다는 장점이 있었지만

궁극적으로 요구사항을 만족하는 제품을 만들기 위해서 매우 많은 자원이 소비됐다.

 

세부적인 계획서를 바탕으로 개발 프로세스가 진행되기 때문에

그 중 한 단계를 작업하는데 기본적으로 시간이 오래 소요되는데다가

이전 단계를 마쳐야 다음 단계로 넘어갈 수 있어서 동시에 여러 작업이 불가했다.

 

결과적으로 작동 가능한 소프트웨어를 만들어도, 미처 예상하지 못한 오류 또는

요구사항이 변경되는 문제가 발생했을때 이것을 수용하고 수정하는데 많은 시간과 비용이 들었다.

당시에 인터넷 시대가 도래하면서 빠르게 시장 상황이 바뀌었고 그에 따라 요구사항도 빠르게 변경됐다.

이런 워터풀 방식에 의문을 품은 개발자들이 더 효율적이고 바람직한 개발 방식에 대한

선언문을 발표하여 애자일이 탄생했다.


3. 애자일의 장점

프로세스 및 툴보다 개인과 개인의 상호작용이
포괄적인 문서보다 작동 가능한 소프트웨어가
계약 협상보다 고객과의 협업이
계획을 따르는 것보다 변화에 대응하는 것이 우선 가치이다.

 

애자일은 유연성적응성을 고려하기 때문에 결과적으로 빠르게 제품을 만들면서 품질을 확보할 수 있다.

 

짧은 시간동안 일부 기능을 개발 및 테스트하고, 그 과정에서 발생한 문제와

피드백을 수용하여 기능을 적절히 수정할 수 있다.

 

이런 과정을 반복함으로써 작동 가능한 소프트웨어를 빠르게 개발하고

소프트웨어를 지속적으로 개선하여 품질을 높일 수 있다.


4. 스크럼(Scrum)

애자일 방식의 소프트웨어 개발 프로세스 중 하나로 프로젝트 관리를 위한 상호, 점진적 개발 방법 이론이다.

스크럼의 구성 요소

1) 제품 백로그: 기능, 개선사항 등 제품에 대한 모든 요구사항을 나열한 목록

고정된 것이 아니라 변화에 따라 지속적으로 업데이트된다.

2) 스프린트: 과제를 수행하는 반복적인 개발 주기

하나의 스프린트가 종료되면 바로 다음 스프린트가 진행된다.

3) 스프린트 백로그: 하나의 스프린트에서 완료해야 하는 과제(작업) 목록

4) 스프린트 계획 회의: 스프린트 백로그를 계획하는 회의

5) 일일 스크럼 회의: 매일 진행되는 미팅으로 어제 한일, 오늘 할일, 이슈 등을 공유하는 회의


참고 문서

https://ko.wikipedia.org/wiki/%EC%95%A0%EC%9E%90%EC%9D%BC_%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EA%B0%9C%EB%B0%9C

 

애자일 소프트웨어 개발 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 애자일 소프트웨어 개발(Agile software development) 혹은 애자일 개발 프로세스는 소프트웨어 엔지니어링에 대한 개념적인 얼개로, 프로젝트의 생명주기동안 반복적

ko.wikipedia.org

https://www.itworld.co.kr/news/232234

 

'애자일은 뭐고 폭포수는 뭐야?' 애자일 방법론 역사 이해하기

요즘은 모든 기술 조직이 어떤 형태로든 애자일 방법론을 실천하거나 그렇게 하고 있다고 믿는 것 같다. 소프트웨어 개발에 처음 발을 들여놓는 사람

www.itworld.co.kr

https://www.redhat.com/ko/devops/what-is-agile-methodology

 

애자일 방법론(Agile Methodology) 개념, 방식, 기법

애자일 방법론이란 신속한 반복 작업을 통해 실제 작동 가능한 소프트웨어를 개발하여 지속적으로 제공하기 위한 소프트웨어 개발 방식을 뜻합니다.

www.redhat.com

https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%81%AC%EB%9F%BC_(%EC%95%A0%EC%9E%90%EC%9D%BC_%EA%B0%9C%EB%B0%9C_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4) 

 

스크럼 (애자일 개발 프로세스) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 스크럼(Scrum)은 프로젝트 관리를 위한 상호, 점진적 개발방법론이며, 애자일 소프트웨어 개발 중의 하나이다. 스크럼(Scrum)은 소프트웨어 개발 프로젝트를 위하

ko.wikipedia.org