Extreme Programming
익스트림 프로그래밍(Extreme Programming, XP)은 Kent Beck이 1996년 크라이슬러 C3 프로젝트에서 체계화한 소프트웨어 개발 방법론이다. 1999년 저서 Extreme Programming Explained로 공식 출간되었다.
다른 애자일 방법론이 계획·프로세스 중심인 반면, XP는 **"어떻게 코딩할 것인가"**를 구체적 실천 단위로 규정한다는 점에서 차별화된다.
핵심 가치 5개
- Communication — 소통
- Simplicity — 단순함
- Feedback — 피드백
- Courage — 용기
- Respect — 존중
원조 실천 12개
- Planning Game — 사용자 스토리 기반 추정·우선순위
- Small Releases — 자주 릴리즈하기
- Metaphor — 공통 은유로 시스템 설계 공유
- Simple Design — YAGNI(You Aren't Gonna Need It) 원칙
- Testing (TDD) — 테스트 먼저 작성 후 구현
- Refactoring — 기능 변경 없이 구조 개선
- Pair Programming — 2명이 1대의 컴퓨터에서 함께 코딩
- Collective Ownership — 누구나 어떤 코드든 수정 가능
- Continuous Integration — 하루 여러 번 통합 빌드
- 40-hour Week — 지속 가능한 속도 유지
- On-site Customer — 고객이 팀과 함께 상주
- Coding Standards — 공통 코딩 규약
특징
- XP는 엔지니어링 품질에 초점을 맞춘다. TDD, CI, Refactoring이 핵심이다
- Scrum이 "언제 계획하나"를 규정한다면, XP는 "어떻게 짜나"를 규정한다
- 실제 현장에서는 Scrum 프레임워크에 XP 실천을 결합하는 방식이 널리 쓰인다
영향
TDD, CI, Pair Programming, Refactoring은 오늘날 소프트웨어 공학의 상식이 되었다. GitHub의 Pull Request 리뷰 문화, CI/CD 파이프라인, JUnit 계열 테스트 프레임워크의 대중화는 XP의 직접적 영향이다.