71 | 상 | XP | [정의] 의사소통 개선, 즉각적인 피드백에 의해 단순하게 코딩하여 SW품질을 높이기 위한 방법론 [5가치] 용기, 피드백, 의사소통, 단순함, 존중 [12Practice] 개발 - 페어프로그래밍,공동소유/공동책임,CI 관리 - Planning Process, Small Release, Metaphor 구현 - Simple Design, TDD, 리팩토링 환경 - 40-hour work, 고객의 상주 / 기타 - 코드표준준수 [구성] User story -> 구조적Spike-배포 계획-추가(반복)-인수테스트-작은릴리즈 ->Spike |
용단커피존 유구배반인작 |
토픽 이름(중) | XP |
분류 | 프로젝트 관리 > Agile 프로세스 > XP |
키워드(암기) | 용단커피존, 12개 프랙티스 전체팀(Whole Team) |
암기법(해당경우) | 가치 : [용단커피존] 용기, 단순함, 커뮤니케이션, 피드백, 존중 12가지 실천항목 [개관구환] 개발, 관리, 구현, 환경 개 - [공지페] 공동책임, 지속적 통합, 페어프로그래밍 관 - [메게작(PMS)] -> 메타포, 게임계획, 작은릴리즈 / Planning Game, Metaphor, Small Release 구 - [리테디] 리펙토링, 테스트주도개발, 단순한 디자인 환 - [4상표] 40시간 작업, 고객상주, 코드표준화 |
기출문제
번호 | 문제 | 회차 |
1 | 2. XP(eXtreme Programming)의 특징 및 실천 방법(practice)들을 설명하시오. | 123.컴시응.3교시.2 |
2 | XP의 12가지 Practice중의 하나인 Continuous Integration을 설명하시오 | 합숙_2012.08 4일차 |
3 | eXtreme Programming에 대해 설명하시오. | 합숙_2013.01 1일차 |
4 | 많은 기업에서 애자일 방법론을 도입하려 고민하거나, 현재 적용하고 있습니다. 그 이유나 목적은 다양하지만 ‘신뢰성 높은 소프트웨어를 빨리 개발하자’는 가치를 공유하고 있습니다. 가. 애자일 방법론 중 대표적인 방법론인 XP, 스크럼, 린에 대해서 설명하시오. 나. 애자일 방법론의 대표적 실천사항(Practice) 중 사용자 스토리(User Story), 플래닝 포커(Planning Poker), 속도(Velocity)에 대해서 설명하시오. |
모의_2014.12 2교시 |
5 | 최근 다양한 Agile 개발방법론이 대두되고 있는데, 다음 세가지 Agile 개발 방법론에 대해 비교 설명하고, 향후 Agile 개발 방법론 발전 방향에 대해 기술하시오. 가. XP 나. SCRUM 다. KANBAN | 모의_2015.11 4교시 |
6 | 소프트웨어 Agile개발방법론에 대해 다음 질문을 설명하시오. 가. XP, SCRUM, KANBAN에 대해 비교 설명 나. LEAN개발방법론에 대해 설명 |
모의_2016.10 4교시 |
7 | 소프트웨어 제품에 대한 가시성을 제공하는 애자일(Agile) 헌장을 기술하시고 애자일 개발방법론인 스크럼(SCRUM)과 XP 대하여 아래 항목을 설명하시오 가. 스크럼(SCRUM)의 개념 및 프로세스 나. XP(eXtreme Programming) 프로세스 및 12 가지 실천사항(7 개이상) 다. 사용자스토리(User Story), 스토리포인트(Story Point) |
모의_2016.11 4교시 |
8 | 애자일(Agile)방법론인 XP의 12가지 Practice중 하나인 TDD(Test Driven Development)의 프로세스 및 장단점을 설명하고 BDD(Behavior Driven Development)를 설명하시오. | 모의_2013.07 3교시 |
9 | XP의 User Story에 대해 설명하시오. | 모의_2012.05 2교시 |
10 | XP의 핵심가치를 실현하기 위한 12가지 프렉티스 중 CI(Continuous Integration)에 대하여 설명하시오 | 모의_2011.04 3교시 |
11 | XP의 핵심가치를 실현하기 위한 12가지 프렉티스를 6가지 이상 설명하시오. | 모의_2010.01 1교시 |
I. 유연하고 신속한 개발 방법론, XP의 개요
가. XP(eXtreme Programming)의 정의
- 의사소통과 TDD(Test driven development)를 기반으로 짧은 개발 주기를 통해 소프트웨어를 생산하는 애자일 개발 프로세스의 대표적 개발 방법론
나. XP의 핵심가치
핵심가치 | 설명 |
용기 | 고객의 요구사항 변화에 능동적인 대처 |
단순성 | 부가적 기능, 사용되지 않는 구조와 알고리즘 배제 |
의사소통(커) | 공통의 메타포 사용, 페어 프로그래밍 등 관리자, 개발자, 고객 간의 의사 소통 |
피드백 | 빠른 피드백을 원칙으로 해결 할 수 있는 일 먼저 처리 |
존중 | 구성원 상호간의 존중, 프로젝트에 대한 존중 |
II. 개념도(구성도) 및 기술요소
- XP의 프로세스
- XP 개발 프로세스 단계별 내역
단계 | 설명 |
유저스토리 User Story |
- 고객이 필요한 것이 무엇인지를 기술(요구사항 수집, 의사소통 도구) - 릴리즈 계획을 작성하기 위한 단위 |
스파이크 Spike |
- 잠재적 솔루션들을 고려하기 위해 작성하는 간단한 프로그램(핵심 기능 프로토타입) - 사용자 스토리의 신뢰성을 증대 시키거나 기술적 문제의 위험성을 줄일 목적으로 작성 |
배포계획 Release Planning |
- 전체 프로젝트에 대한 배포 계획을 생성 - 의사결정 등 모든 규칙을 포함, 그 규칙에 의한 프로젝트 수행 방법 정의 |
반복 Iteration |
- 반복적 개발에서는 민첩함이 중요, 1-3주 정도로 나누어 반복을 균형적으로 유지 - 프포세스의 평가와 계획을 단순하고 신뢰성 있게 만드는 핵심 항목 |
인수 테스트 Acceptance Test |
- 고객은 작동하는 시스템을 보면서 진척 사항 확인 - 고객이 직접 명세한 테스트 통과 파악 |
소규모 배포 Small Release |
- 짧은 사이클, 소규모의 빈번한 배포를 통해 고객에게 이득을 조기 제공 - 프로그램은 빠른 피드백을 제공 받음 |
III. XP의 12가지 실천항목
구분 | 실천항목 | 내용 |
개발 | 페어 프로그래밍 (Pair Programming) |
두명이 한대 컴퓨터에서 개발(오류 감소, 생산성 향상) |
공동 책임 (Collective Ownership) |
시스템에 있는 코드는 누구든지 언제라도 수정 가능 | |
지속적 통합 (Continuous Integration) |
하루에 몇 번이라도 시스템 통합하여 빌드 가능 | |
관리 | 게임 계획 (Planning Game) |
User Story 이용하여 next Release 범위 빠르게 결정 |
작은 릴리즈 (Small Release) |
필요한 기능들만 갖춘 간단한 시스템을 빠르게 릴리즈 (2주단위) | |
메타포(Metaphor) | 문장형태로 시스템 아키텍처 기술, 고객과 개발자간 의사소통 언어 | |
구현 | 단순한 디자인 (Simple Design) |
요구사항을 만족시키도록 가능한 단순하게 설계함 |
테스트 주도 개발 (Test Driven Develop) |
테스트 주도(TDD), 테스트를 통한 고객 검증, 승인 | |
리펙토링 (Refactoring) | 기능에 변화 없이 코드 수정을 통해 디자인 개선 | |
환경 | 40시간 작업 (40-hour per week) |
주 40시간 이상 일하지 말도록 규칙, 2주 연속으로 오버타임 금지 |
고객 상주 (On-Site Customer) |
고객이 프로젝트에 풀타임 상주, 의사 결정 지원 | |
기타 | 코딩 표준화 (Coding standards) |
커뮤니케이션 향상을 위해 코드가 표준화된 관례에 따라 작성 |
반응형