Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스프링 db1 - 스프링과 문제 해결
- 2024 정보처리기사 수제비 실기
- 스프링 mvc2 - 검증
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch9
- @Aspect
- 자바의 정석 기초편 ch6
- 코드로 시작하는 자바 첫걸음
- 자바의 정석 기초편 ch13
- 자바의 정석 기초편 ch8
- 자바의 정석 기초편 ch11
- jpa - 객체지향 쿼리 언어
- jpa 활용2 - api 개발 고급
- 2024 정보처리기사 시나공 필기
- 스프링 mvc2 - 타임리프
- 자바의 정석 기초편 ch7
- 자바의 정석 기초편 ch14
- 자바의 정석 기초편 ch12
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch5
- 게시글 목록 api
- 자바의 정석 기초편 ch3
- 스프링 mvc1 - 스프링 mvc
- 스프링 mvc1 - 서블릿
- 스프링 입문(무료)
- 타임리프 - 기본기능
- 자바의 정석 기초편 ch1
- 스프링 db2 - 데이터 접근 기술
- 자바의 정석 기초편 ch4
- 자바의 정석 기초편 ch2
Archives
- Today
- Total
나구리의 개발공부기록
1장 - 요구사항 확인 | 섹션2. 스크럼(Scrum)기법, 섹션3. XP기법(eXtreme Programming) 본문
2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 1강 - 소프트웨어 설계
1장 - 요구사항 확인 | 섹션2. 스크럼(Scrum)기법, 섹션3. XP기법(eXtreme Programming)
소소한나구리 2024. 4. 7. 20:482024년도 시나공 필기 책 내용 정리
섹션2. 스크럼(Scrum)기법
1. 스크럼의 개요
- 팀이 중심이 되어 개발의 효율성을 높인다는 의미가 내포된 용어
- 팀원 스스로가 스크럼 팀을 구성(self-organizing)해야 하고 개발에 관한 모든 것을 스스로 해결(cross-functional) 할 수 있어야 함
- 스크럼 팀은 제품 책임자, 스크럼 마스터, 개발팀 으로 구성 됨
- 제품 책임자 (PO : Product Owner)
- 이해 관계자들 중 개발될 제품에 대한 이해도가 높고 요구사항을 책임지고 의사를 결정하는 사람 -> 주로 개발 의뢰자, 사용자가 담당하며 이해관계자들의 의견을 종합하여 제품에 대한 요구사항을 작성하는 주체
- 요구사항이 담긴 백로그(backlog)를 작성하고 백로그에 대한 우선순위를 지정
- 팀원들이 백로그에 스토리를 추가할 수는 있지만 우선순위를 지정할 수는 없음
- 제품에 대한 테스트를 수해앟면서 주기적으로 요구사항의 우선순위를 갱신
- 스크럼 마스터 (SM : Scrum Master)
- 스크럼 팀이 스크럼을 잘 수행할 수 있도록 객관적인 시각에서 조언을 해주는 가이드 역할을 수행(통제가 목표가 아님)
- 일일 스크럼 회의를 주관하여 진행 사항을 점검하고 개발 과정에서 발생된 장애 요소를 공론화하여 처리
- 개발팀(DT : Development Team)
- 제품 책임자와 스크럼 마스터를 제외한 모든 팀원, 개발자 외에도 디자이너, 테스터 등 제품 개발을 위해 참여하는 모든 사람이 대상이 됨
- 보통 최대 인원은 7 ~ 8 명이 적당함
* 백로그 - 제품 개발에 필요한 요구사항을 모두 모아 우선순위를 부여해 놓은 목록
* 스토리 - 백로그에 담겨질 요구사항(문장 형태로 기록됨, 사용자 스토리 라고도 함)
2. 스크럼 개발 프로세스
1) 제품 백로그(product Backlog)
- 제품 개발에 필요한 모든 요구사항(User Story)을 우선순위에 따라 나열한 목록
- 개발 과정에서 새롭게 도출 되는 요구사항으로 인해 지속적으로 업데이트 됨
- 제품 백로구에 작성된 사용자 스토리를 기반으로 전체 일정 계획인 릴리즈 계획을 수립(Release Plan)
2) 스프린트 계획 회의(Sprint Planning Meeting)
- 제품 백로그 중 이번 스프린트에서 수행할 작업을 대상으로 단기 일정을 수립하는 것
- 스프린트에서 처리할 요구사항(User Story)을 개발자들이 나눠서 작업할 수 있도록 태스크라는 작업 단위로 분할한 후 개발자 별로 수행할 작업 목록인 스프린트 백로그를 작성
3) 스프린트(Sprint)
- 실제 개발 작업을 진행하는 과정, 보통 2 ~ 4주 정도의 기간 내에서 진행
- 스프린트 백로그에 작성된 태스크를 대상으로 속도를 추정한 후 개발 담당자에게 할당
- 태스크를 할당할 때는 개발자가 원하는 태스크를 직접 선별하여 담당할 수 있도록 하는 것이 좋으며 할당된 태스크는 보통 할 일(To Do), 진행 중 (In Progress), 완료(Done)의 상태를 갖음
4) 일일 스크럼 회의(Daily Scrum Meeting)
- 모든 팀원이 매일 약속된 시간에 약 15분 정도의 짧은 시간동안 진행 상황을 점검
- 회의는 보통 서서진행하며 남은 작업 시간은 소멸 차트(Burn-down Chart)에 표시
- 스크럼 마스터는 발견된 장애 요소를 해결할 수 있도록 도와줌
5) 스프린트 검토 회의(Sprint Review)
- 부분 or 전체 완성 제품이 요구사항에 잘 부합되는지 사용자가 포함된 참석자 앞에서 테스팅을 수행
- 스프린트의 한 주당 한 시간 내에서 진행
- 제품 책임자(Product Owner)는 개선할 사항에 대한 피드백을 정리한 후 다음 스프린트에 반열할 수 있도록 제품 백로그를 업데이트
6) 스프린트 회고(Sprint Retrospective)
- 스프린트 주기를 되돌아보며 정해놓은 규칙을 잘 준수했는지, 개선할 점은 없는지 등을 확인하고 기록
- 해당 스프린트가 끝난 시점에서 수행하거나 일정 주기로 수행
섹션3. XP기법(eXtreme Programming)
2. XP(eXtreme Programming)
- 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발의 반복을 극대화 하여 개발 생산성을 향상시키는 방법
- 짧고 반복적인 개발 주기, 단순한 설계, 고객의 적극적인 참여를 통해 소프트웨어를 빠르게 개발하는 것을 목적으로 함
- 릴리즈(몇 개의 요구사항이 적용되어 부분적으로 기능이 완성된 제품을 제공하는 것)의 기간을 짧게 반복하면서 고객의 요구사항 반여에 대한 가시성을 높임
- 릴리즈 테스트 마다 고객을 직접 참여시킴으로써 요구한 기능이 제대로 작동하는지 고객이 직접 확인할 수 있음
- 비교적 소규모 인원의 개발 프로젝트에 효과적임
- 5가지 핵심가치로 의사소통(Communication), 단순성(Simplicity), 용기(Courage), 존중(Respect), 피드백(Feedback)이 있음
3. XP 개발 프로세스
1) 사용자 스토리(User story)
- 고객의 요구사항을 간단히 시나리오로 표현한 것
- 내용은 기능 단위로 구성하고 필요한 경우 간단한 테스트 사항(Test Case)도 기재
2) 릴리즈 계획 수립(Release Planning)
- 몇 개의 스토리가 적용되어 부분적으로 기능이 완료된 제품을 제공하는 것을 릴리즈라고 함
- 부분 혹은 전체 개발 완료 시점에 대한 일정을 수립
3) 스파이크(Spike)
- 요구사항의 신뢰성을 높이고 기술 문제에 대한 위험을 감소시키기 위해 별도로 만드는 간단한 프로그램
- 처리할 문제 외의 다른 조건은 모두 무시하고 작성
4) 이터레이션(Iteration)
- 하나의 릴리즈를 더 세분화 한 단위를 이터레이션이라고 하며 일반적으로 1~3주 정도의 기간으로 진행됨
- 이 기간 중에 새로운 스토리가 작성될 수 있으며 작성된 스토리는 진행중인 이터레이션 혹은 다음 이터레이션에 포함될 수 있음
5) 승인 검사(Acceptance Test, 인수테스트)
- 하나의 이터레이션안에서 계획된 릴리즈 단위의 부분 완료 제품이 구현되면 수행하는 테스트
- 사용자 스토리 작성 시 함께 기재한 테스트 사항에 대해 고객이 직접 수행
- 테스트 과정에서 발견한 오류 사항은 다음 이터레이션에 포함됨
- 테스트 이후 새로운 요구사항이 작성되거나 요구사항의 상대적 우선순위가 변경될 수 있음
- 테스트가 완료되면 다음 이터레이션을 진행
6) 소규모 릴리즈(Small Release)
- 고객의 반응을 기능별로 확인할 수 있어 고객의 요구사항에 좀 더 유연하게 대응이 가능함
- 계획된 릴리즈 기간 동안 진행된 이터레이션이 모두 완료되면 고객에 의한 최종 테스트를 구행한 후 최종 결과물을 고객에게 전달
- 릴리즈가 최종 완제품이 아닌 경우 다음 릴리즈 일정에 맞게 개발을 계속 진행
XP의 주요 실천 방법(Practice)
실천 방법 | 내용 |
Pair Programming (짝 프로그래밍) |
다른 사람과 함께 프로그래밍을 수행함으로써 개발에 대한 책임을 공동으로 나눠 갖는 환경을 조성 |
Collective Ownership (공동 코드 소유) |
개발 코드에 대한 권한과 책임을 공동으로 소유 |
Test-Driven Development (테스트 주도 개발) |
개발자가 실제 코드를 작성하기 전에 테스트 케이스를 먼저 작성하므로 자신이 무엇을 해야할지 정확히 파악 테스트가 지속적으로 진행될 수 있도록 자동화된 테스팅 도구(구조, 프레임워크)를 사용 |
Whole Team | 개발에 참여하는 모든 구성원(고객 포함)들은 각자 자신의 역할이 있고 그 역할에 대한 책임을 가져야 함 |
Continuous Integration | 모듈 단위로 나눠서 개발된 코드들은 하나의 작업이 마무리될 때마다 지속적으로 통합됨 |
Design Improvement(디자인 개선) 또는 Refactoring(리팩토링) |
프로그램 기능의 변경 없이, 단순화, 유연성 강화 등을 통해 시스템을 재구성 |
Small Releases(소규모 릴리즈) | 릴리즈 기간을 짧게 반복함으로써 고객의 요구 변화에 신속히 대응할 수 있음 |
'2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비) > 필기 1강 - 소프트웨어 설계' 카테고리의 다른 글
1장 - 요구사항 확인 핵심 요약 (1) | 2024.04.16 |
---|---|
1장 - 요구사항 확인 | 섹션 9. UML(Unified Modeling Language), 섹션 10. 주요 UML 다이어그램 (0) | 2024.04.14 |
1장 - 요구사항 확인 | 섹션6. 요구사항 정의, 섹션7. 요구사항 분석, 섹션8. 요구사항 분석 CASE와 HIPO (0) | 2024.04.14 |
1장 - 요구사항 확인 | 섹션4. 현행 시스템 파악, 섹션5. 개발 기술 환경 파악 (0) | 2024.04.07 |
1장 - 요구사항 확인 | 섹션1. 소프트웨어 생명주기 (1) | 2024.04.07 |