[ SECTION 3. XP (extreme programming)기법 ] -> 애자일 모형이 추구하는 고객과의 소통을 극도로 끌어올림
Ⅰ. XP
⇒ 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화한 방법
- 짧고 반복적인 개발 주기, 단순한 설계, 고객의 적극적인 참여
- 릴리즈 기간을 짧게, 소규모 인원 개발 프로젝트에 효과적
- 릴리즈: 프로그램을 배포하는 단위, 부분적으로 기능이 완료된 제품을 제공
- 5가지 핵심 가치: 피존용단소- 피드백, 존중, 용기, 단순성, (의사)소통
Ⅱ. XP 개발 프로세스-> 순서, 각 단계마다 하는 일!!
사릴스이승소/ 사용자 스토리-릴리즈 계획-스파이크-이터레이션-승인검사-소규모 릴리즈
(축소판) 릴리즈 계획-이터레이션-승인검사-소규모릴리즈
① 사용자 스토리 (User Story)
- 고객의 요구사항을 시나리오로 표현
- 내용은 기능 단위로 구성, test case도 기재
② 릴리즈 계획 수립 (Release Planning)
- 부분 or 전체 개발 완료 시점에 대한 일정을 수립
③ 스파이크 (Spike)
- 전체기능과 상관없이 특정기능 하나에 대한 테스트를 하기 위해 작성되는 프로그램
- 요구사항의 신뢰성을 ↑, 기술문제에 대한 위험↓
④ 이터레이션 (Iteration)
- 릴리즈를 더 세분화한 것, 1~3주 기간동안 진행
- 스파이크 완성 이후에 진행
- 이 기간 동안 새로운 스토리가 작성될 수 있음-> 진행 중 or 다음 이터레이션에 포함됨
⑤ 승인 검사 (Acceptance Test, 인수 테스트)
- 1개의 iteration안에서 계획된 릴리즈 단위 제품이 완성되면 수행하는 테스트
- 고객이 직접 수행, 테스트가 완료되면 다음 iteration 수행
- 테스트 이후 요구사항이 추가되거나 우선순위가 바뀔 수 있음
⑥ 소규모 릴리즈 (Small Release)
- 소규모 릴리즈-> 고객의 반응을 기능별로 확인 가능-> 고객의 요구사항에 유연하게 대응
- 릴리즈가 최종 제품이 아닌 경우 다음 릴리즈 단계를 진행함
Ⅲ. XP의 주요 실천 방법(practice)
- Pair Programming (짝 프로그래밍): 다른 사람과 함께 프로그래밍을 수행-> 책임을 공동으로 나눠 가짐
- Test-Driven Development (테스트 주도 개발): 실제 코드를 작성하기 전 테스트 케이스를 먼저 작성-> 자신이 무엇을 해야할지 정확히 파악, 테스트가 지속적으로 진행될 수 있도록 자동화된 테스팅 도구를 사용함
- Whole Team (전체 팀): 개발에 참여하는 모든 구성원은 각자 자신의 역할이 있고 그에 대한 책임을 가져야 함
- Continuous Integration (지속적, 계속적인 통합): 모듈 단위로 개발된 코드들은 하나의 작업이 마무리될 때마다 통합됨
- Design Improvement (디자인 개선)/ Refactoring: 프로그램 기능을 변경하지 않고 단순화, 유연성 강화를 통해 시스템을 재구성
- Small Release: 릴리즈 기간을 짧게 반복해 고객의 요구사항 변화에 신속히 대응
- 자동화된 테스팅 도구 사용을 권장한다. (테스트를 많이 하니까)
- 테스트 이후 새로운 요구사항이 작성되거나 요구사항의 상대적 우선순위가 변경될 수 있다.
- 모든 개발자들이 전체 코드에 대한 공동 책임을 가지며, 개발자 누구든지 어떤 코드라도 변경 가능함
'자격증 > 정보처리기사 필기' 카테고리의 다른 글
5. 개발 기술 환경 파악 (0) | 2020.08.26 |
---|---|
4. 현행 시스템 파악 (0) | 2020.08.26 |
2강. 스크럼 기법 (0) | 2020.08.26 |
1강. 소프트웨어 생명주기 (0) | 2020.08.26 |
정처기 공부 시작~! (0) | 2020.08.26 |