본문 바로가기
IT/IT 잡지식

애자일 (Agile) 개발 방법론

by 큰공 2021. 1. 5.
728x90
반응형

 

들어가며

 SW개발자라면 요즘 들어 특히 애자일(Agile) 에 대해서 많이들 들어 보셨을 겁니다. 대학에서 소프트웨어 공학 수업을 들을 때만해도, 하나의 챕터에서어 한 항목 정도로 다루던 내용이였는데, 요즘들어서 대세가 된 소프트웨어개발 방법론 중에 하나입니다.

 애자일(Agile)에 대해서 복습도 할겸 제가 이해한 내용에 대해서 정리해보고자 합니다.

 

SW변경량의 증대

 시대가 가면서 사용자의 요구사항이 증대되고, 요구사항이 다각도로 변경됨에 따라, 소프트웨어 복잡도는 지수형태로 증가하게 됩니다.

 SW가 증가되면 증가될수록 품질 지수는 하락하게 될 수 밖에 없는게 정설입니다. 이 품질 지수를 어떻게 하면 SW변경량이 높아짐에도 불구하고 높이느냐가ㅡ 바로 좋은 SW 이냐 아니냐를 를 결정할 수 있는 것입니다.

https://seanblanchfield.com/taking-software-seriously/

 

폭포수 모델 (WaterFall)

 과거 정설로 사용하던 SW개발론 중의 하나인 폭포수 모델입니다. 폭포수 모델은 어떠한 장점과 단점을 가지길래, 최근들어 해당 방법을 사용하지 않고, 다른 방법을 찾게 될 까요? 

 폭포수 모델의 정의에 대해서 살펴 보겠습니다.

순차적인 소프트웨어 개발 프로세스(소프트웨어를 만들기 위한 프로세스)로, 개발의 흐름이 마치 폭포수처럼 지속적으로 아래로 향하는 것처럼 보이는 데서 이름이 붙여졌다. 이 폭포수 모델의 흐름은 소프트웨어 요구사항 분석 단계에서 시작하여, 소프트웨어 설계, 소프트웨어 구현, 소프트웨어 시험, 소프트웨어 통합 단계 등을 거쳐, 소프트웨어 유지보수 단계에까지 이른다

 가장 큰 특징은 "순차적" 으로 진행된다는 내용이다. 초기에 요구사항을 한번 정의를 해놓으면 뒤로 넘어가기가 쉽지 않다. 처음에 계획한 대로 수행되기 때문에, 일정 단축이나 계획적인 면에서는 큰 장점을 가지고 있으나, 변화하는 요구사항을 대응하기는 어렵다.

 

 폭포수 모델의 기본이 되어야 할 철학 중에 하나가 바로, 

폭포가 위에서 아래로 흐르듯이 각 단계는 앞 단계가 완료되어야 수행할 수 있다
각 단계마다 작성된 결과물이 완벽한 수준으로 작성되어야 다음 단계에 오류를 넘겨주지 않는다

 인데, 바로 이것이 가장큰 현실에 부딪히는 점이다. 현실에서는 완벽한 수준의 결과물이란 없다. 아무리 검증을 한다고 해도 조금의 오류는 발생하기 마련이다. 

https://blog.naver.com/baw0803/220112191530

 

애자일 (Agile) 방법론

 먼저 애자일의 영어 사전적인 의미를 살펴 보겠습니다.

애자일(Agile=기민한, 좋은것을 빠르고 낭비없게 만드는 것 먼저 애자일의 영어 의미를 살펴 보겠습니다.

 사전적인 의미에서 보시다시피, 그 특징은 "빠르다" 이다. 좀 더 구체적으로 의미하면 "빠르게 변화할 수 있다" 라고 하는게 맞을 거 같다.

 계획 -> 설계 -> 개발 -> 테스트 -> 전개 -> 리뷰 -> 계획, 빠르고 지속적으로 된다는 의미이다. 

 Launch 가 될 때까지, 계속해서 Agile 원을 돌면서 무한 반복하면 된다.

 

http://www.alltechflix.com/agile-methodologies-in-software-development/

 

Scrum

 애자일 개발 방법론에는 중에서도 세부적인 방법이 여러가지가 있는데, 그 중 가장 많이 사용하는 방법이 바로 Scrum 이라는 개발 방법이다.

 위의 원을 얼마나 자주 돌릴것인가? 에 착안하여, 개발 주기를 정의하는것이 Scrum 의 특징이다. 

 개발 주기는 1~4주 정도로 하고 개발 주기마다 실제 동작할 수 있는 결과를 제공하는 것이다.

 너무 짧으면 개발(분석/설계/개발/테스트) 할 수 있는 시간이 부족하고, 너무 길면 느슨해지고 재작업의 양도 늘어나므로 적용해보면서 필요시 조율 필요하다.

 또 다른 특징 중에 하나는 Scrum Meeting 이다. 매일 15분 정도 Scrum Metting 회의를 가지며, 업무에 대해서 공유하는 자리이다. 15분 정도의 회의는 자칫 관리자가 주최하고 관리자에게 보고하는 회의가 되기 십상인데, 이것을 유념해서 팀원만 참여하여, 수평적인 회의로 업무에 대해서 모르는것을 공유하는 회의로 지향해야 한다.

 

Sprint

 Scrum 방법에서 짦은 기간동안에 동작하는 SW를 테스트 하고 피드백 받으면서 바로바로 고쳐나간다고 하였다. 이 정해진 짧은 기간을 스크럼에서는 Sprint 라고 부른다. 1~4주의 기간으로 조직과 상황에 맞서 정한다.

 

https://www.mendix.com/blog/agile-process-why-you-need-feedback-loops-both-during-and-after-sprints/

 

맺으며

 애자일 방법론에 대해서 개괄적으로 살펴보았다. 한마디로 정의하면,

대세는 애자일 (Agile)이다.

 

 

728x90
반응형

댓글