본문 바로가기

정보처리기사 (필기)/1. 소프트웨어 설계

[정보처리기사] 1-2. 애자일 모형 (스크럼, XP)

1. 스크럼 기법

  • 팀이 중심이 되어 개발의 효능을 높인다
  • 팀원 스스로가 스크럼 팀 구성
  • 개발 작업에 관한 모든 것을 스스로 해야함
  • 스프린트는 2-4주 정도의 기간으로 진행

 

1-1) 제품 책임자 (PO: Product Owner)

  • 이해관계자들 중 제품에 대한 이해도가 높고, 요구사항을 책임지고 의사결정함
  • 주로 개발 의뢰자, 사용자가 담당
  • 요구사항이 담긴 *백로그(backlog) 작성, 백로그 우선순위 지정
    • *백로그: 제품 개발에 필요한 요구사항을 모두 모아 우선순위를 부여해 놓은 목록

 

1-2)  스크럼 마스터 (SM: Scrum Master)

  • 스크럼 팀이 스크럼을 잘 수행할 수 있도록 객관적인 시각에서 조언해주는 가이드 역할
  • 팀원을 통제하는 것이 목표가 아님
  • 일일 스크럼 회의 주관
  • 진행사항 점검, 장애요소 공론화하여 처리

 

1-3) 개발팀 (DT: Developer Team)

  • 제품 책임자(PO) 와 스크럼 마스터(SM) 를 제외한 모든 팀원
  • 최대인원 7-8명
  • 백로에 *스토리를 추가하는 것 가능, 우선순위는 지정 못함
    • *스토리: 백로그에 작성되는 요구사항

 

2) 스크럼 개발 프로세스

1. 제품 백로그 (Product Backlog)

    - 요구사항 우서순위에 나열한 목록

    - 사용자 스토리 기반 릴리즈 계획 수립 (Release Plan)

2. 스프린트 획회의 (Sprint Planning Meeting)

3. 프린트 (Sprint)

4.일 스크럼 회의 (Daily Scrum Meeting)

5. 스프린트 토 회의 (Spring Reveiw)

6. 스프린트 고 (Sprint Retrospective)

* 계스일검회

 

2. XP (eXtreme Programming)

  • 요구사항에 유연하기 위해, 고객의 참여와 개발 과정의 반복을 극대화 하여 개발 생산성을 향상시키는 방법

 

2-1) XP 개발 프로세스

  • 사용자 스토리 (User Story)
    • 고객의 요구사항을 간단한 시나리오로 표현한 것
    • 내용은 기능 단위로 구성, 필요한 경우 간단한 테스트 사항(Test Case)도 기재
  • *릴리즈 계획 수립 (Release Planning)
    • 몇 개의 스토리가 적용되어 부분적으로 기능이 완료된 제품을 제공하는 것
    • 부분 혹은 전체 개발 완료 시점에 대한 일정 수립
      • *릴리즈: 몇개의 요구사항이 적용되어 부분적으로 기능이 완료된 제품을 제공하는 것
  • 스파이크 (Spike)
    • 요구사항의 신뢰성을 높이고 기술 문제에 대한 위험을 감소시키기 위해 별도로 만드는 간단한 프로그래밍
    • 처리할 문제 외의 다른 조건은 모두 무시하고 작성
  • 주기(Iteration, 이터레이션)
    • 하나의 릴리즈를 더 세분화 한 단위
  • 승인검사 (Acceptance Test, 인수 테스트)
    • 하나의 이터레이션 안에서 계획된 릴리즈 단위의 부분 완료 제품이 구현되면 수행하는 테스트
    • 릴리즈를 소규모로 하게 되면, 고객의 반응을기능별로 확인할 수 있어, 고객의 요구사항에 좀 더 유연하게 대응 가능
  • 소규모 릴리즈 (Small Release)
    • 릴리즈를 소규모로 하게 되면 고객의 반응을 기능별로 할 수 있음
    • 고객 요구사항에 좀 더 유연하게 대응

 

Q. XP의 5대 핵심가치

  • 순성
  • 사소통
  • 드백
  • 용단의피존

Q. XP의 기본원리, 주요 실천 방법

  • Whole Team (체 팀)
  • Small Releases (규모 릴리즈)
  • Test-Driven Development (스트 주도 개발자)
  • Continuous Intergration (속적인 통합)
  • Collective Ownership (동 소유권)
  • Pair Programming ( 프로그래밍)
  • Design Improvement (자인 개선)
  • Refactoring (팩토링)
  • 전소테 계공짝디리