일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 개발일기
- 중학수학
- 순환신경망
- ChatGPT
- 연습문제
- JSP/Servlet
- 파이썬
- 딥러닝
- 디버깅
- 혼공머신
- 상속
- 정보처리기사필기
- 데이터베이스
- rnn
- 컴퓨터구조
- 컴퓨터비전
- 머신러닝
- 데이터분석
- html/css
- 자바스크립트심화
- JSP
- 중학1-1
- 자바스크립트
- c언어
- 자바 실습
- CSS
- JDBC
- 자바
- SQL
- 정보처리기사실기
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
요구사항 확인 2 - Section 2~3 : 스크럼(Scrum) 기법과 XP(eXtreme Progrmming) 기법 본문
요구사항 확인 2 - Section 2~3 : 스크럼(Scrum) 기법과 XP(eXtreme Progrmming) 기법
huenuri 2024. 9. 21. 14:10오후 공부를 하기 전에 점심식사를 기다리는 동안 정처리 실기 공부를 하기로 했다. 짧은 시간이어도 잘 이용하면 많은 공부를 할 수 있다.
두 번째로 이 수업을 다시 들어보며 정리해보고 있다. 처음 공부할 때는 공부에 흥미가 많지 않고 억지로 하다 보니, 선생님의 강의 내용은 캡처하기만 했다. 이번에 다시 들을 때는 중요한 설명을 쓰며 확실히 내 것으로 만드는 중이다.
섹션 2 - 스크럼(Scrum) 기법
1. 스크럼이란?
앞선 강의에서 기스XL칸에 대해서 공부했다. 기능 중심 개발, 스크럼, XP, Lean, 칸반 중에서 지금 스크럼에 대한 내용을 공부해 볼 것이다.
스크럼이란 럭비에서 반칙으로 경기가 중단된 경우 양 팀의 선수들이 럭비공을 가운데 두고 상대 팀을 밀치기 위해 서로 대치해 있는 대형을 일컫는 것으로, 팀의 중요성을 강조하는 용어이다.
★ 스크럼의 개념을 이해하고 스크럼 팀의 구성원과 각 구성원들의 역할을 잘 기억해두기
2. 스크럼 팀
이해 관계자는 소프트웨어를 실제로 사용할 사용자를 말한다. 개발팀에는 디자이너도 있고 제품을 테스트하는 테스트까지 포함된다.
3. 스크럼 개발 프로세스
백로그는 개발팀, 제품 책임자, 스크럼 마스터가 모여 의사소통을 하면서 개발에 필요한 내용을 적는 것이다. 즉, 제품 개발에 필요한 요구사항을 모두 모아 우선순위를 부여해 놓은 목록을 말한다. 백로그를 쓸 때 이야기 형식으로 풀어서 작성한다. 이러한 백로그를 스토리라고 부른다. 제품 책임자는 백로그의 우선순위를 결정한다. 백로그의 우선순위는 제품 책임자만 변경할 수 있다.
제품 백로그는 제품 개발에 필요한 모든 요구사항을 우선순위에 따라 나열한 목록으로, 개발 과정에서 새롭게 도출되는 요구사항으로 인해 계속 업데이트된다. 제품 백로그에 작성된 사용자 스토리는 전체 일정 계획인 릴리즈 계획을 수립할 때 사용된다.
스크럼 마스터가 개발팀과 함께 회의를 진행하는데 그 회의를 스프린트 계획 회의라고 부른다. 이 회의를 스크럼 마스터가 주관한다. 이 회의에서 개발자들에게 세부 목표와 일정을 할당한다. 이때 스프린트에 적힌 백로그를 스프린트 백로그라고 한다.
그런 다음 스프린트를 수행한다. 스프린트는 프로그램 개발 진행 과정을 말한다. 매일마다 진행하는 회의를 일일 스크럼 회의라고 한다. 개발자는 스크럼 마스터에게 매일마다 진행되는 방해 요소를 이야기한다. 그러면 스크럼 마스터는 이러한 요구 사항을 최대한 반영한다.
스프린트 회의를 할 때마다 소멸 차트를 사용한다. 이 소멸 차트를 통해 소프트웨어 진행 상황이 매끄러운지 아닌지 판단할 수 있다. 하지만 개발을 하다가 진척이 안 되어 작업 시간이 올라갔다가 다시 떨어지기를 반복하며 시간이 점차 줄어들게 된다.
소멸차트는 해당 스프린트에서 수행할 작업의 진행 상황을 확인할 수 있도록 시간의 경과에 따라 남은 작업 시간을 그래프로 표현한 것이다. 초기에 추정했던 전체 작업 시간은 작업이 진행될수록 점점 줄어들게 된다.
스프린트 검토 회의는 제품 책임자가 주관하며 매주마다 진행된다. 제품 책임자는 검토 회의 결과에 따라 백로그를 업데이트하며 우선순위를 적용한다. 검토 회의가 끝나면 스프린트 회고를 한다. 이 회고는 팀원들끼리 정해놓은 규칙을 잘 준수했는지, 더 개선할 사항 등을 회고하고 기록한다.
소프트웨어 개발과 관련해서 이해관계자는 소프트웨어 개발 의뢰자, 소프트웨어 개발자, 소프트웨어 사용자 등이다.
★ 스크럼 개발 프로세스의 과정 꼭 기억하기
스크럼 개발을 진행할 때는 계획하여 진행(스프린트)한 후, 회의와 검토를 거쳐 회고한다고 기억하라.
세션 3 - XP(eXtreme Progrmming) 기법
1. XP란?
XP에서 X는 익스트림의 약자로 극도의, 극심한이라는 뜻이다. 이를 직역하면 XP는 고객과의 소통을 극대화한다고 직역할 수 있다. 예를 들어 계산기 프로그램을 만들 때 고객들은 사칙연산뿐 아니라 메모리 기능이나 공학용 계산기를 만들어 달라고 요청하게 된다.
프로그램을 개발할 때 고객과의 소통은 프로그램을 테스트하기 전후에 한다. 하지만 XP에서는 고객들을 소통을 중요하게 여기며 계속해서 참여시킨다. 하지만 프로그램 개발 기간이 1년이라고 할 때 고객들은 처음부터 끝까지 잘 참여할까? 개발 기간이 길어질수록 참여율은 떨어질 것이다. 따라서 XP는 대규모가 아닌 소규모 프로그램을 개발할 때 사용하는 기법이다.
릴리즈는 몇 개의 요구사항이 적용되어 부분적으로 기능이 완료된 제품을 제공하는 것을 말한다. 프로그램 뒤에 버전이 붙어있는데 이것을 릴리즈라고 한다. 이 릴리즈를 통해 고객들은 어떤 기능들이 새로 추가되었는지 알고 더 적극적으로 참여한다. 자신이 요구한 사항들이 반영되는 것을 보며 흥미를 느끼기 때문이다.
여기서 가시성은 대상을 눈으로 확인할 수 있는 정도이다. XP는 개발 기간이 짧은 대신 기능을 릴리즈 단위로 배포하여 확인시켜 준다. 고객들은 요구 사항이 반영되는지 확인하는데 이를 가시성이라고 한다.
이 핵심가치를 '피존의 용기는 단순하게 만들어야 한다'로 암기하면 된다.
2. XP 개발 프로세스
사용자와 개발자들이 모여 요구 사항을 듣는다. 고객의 요구 사항을 쉽게 이야기 형태나 시나리오로 표현한 것이 사용자 스토리이다. 사용자 스토리는 개발이 끝난 후 사용자 요구 사항을 가지고 테스트하는 테스트 시나리오로 사용된다. 그리고 요구사항에서 릴리즈 계획을 수립한다.
이후 릴리즈 계획대로 프로그램 개발을 진행한다. 이 주기는 프로그램 개발 진행이며, iteration이라고 부른다. 개발 중에 새로운 사용자의 스토리가 생기면 이를 릴리즈 계획 수립에 반영한다.
이 중에서 요구사항의 신뢰성을 높이고 기술 문제에 대한 위험을 감소시키기 위해 별도로 만드는 간단한 프로그램을 따로 떼어놓는데 이를 스파이크라고 한다. 처음에는 불확실한 추정으로 스파이크를 만들고, 이 개발이 잘 되면 확신하는 추정으로 바뀐다.
XP는 소규모 모델이기에 개발 주기를 1~3주 정도로 갖고 진행한다. 어떤 특정 기능에 대한 개발이 끝난 최신 버전으로 승인 검사를 받는다. 이 테스트에서 버그가 생기면 오류를 찾아 다시 개발 주기로 돌아가 만들게 된다. 그런 다음 승인 검사를 받아 성공하면 다음 주기로 넘어간다. 이 주기에서 요구 사항을 처리할 수 있는 기능들을 만드는 과정을 반복한다.
만약 사용자 요구 사항이 1~100번까지 있을 때 1.0 버전에서는 1~20번까지를 해결하고 2.0 버전에서는 그다음을 해결하는 식으로 부분적으로 나누어 진행한다.
각 버전들마다 승인 검사가 끝나 고객 승인이 완료되면 소규모 릴리즈가 완성된다.
★ 개발 프로세스 진행 순서대로 나열하기
계획하고 진행한 후 검사하고 출시한다. XP 개발 과정에서는 진행이 이터레이션이고 출시가 릴리즈이다.
승인 검사를 다른 말로 인수 테스트라고 한다. 계획하고 진행하고 검사하고 출시하는 순서대로 진행된다.
3. XP 주요 실천 방법
짝 프로그래밍은 혼자 하면 개발이 오래 걸리기도 하니, 두 명이 한 대의 PC를 가지고 진행하는 것이다. 예를 들어 운전을 해서 부산에 간다고 할 때, 운전을 하는 드라이버와 길 안내를 하는 내비게이터가 필요하다. 이 두 명이 PC 한 대로 프로그램을 수행하는 기법이다. 드라이버는 키보드를 조작하고, 내비게이터는 목표를 설정하고 점검하고 리드하는 사람이다.
개발에 대한 책임은 공동으로 나눠 갖는다.
리팩토링은 불필요한 기능을 제거하고 프로그램을 단순화한다.
시험 출제 예상
- 영문명까지 기억하기
- 내용을 풀어놓고 어떤 실천 방법인지 쓰기
★ XP 주요 실천방법은 영문으로도 알고 있어야 하며, 각각의 의미를 서로 구별할 수 있을 정도로 암기하기
학습을 마치고
필기 공부를 할 때 모두 공부했던 내용이었다. 강의도 구입해서 들었는데 그때 강사님은 모두 암기하라고 해서 이해도 하지 않은 상태에서 암기만 하니 별 도움이 되지 않았다. 이번 강사님은 암기보다는 이해에 초점을 맞추며 예를 들어 많이 설명해 주시니 정말 좋았다.
앞으로 끝까지 이 수업을 한 달 동안 열심히 들어보려고 한다. 200개가 넘는 강의가 있고 한 강의마다 20분 내외로 무척 알찬 강의이다.
스크럼 개발 프로세스는 한번 봐서 이해가 잘 안 되니 여러 번 학습해 볼 생각이다.
'자격증 공부 > 정보처리기사 실기' 카테고리의 다른 글
요구사항 확인 6 - Session 15~18 : 순차 · 커뮤니케이션 · 상태 · 패키지 다이어그램에 대하여 (0) | 2024.09.23 |
---|---|
요구사항 확인 5 - Section 11~14 : UML 다이어그램 및 유스케이스 · 활동 · 클래스 다이어그램 (0) | 2024.09.23 |
요구사항 확인 4 - Session 7~10 : 요구사항 분석 및 UML에 대하여 (0) | 2024.09.23 |
요구사항 확인 3 - Session 4~6 : 개발 기술 환경 파악 및 요구 사항 정의 (0) | 2024.09.23 |
요구사항 확인 1 - Section 1 : 소프트웨어 생명 주기 (0) | 2024.09.21 |