본문 바로가기

제안&정리

XP, Coding Dojo, 그리고 Driver/Navigator - 왜 함께 이야기해야 하는가

블로그를 한/영 병행 공간으로 옮길 예정인데, 그 전에 근황 겸 공부 기록을 여기에 간단히 남겨봅니다.

오늘은 회사에서 Coding Dojo를 도입하면서 관련 개념들을 Claude와 함께 대화하며 정리했습니다. 직접 묻고 답하면서 정리한 내용이라 평소보다 이해가 잘 됐습니다. 아래는 그 내용을 블로그 글 형태로 옮긴 것입니다.

 

단순히 "둘이서 코딩하는 것"으로 알고 있던 Pair Programming이 사실은 XP(Extreme Programming)라는 방법론의 맥락 안에서 탄생했고, Coding Dojo는 그 practice를 팀 차원에서 훈련하기 위한 구조적 장치라는 것을 이해하는 데 시간이 걸렸습니다. 이 글은 그 연결 고리를 정리한 기록입니다.

1. XP (Extreme Programming)

XP는 1990년대 말 Kent Beck이 제안한 소프트웨어 개발 방법론입니다. 핵심 아이디어는 단순합니다.

"좋은 practice라면, 극단적으로 많이 하면 더 좋지 않을까?" (If something is good, let's do it all the time.)

코드 리뷰가 효과적이라면 → 항상 리뷰하자 → Pair Programming. 테스트가 중요하다면 → 코드 작성 전에 먼저 테스트를 짜자 → TDD. 빈번한 배포가 리스크를 줄인다면 → 매우 짧은 주기로 배포하자 → Continuous Integration. 이처럼 XP는 검증된 개발 practice를 "극단적으로" 일상화하는 것을 지향합니다.

5가지 핵심 가치

XP를 실천하다 보면 자연스럽게 중요해지는 근본 정신이 있습니다. 이것은 "극한까지 실천해야 하는 규칙"이 아니라, XP라는 방법론이 전제하는 팀의 가치관에 가깝습니다.

  • Communication (소통)
  • Simplicity (단순함)
  • Feedback (피드백)
  • Courage (용기)
  • Respect (존중)

특히 Courage는 Coding Dojo와 직결됩니다. 실수가 허용되는 환경에서만 개발자는 새로운 접근법을 과감하게 시도할 수 있습니다. Dojo가 그 환경을 만듭니다.

2. Coding Dojo

Dojo(道場)는 무술 훈련 공간을 뜻하는 일본어입니다. Coding Dojo는 이 개념을 소프트웨어 개발에 적용한 것으로, 팀이 함께 코딩 practice를 훈련하는 정기적인 시간과 공간을 의미합니다.

무술 도장의 세 가지 속성 — 반복 연습, 동료와 함께하는 학습, 실수가 허용되는 안전한 환경 — 이 그대로 적용됩니다. 보통 작은 코딩 문제(kata)를 함께 풀며 진행되고, Pair Programming 또는 Mob Programming(3명 이상) 방식을 사용합니다.

세션 구조

단계시간내용

문제 소개 ~5분 오늘 풀 kata 설명. 제약 조건(constraint)을 명시하기도 합니다.
코딩 ~60~90분 Driver/Navigator 역할을 5~7분 단위로 교체하며 진행합니다.
회고 ~10~15분 무엇을 배웠는지, 다음에 무엇을 바꿀지 팀 전체가 공유합니다.

회고는 단순한 마무리가 아닙니다. 처음 Coding Dojo를 도입하면 대부분의 팀원이 어색함을 느끼는데, 회고를 통해 그 어색함을 공개적으로 다루고 다음 세션을 개선하는 것이 Dojo가 지속 가능한 practice로 자리잡는 핵심 메커니즘입니다.

3. Driver / Navigator

Pair Programming의 역할 구조입니다. 두 역할은 상호 보완적이며, 어느 한쪽이 수동적이면 Pair Programming의 효과가 반감됩니다.

Driver

키보드를 잡고 실제 코드를 작성합니다. 단순 타이핑이 아니라 구현 상 판단을 내리며, 막히면 적극적으로 의견을 제시해야 합니다.

Navigator

큰 그림을 보며 방향을 제시합니다. 다음 단계를 구상하고, 버그나 더 나은 설계 방향을 찾는 데 집중합니다.

역할은 5~7분 단위로 교체합니다. 한 사람이 Driver를 독점하면 나머지는 점차 관찰자로 전락하고, 지식 공유라는 Pair Programming의 핵심 목적이 무너집니다. 3명 이상이 참여하는 Mob Programming에서는 Driver 1명, 나머지 전원이 Navigator 역할을 맡습니다.

세 개념의 연결

요약

  • XP — 좋은 개발 practice를 일상화하는 방법론입니다. Pair Programming은 그 practice 중 하나입니다.
  • Coding Dojo — XP의 practice를 팀 차원에서 안전하게 훈련하는 구조적 장치입니다.
  • Driver/Navigator — Coding Dojo에서 Pair Programming을 효과적으로 운영하기 위한 역할 프레임입니다.

코드 리뷰와 Coding Dojo를 병행 운영하는 팀이라면, 코드 리뷰는 Feedback과 Communication을, Coding Dojo는 Courage와 Respect를 주로 강화하는 구조라고 볼 수 있습니다. 두 practice는 경쟁 관계가 아니라 서로 다른 XP 가치를 보완하는 관계입니다.


첫 Coding Dojo 세션에서 어색함은 피할 수 없을 것 같습니다. 그래도 그 자체가 무엇인가를 도전하고 실천하고 있다는 신호라고 생각합니다.