XP란?
- 품질 향상과 빠른 고객 피드백을 위해 프로그래밍을 극단적으로 단순화하고 반복하는 애자일 개발 방법론
- 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법
- 짧고 반복적인 개발 주기
- 단순한 설계
- 고객의 적극적인 참여
XP의 핵심 목표
- 고품질 소프트웨어 : 코드 품질을 높이고 결함을 최소화
- 빠른 피드백 : 사용자와의 지속적인 커뮤니케이션
- 변화 대응력 강화 : 요구사항이 자주 바뀌는 환경에서도 유연한 대응
- 개발 생산성 향상 : 단순한 구조, 반복적인 테스트로 효율 극대화
5가지 핵심 가치
- 의사소통(Communication) : 팀원 간, 고객과의 지속적 소통
- 단순성(Simplicity) : 필요한 기능만 단순하게 구현
- 피드백(Feedback) : 짧은 주기로 테스트 및 고객 피드백
- 용기(Courage) : 잘못된 설계나 코드를 즉시 수정하는 용기
- 존중(Respect) : 팀원 간 상호 신뢰와 존중
XP 개발 프로세스

- 사용자 스토리
- 고객이 원하는 기능이나 요구사항을 간단히 서술한 문장
- 이 스토리는 이후 모든 개발의 기준이 됨
- 사용자 스토리를 바탕으로 테스트 시나리오를 작성함
- 릴리즈 계획 수립
- 모든 사용자 스토리를 모아 우선순위를 정하고, 릴리즈 단위로 어떤 스토리를 포함할지 결정함
- 릴리즈 : 몇 개의 스토리가 적용되어 부분적으로 기능이 완료된 제품을 제공하는 것
- 부분 혹은 전체 개발 완료 시점에 대한 일정을 수립하는 것
- 각 릴리즈는 여러 개의 주기(Iteration)로 구성됨
- 요구사항이 불확실할 경우, 스파이크를 통해 실험적 코드를 작성하여 기술적 위험을 줄임
- 스파이크 : 불확실하거나 모호한 기술을 탐색하기 위한 짧은 실험적 코딩 단계
- 모든 사용자 스토리를 모아 우선순위를 정하고, 릴리즈 단위로 어떤 스토리를 포함할지 결정함
- 이터레이션(주기, Iteration)
- 실제 개발 작업을 진행하는 과정
- 릴리즈 내에서 짧은 반복 개발 주기를 의미함
- 보통 1~3주 정도의 기간으로 진행함
- 버그가 발견되면 즉시 수정하고, 테스트 통과 시 최신 버전으로 갱신함
- 다음 주기에서는 이전 결과를 개선하며 기능을 확장함
- 승인 검사(Acceptance Test, 인수 테스트)
- 하나의 이터레이션 안에서 부분 완료 제품이 구현되면 수행하는 테스트
- 사용자 스토리에 기반한 테스트를 통해 개발 결과가 고객 요구사항을 충족하는지 검증함
- 테스트를 통과하면 고객이 승인을 내리고 해당 버전에 Label(태그)을 붙여 배포 준비를 함
- 만약 실패 시 → 버그 수정 후 다시 테스트
- 소규모 릴리즈
- 요구사항에 유연하게 대응할 수 있도록 릴리즈의 규모를 축소한 것
- 승인된 기능들을 모아 작동 가능한 소프트웨어 버전으로 릴리즈함
- 고객에게 전달하여 즉시 피드백을 받고, 이를 다음 주기에 반영함
XP의 주요 실천 방법
Pair Programming(짝 프로그래밍)
- 2명의 개발자가 한 컴퓨터로 함께 프로그래밍을 수행
Test-Driven Development(테스트 주도 개발, TDD)
- 테스트 케이스를 먼저 작성 후 코드 구현
- 자동화된 테스팅 도구(구조, 프레임워크)를 사용함
Continuous Integration(지속적 통합)
- 코드 변경 시마다 자주 통합 및 테스트
- 모둘 단위로 나눠서 개발된 코드들은 하나의 작업이 마무리될 때마다 지속적으로 통합됨
Refactoring(리팩토링)
- 기능은 유지하면서 코드 구조 개선
- 프로그램을 쉽게 이해하고 쉽게 수정하여 빠르게 개발할 수 있도록 하기 위함
Small Releases(소규모 릴리즈)
- 짧은 주기로 자주 배포
- 고객의 요구 변화에 신속히 대응할 수 있음
Collective Ownership(공동 코드 소유)
- 모든 팀원이 코드 수정 가능
- 개발 코드에 대한 권한과 책임을 공동으로 소유함
Coding Standard(코딩 표준)
- 팀 전체가 동일한 코딩 규칙 준수
Simple Design(단순한 설계)
- 불필요한 복잡성을 제거한 설계
Sustainable Pace(지속 가능한 개발 속도)
- 과도한 야근 없이 일정한 속도 유지
Customer On Site(고객 상주)
- 고객이 개발팀 근처에서 상시 피드백 제공
System Metaphor(시스템 은유)
- 시스템 전체 구조를 쉽게 이해할 수 있는 비유 사용
40-hour Week(40시간 근무 원칙)
- 개발자 과로 방지, 일정한 리듬 유지
정리
- 고객 중심의 반복적 개발 방법론으로, 단순성, 피드백, 테스트 중심 개발을 강조
- 5가지 가치 : 의사소통, 단순성, 피드백, 용기, 존중
- 대표 실천 방법 : 짝 프로그래밍, 공동 코드 소유, 테스트 주도 개발, 전체 팀, 지속적 통합, 리팩토링, 소규모 릴리즈
- 소규모 팀, 요구사항이 자주 바뀌는 프로젝트에 적합
'정보처리기사' 카테고리의 다른 글
| 정보처리기사 실기 - 요구사항 정의(기능, 비기능, 사용자, 시스템) (0) | 2025.10.28 |
|---|---|
| 정보처리기사 실기 - 개발 기술 환경 파악(OS, DBMS, WAS, 오픈소스) (0) | 2025.10.28 |
| 정보처리기사 실기 - 스크럼(Scrum) 기법 (0) | 2025.10.28 |
| 정보처리기사 실기 - 소프트웨어 공학 (0) | 2025.10.28 |
| 정보처리기사 실기 - 애자일 모형 (0) | 2025.10.28 |