Skip to main content

Command Palette

Search for a command to run...

극한 프로그래밍?

Updated
3 min read
극한 프로그래밍?

XP(Extreame Programming, 이하 XP)는 애자일 방법론 중 하나이다. 고객의 요구가 자주 변하는 환경에서 소프트웨어 품질을 높이고, 변화에 빠르게 대응하기 위해 고안된 개발 방법을 말한다.

1990년대, 켄트 백(kent back)이 chrysler c3 프로젝트에서 처음 체계화했다고하며, 짧은 개발 주기와 강한 피드백 루프, 협업 중심 문화를 특징으로 한다.

XP는 “가치를 극대화하려면 좋은 활동들을 극단으로 끌어올리자”라는 철학을 기반으로 한다. 예를 들어, 코드 리뷰가 좋다면 “항상 함께 코딩한다(Pair Programming)”, 테스트가 중요하다면 “테스트를 먼저 작성한다(TDD)”처럼 실천 활동들을 극단적으로 적용한다.

XP의 목적

XP의 목적은 크게 세 가지로 요약할 수 있다.

  1. 변화에 대한 민첩한 대응

요구사항이 자주 바뀌어도 짧은 개발 사이클과 지속적 개선, 고객과의 긴밀한 소통을 통해 빠르고 정확하게 대응하는 것을 목표로 한다.

  1. 높은 품질의 소프트웨어 제공

TDD, 지속적 통합(CI), 리팩터링 등을 통해 기술적 부채를 줄이고 코드 품질을 지속적으로 유지한다.

  1. 팀의 생산성 및 행복 증진

지속 가능한 속도, 협업 중심 문화, 명확한 피드백 구조를 통해 개발자가 지치지 않고 이끌어갈 수 있는 환경을 만든다

XP의 핵심 가치(Core Values)

XP는 크게 5가지의 핵심 가치를 기반으로 한다

  1. 의사소통(Communication)

팀원 간 지속적이고 솔직한 소통을 강조한다

  1. 단순성(Simplicity)

지금 필요한 것만 구현하고, 과도한 설계를 지양한다

  1. 피드백(Feedback)

테스트, 고객, 팀 내부 등 다양한 피드백 루프를 통해 개발을 조정한다

  1. 용기(Courage)

불필요한 코드를 지우거나 설계를 바꾸는 데 두려움을 갖지 않는다

  1. 존중(Respect)

팀원 간 상호 존중을 통해 신뢰 기반의 작업 환경을 만든다

XP의 주요 실천 방법(Practices)

XP를 구성하는 대표적 실천 기법은 다음과 같다고한다.

  1. 페어 프로그래밍(Pair Programming)

두 명의 개발자가 한 컴퓨터 앞에서 함께 코딩하며, 지속적인 리뷰와 지식을 공유한다.

  1. 테스트 주도 개발(TDD)

테스트를 먼저 작성하고, 테스트를 통과시키는 최소한의 코드만 작성한 뒤 리팩터링을 반복한다

  1. 지속적 통합(CI)

코드를 자주 통합하고 테스트가 자동 실행되도록 하여 오류 발생 시 빠르게 잡는다

  1. 리팩터링(Refactoring)

동작을 유지하면서 코드 구조를 개선하는 활동을 지속적으로 수행한다

  1. 작은 릴리즈 (Small Releases)

기능을 작은 단위로 구현하고, 빠르게 배포/피드백을 받는다

  1. 고객 상주(On-site Customer)

프로젝트 동안 실제 고객이 개발 팀과 밀접하게 소통할 수 있도록 한다

  1. 플래닝 게임(Planning Game)

고객과 개발자가 함께 우선순위를 결정하고, 다음 반복(Iteration)의 범위를 정하는 기법이다

XP의 장점

XP는 특히 요구사항이 변화가 잦은 프로젝트에서 높은 효율을 보인다.

  1. 변화 대응력 강화

짧은 반복 주기와 고객 피드백으로 변화 요구를 빠르게 반영할 수 있다

  1. 높은 코드 품질

TDD, 리팩터링, 페어 프로그래밍 등은 결과적으로 결함을 줄이고, 유지보수성을 높인다

  1. 위험 감소

지속적 통합과 반복적인 기능 구현으로 리스크를 초기 단계에서 발견할 수 있다

  1. 팀 역량 향상

페어 프로그래밍, 공동 소유자 전통(Collective Ownership) 등이 지식 공유와 팀 역량 상승에 기여한다

  1. 고객 만족도 증가

고객이 개발 과정에 참여하기 때문에 전달되는 결과물과 요구의 일치도가 높다

XP의 단점

XP는 여러 이점을 제공하지만 모든 상황에 적합하진느 않다

  1. 팀 문화 성숙도가 필요

소통 중심 문화가 약하거나, 갈등이 많은 팀에선느 XP의 효과가 반감될 수 있다

  1. 고객 참여 요구가 높음

고객이 지속적으로 참여해야 하기 때문에 부담이 크거나 참여가 어려운 고객에게는 적용하기 힘들 수 있다

  1. 페어 프로그래밍 비용 증가

두 사람이 한 작업에 투입되므로 단기적으로는 투입 인력 대비 생산성이 낮아 보일 수 있다

  1. 큰 조직, 복잡한 프로젝트 적용 어려움

대규모 조직에서는 XP가 요구하는 높은 유연성과 직접적인 커뮤니케이션 구조를 유지하기 어렵다


이처럼 XP는 단순함, 피드백, 용기, 그리고 협업을 기반으로 하는 실천 중심의 방법론이다. 모든 프로젝트에 적합하지는 않지만 변화 대응과 코드 품질 측면에서 큰 강점을 제공하며, 팀의 문화가 이를 지지한다면 강력한 개발 방식이 될 수 있다.

More from this blog

갑자기 모든 Gateway에서 500이 발생했던 이유

배경 오후 12:40 분 경, 운영 환경의 Gateway 세 개가 동시에 많은 에러가 발생했습니다. 인터널, 유저향, 외부 파트너(Open) 까지 세 서비스 모두 500과 502가 같이 폭증했어요. 세 서비스가 같은 시점에 같이 발생했다는 건 경험상 보통 두 가지 중 하나였어요. 첫째는 공통 의존 대상에 문제가 생겼을 때, 둘째는 트래픽 자체가 spike

May 25, 20269 min read

데이터로 해자를 만든다는 것

배경 미용 의료 플랫폼은 크게 두 종류의 데이터를 가지고 있습니다. 하나는 예약 데이터입니다. 고객이 어떤 시술을 원하고, 얼마를 지불할 의향이 있는지. 강남언니 같은 예약 플랫폼이 이 데이터를 대량으로 보유하고 있죠. 다른 하나는 "실 결제 데이터"입니다. 고객이 병원에 와서 실제로 어떤 시술을 받고, 얼마를 결제했는지. 병원 CRM(KOS, 제품 이름

May 7, 20268 min read10

리텐션이 0에 수렴해서 데이터부터 다시 들여다봤더니

Foundry는 백엔드 엔지니어를 위한 기초 지식 학습 플랫폼입니다. 시험을 보고, 틀린 문제를 오답노트에 정리하고, 개념을 복습하는 서비스인데요. 베타 오픈 후 커뮤니티에 올려서 유저도 좀 모았고, 기능도 하나하나 잘 만들어놨다고 생각했습니다. 그런데 GA4를 열어보니 현실은 달랐거든요. 문제: 숫자가 말해주는 현실 GA4 리포트를 열어봤더니 대시보드 페

Mar 15, 20265 min read38

물음표 엔지니어

22 posts

기술적 접근에 있어 트레이드 오프에 대한 고민을 다뤄보려합니다.

(Deprecated Blog: https://jeongkyun-it.tistory.com)