토픽 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, 리팩토링