Learning
토픽 21 / 192·애자일과 DevOps

XP (Extreme Programming)

XP (Extreme Programming)

소프트웨어 품질 향상과 변화 대응을 위해 기술적 실천법을 극단적으로 적용하는 애자일 방법론

제안자: Kent Beck (1999년)

특징: 기술적 실천법 강조, 짧은 반복 주기(1~2주), 고객 상주

5가지 가치: 의사소통, 단순성, 피드백, 용기, 존중

12가지 실천법

  • 계획 게임(Planning Game): 고객과 개발자가 함께 릴리스/반복 계획 수립
  • 소규모 릴리스(Small Releases): 짧은 주기로 동작하는 소프트웨어 릴리스
  • 메타포(Metaphor): 시스템을 이해하기 쉬운 비유로 공유
  • 단순 설계(Simple Design): 현재 요구사항만 충족하는 최소 설계
  • TDD(Test-Driven Development): 테스트 먼저 작성 후 코드 구현
  • 리팩토링(Refactoring): 기능 유지하며 코드 구조 지속 개선
  • 페어 프로그래밍(Pair Programming): 2인 1조로 실시간 협업 코딩
  • 공동 소유(Collective Ownership): 모든 코드를 팀 전체가 소유·수정 가능
  • 지속적 통합(CI): 코드 변경을 수시로 통합하고 자동 빌드·테스트
  • 주 40시간(Sustainable Pace): 지속 가능한 개발 속도 유지
  • 현장 고객(On-site Customer): 고객이 팀에 상주하여 즉시 피드백 제공
  • 코딩 표준(Coding Standards): 팀 전체가 동일한 코딩 규약 준수

장점: 품질 향상, 변경 대응력, 지식 공유

단점: 고객 상주 어려움, 페어 비용, 숙련도 필요

적용사례: 소규모 팀, 웹 개발, 품질 중시 프로젝트

비교: XP(기술실천) vs 스크럼(프로세스) vs 칸반(흐름)

연관: TDD, 페어프로그래밍, CI, 리팩토링