Learning
토픽 126 / 192·소프트웨어 표준과 법제도

페어 프로그래밍 (Pair Programming)

페어 프로그래밍 (Pair Programming)

두 명의 개발자가 하나의 컴퓨터에서 함께 프로그래밍하는 기법으로, Driver(코드 작성)와 Navigator(검토/가이드) 역할을 교대하며 실시간 코드 리뷰와 협업을 수행

목적: 코드 품질 향상, 지식 공유, 학습, 집중력 유지, 버그 감소

특징: 실시간 협업, 역할 교대, 지속적 리뷰, 사회적 프로그래밍

역할 분담

  • Driver: 키보드 조작, 코드 작성, 세부 구현에 집중
  • Navigator: 전체 설계, 방향 제시, 오류 발견, 개선 제안
  • 역할 교대: 15-30분마다 또는 작업 단위로 교대

페어 프로그래밍 스타일

  • Driver-Navigator: 전통적 방식, 역할 명확
  • Ping-Pong: TDD와 결합, 테스트 작성 ↔ 구현 교대
  • Strong-Style: Navigator만 아이디어 제시, Driver는 타이핑만

효과적인 페어링 전략

  • 경험자 + 초보자: 멘토링, 지식 전수
  • 동등 경험자: 다양한 관점, 창의적 해결
  • 원격 페어링: VS Code Live Share, Tuple, Screen Share

장점: 코드 품질, 버그 감소, 지식 공유, 온보딩, 집중력

단점: 비용(2인), 피로도, 성격 충돌, 일부 작업에 부적합

페어링이 효과적인 상황: 복잡한 문제, 신규 입사자 온보딩, 중요한 기능, 학습

페어링이 비효율적인 상황: 단순 반복 작업, 탐색적 작업, 개인 선호

적용사례: XP(Extreme Programming), 애자일 팀, 신규 입사자 교육

기술요소: Driver/Navigator, Ping-Pong, 원격 도구, 역할 교대

비교: 페어 프로그래밍(동기 협업) vs 코드 리뷰(비동기) vs 몹 프로그래밍(3인 이상)

연관: XP, TDD, 코드 리뷰, 애자일, 지식 공유, 온보딩