CS(Computer Science)/Software Engineering

애자일(Agile)

환성 2023. 1. 7. 15:34
728x90

애자일 기법

좋은 것을 빠르게 취하고, 낭비 없게 만드는 다양한 방법론을 통칭해 일컫는 말이다.

일정한 주기를 가지고 계속 검토해 나가며 필요할 때마다 요구사항을 더하고 수정하여 살을 붙이면서 개발해 나가는 프로세스 모델 방식이다. 폭포수 모델과는 반대되는 개념이다.

애자일의 핵심은 협력피드백이다.

 

 

진행과정

계획 -> 설계(디자인) -> 개발(발전) -> 테스트 -> 검토(피드백)

계획을 세운 후 다음 단계까지 기다려서 절차대로 진행하는 폭포수 모델과는 다르게 먼저 진행 후 분석, 시험, 피드백을 통하여 개선해 나가는 진행 모델이다.

소프트웨어 측면에서 팀이라는 단어가 주는 의미를 적용시키고, 효율적인 성과를 얻기 위한 것이다.

 

장점

  • 프로젝트 계획에 걸리는 시간을 최소화할 수 있다.
  • 점진적으로 테스트할 수 있어서 버그를 쉽고 빠르게 발견할 수 있다.
  • 계획 혹은 기능에 대한 수정과 변경에 유연하다.
  • 고객 요구사항에 대한 즉각적인 피드백에 유연하며 프로토타입 모델을 빠르게 출시할 수 있다.
  • 기한에 맞춰 프로젝트를 빠르게 출시할 수 있다

 

단점

  • 확정되지 않은 계획 및 요구사항으로 인한 반복적인 유지보수 작업이 많다.
  • 고객의 요구사항 및 계획이 크게 변경되면 모델이 무너질 수 있다.
  • 개인이 아닌 팀이 중심이 되다 보니 공통으로 해야 할 작업이 많을 수 있다.
  • 속도는 빠를 수 있으나 미흡한 기능들에 대한 대처가 부족하다.

 

종류

  • 익스트림 프로그래밍(Extreme, Programming, eXP)
    • 사용자의 요구사항을 한꺼번에 받는 방식이 아닌 반복형 모델의 개발주기를 짧게 함으로써 프로그래머가 설계, 구현, 시험 활동을 전체 SW 개발 기간에 걸쳐 조금씩 자주 시행하는 방법
    • 프로토타입이 일찍 만들어진다.
    • xp의 4원칙 : 의사소통, 단순성, 피드백, 용기

익스트림 프로그래밍

  • 짝 프로그래밍(Pair Programming)
    • 30분마다 역할 교체
    • 코드에 대한 책임 공유, 비형식적 검토 수행, 코드 개선을 위한 리팩토링 장려
    • 생산성
  • 테스트 주도 개발(Test Driven Development, TDD)
    • 테스트 케이스를 먼저 작성하고 이를 통과하는 코드를 개발
    • Task 별로 테스트 케이스를 만듬
    • 요구사항 - 코드 명확해짐
  • 스크럼(Scrum) 
    • 프로젝트 관리를 위한 상호, 점진적 개발방법론, 효율적인 협업 방법
    • 목표를 짧은 주기로 점진적이며 경험적으로 시스템을 지속해서 개발하는 관리 프레임워크
    • 추구 가치 : 용기, 집중, 확약, 존중, 정직

스크럼

 

 

 

 

출처:

https://gyoogle.dev/blog/computer-science/software-engineering/Agile.html

'CS(Computer Science) > Software Engineering' 카테고리의 다른 글

써드 파티(3rd party)  (0) 2023.01.08
데브옵스(DevOps)  (0) 2023.01.07
테스트 주도 개발 : TDD(Test Driven Development)  (0) 2023.01.05
클린 코드, 리팩토링  (0) 2023.01.05