728x90
XP eXtreme Programming
- XP eXtreme Programming 이란?
Agile 모형에 속하는 개발방법론으로 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 통해 개발 생산성 향상을 목표로 한다. - XP 특징
- 짧고 반복적인 개발 주기
- 단순한 설계
- 고객의 참여
- 빠른 소프트웨어 개발
- 짧은 릴리즈 기간 반복 -> 고객 요구사항 반영 -> 가시성 확보 - XP 의 5가지 핵심 가치
- 의사소통 Communication
- 단순성 Simplicity
- 용기 Courage
- 존중 Respect
- 피드백 Feedback
릴리즈 Release
- 릴리즈 Release ?
릴리즈는 고객 요구사항이 적용되어 부분적으로 완성된 제품을 제공하는 것을 말한다.
가시성 Visibility
- XP 개발은 짧고 반복적인 개발 주기 마다 릴리즈를 고객에게 제공하기 때문에 고객은 요구사항이 잘 적용되고 있음을 주기적으로 확인할 수 있다. 이런 것을 가시성이 좋다고 표현한다.
XP 개발 프로세스
- 일반적인 개발 프로세스
'계획'
'진행'
'검사'
'출시'
4가지 단계를 거친다.
XP 에서는 진행 = Iteration (주기), 출시 = Release (릴리즈) 이다.
즉 XP 에서는 다음 4가지 단계가 주축이 된다.
'릴리즈 계획 수립'
'주기 Iteration'
'승인 검사'
'소규모 릴리즈' - 사용자 스토리 User Story ?
고객의 요구사항을 시나리오로 표현한 것이다. - 스파이크 Spike ?
요구사항의 신뢰성 향상과 기술 문제 위험을 감소시키기 위해 별도로 만드는 간단한 프로그램이다. - XP 개발 프로세스
1. 릴리즈 계획 수립 Release Planning
: 사용자 스토리 중 부분적으로 기능이 완료된 제품, 즉 릴리즈를 언제 완료 할지 일정 수립
2. Iteration 이터레이션
: 1~3주 간 실제 개발 작업의 진행
3. 승인 검사 Acceptance Test (인수 테스트)
: 이터레이션에서 목표로 한 개발 완료시 수행하는 테스트 (고객의 승인을 받아야 함)
: 고객의 승인을 받지 못하거나, 버그가 발생하면 다시 Iteration 주기로 돌아가서 개발을 한다.
4. 소규모 릴리즈 Small Release
: 요구사항에 유연하게 대응할 수 있도록 소규모 릴리즈가 진행된다. (대규모 릴리즈, 즉 한번에 완제품을 만들면 고객의 요구사항에 대응하기가 힘들기 때문이다)
XP의 주요 실천 방법 (Practice)
- 1. Pair Programming
: 이름만 보면 Scrum 에 들어 있을 것 같은 실천방법이다.
: 다른 사람과 함께 개발 하는 환경
2. Collective Ownership
: 개발 코드에 대한 권한과 책임이 공동으로 소유됨
3. Test-Driven Development
: 예를 들어 자바 개발을 한다면, 클래스를 먼저 만드는 것이 아니라 개발된 클래스들이 있다고 가정하고 테스트 파일 먼저 만든 다음 해당 테스트 파일이 실제로 실행되도록 이어서 개발하는 것을 말한다.
: 이런 개발 방식의 장점으로는 자신이 무엇을 해야할지를 정확히 파악할 수 있으며, 자동화된 테스팅 도구(구조, 프레임워크)를 상요할 수 있다는 점이다.
4. Whole Team
: 모든 팀원은 역할이 있고 각자 책임 저야 함
5. Continuous Integration
: 모듈 단위로 나눠서 개발된 코드들은 Iteration 하나가 끝날 때마다 통합된다.
6. Refactoring
: 코드를 재구성하는 것을 의미한다.
: 목적은 프로그램을 쉽게 이해하고 쉽게 수정하여 빠른 개발을 할 수 있도록 함
7. Small Releases
: 릴리즈 기간을 짧게 작은 릴리즈를 반복함으로써 고객의 요구 변화에 민첩하고 신속하게 대응할 수 있게 됨.
'[자격증] > 정보처리기사 실기' 카테고리의 다른 글
1. 요구사항 확인_05 요구사항 정의 (0) | 2023.06.29 |
---|---|
1. 요구사항 확인_04 개발 기술 환경 파악 (0) | 2023.06.29 |
1. 요구사항 확인_02 스크럼 기법 (0) | 2023.06.29 |
1.요구사항 확인_01 소프트웨어 생명 주기 (0) | 2023.06.29 |
질문 유형 분석하기 (0) | 2023.06.28 |