개발방법론, 워터폴 ,애자일

Kyoungchan Cho·2022년 12월 2일
0
post-thumbnail
post-custom-banner

소프트웨어 개발 방법론

소프트웨어 개발 방법론은 소프트웨어를 생산하는 데에 필요한 프로그래밍 개발 과정들을 정리하고 표준화하여 프로그래머들이 프로그래밍 개발과정에서 각개인이 개발과정에서의 일관성을 유지하고 프로그래머들간의 효과적인 협업이 이루어질수 있도록 돕기 위한 방법론이다.

워터폴(폭포수) 방법론

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

  • 애자일 등장 이전의 일반적이고 가장 흔하게 사용된 개발 방법론
  • 프로그래밍을 시작하기 전에 상당한 문서 작업이 필요하고 요구사항이 초기에 정해지기 때문에 추후 요구사항 수정이 어렵다.
  • 개발이 순차적으로 진행되어 앞 단계가 완료되지 못하면 다음 단게로 넘어가지 못하기 때문에 속도가 다소 느리고, 유연성이 떨어진다.
  • verification 단계에 이르러서야 보통 이슈나 버그 등이 발생되곤 한다.

애자일 방법론

애자일 방법론은 소프트웨어 개발 방법에 있어서 아무런 계획이 없는 개발 방법과 계획이 지나치게 많은 개발 방법들 사이에서 타협점을 찾고자 하는 방법론이다. 즉, 문서를 통한 개발 방법이 아니라, code-oriented, 실질적인 코딩을 통한 방법론이다. 일정한 주기를 가지고 끊임없이 프로토 타입을 만들어내며 그때 그때 필요한 요구를 더하고 수정하여 하나의 커다란 소프트웨어를 개발해 나가는 adaptive style 이라고 할 수 있다. 애자일 개발 프로세스란 어느 특정 개발 방법론을 가리키는 말은 아니고 "애자일(Agile=기민한, 좋은것을 빠르고 낭비없게 만드는 것) 개발을 가능하게 해 주는 다양한 방법론 전체를 일컫는 말이다.

  • 개발 과정이 빠르면서도 유연하여 비즈니스 요구 사항이 변경되더라도 쉽게 수정할 수 있다.
  • 짧고 반복적인 스프린트로 구성돼있어 버그나 이슈를 빠르게 찾을 수 있다.

스크럼

  • 로드맵 : 프로덕트 분기당 목표
  • 프로덕트 백로그 : 개발할 제품에 대한 요구 사항 목록(로드맵에 대한 하위 목표)
  • 릴리즈 플래닝 : 프로덕트 백로그에 대한 상세한 일정
  • 스프린트 플래닝 : 최소 일주일에서 최대 한달동안 팀의 집중 목표 (작업 리스트)
  • 스프린트 백로그 : 스프린트 목표 달성에 필요한 작업 목록(스프린트 기간 동안의 해야 할일)
  • 스프린트 -> 결과물 -> 스프린트 리뷰 -> 회고 -> 스프린트 플래닝의 순환 방식으로 스프린트가 진행된다.
  • 데일리 스크럼(스탠드업 미팅) : 스프린트 중 중간 회의

에자일 개발 방법론 중 하나인 스크럼은 위 이미지와 같은 순서로 진행된다. 트렐로를 활용하여 약 2주간의 프로젝트 때 스크럼 방식을 활용한 적이 있다. 로드맵은 생략하고 백로그부터 스프린트, 데일리 스크럼을 활용하여 프로젝트 진행 상황을 점검하고, 그에 따른 수정 사항을 반영하기 쉬웠다. 그리고 데일리 스크럼을 통해 팀원들과 유연한 소통이 가능했다. 에자일의 장점을 경험할 수 있었다.

summary

소프트웨어 개발 방법론 중 비교적 전통적인 워터폴 방법론과 애자일 방법론이 있다.
워터폴 방법론은 SI 업체에서 많이 사용하는 방법으로 요구사항을 초기에 정의하고 프리징한다. 그 요구사항을 분석, 설계를 하고, 구현하고 테스트하는 순으로 이루어진다.
애자일 방법론은 소프트웨어 개발에 있어서 무계획과 지나치게 계획이 많은 개발 방법론들의 타협점이다. 초기 설계 문서에 의존하지 않고 실직적인 코딩을 통한 방법론인데, 그 중 직접 사용해본 스크럼 방식은 백로그, 스프린트, 데일리 스크럼 등을 통해 태스크 중심으로 개발을 진행할 수 있으며, 수정 사항을 민첩하고 유연하게 반영할 수 있고, 빠르게 피드백을 할 수 있는 장점이 있다.


참고)
https://blog.metafor.kr/159
https://www.ciokorea.com/news/166830
https://ko.wikipedia.org/wiki
https://brunch.co.kr/@workingus/31
https://www.youtube.com/watch?v=pdZNjNTyr8Q

profile
https://lying-lettuce-69f.notion.site/KyoungchanCho-Blog-f9f150b9e3be4467a67cf2a21932650d (게시글 자동 비공개 현상으로 일단 노션으로 이동합니다. 소개에서 URL 링크 클릭으로 연결됩니다.)
post-custom-banner

0개의 댓글