💡 핵심 인사이트
짝 프로그래밍은 XP(익스트림 프로그래밍)의 상징적인 개발 관행으로, 두 명의 개발자가 하나의 키보드와 모니터를 공유하며 함께 코드를 작성하는 기법입니다.
인건비가 2배로 들 것 같지만, 실시간 리뷰를 통한 '결함(버그)의 극단적 감소'와 '지식 전파' 덕분에 장기적으로는 유지보수 비용을 획기적으로 낮춥니다.


Ⅰ. 짝 프로그래밍의 역할 분담

두 사람은 똑같은 일을 하는 것이 아니라, 뇌의 스위치를 다르게 켜고 협업합니다.

  1. 드라이버 (Driver, 운전수)
    • 물리적 조작: 실제로 키보드와 마우스를 잡고 코드를 타이핑하는 사람입니다.
    • 시야 (미시적 관점): "이 변수 이름은 뭐로 하지? 이 for문은 어떻게 돌리지?" 등 당장 타이핑하는 라인 레벨의 문법과 로직 구현에 100% 집중합니다.
  2. 내비게이터 (Navigator, 길잡이)
    • 논리적 검토: 키보드에서 손을 떼고 화면을 지켜보며 타이핑되는 코드를 실시간으로 검열(Review)하는 사람입니다.
    • 시야 (거시적 관점): "저기 오타 났어. 근데 그 메서드 쓰면 널 포인터 에러 나지 않아? 이 로직이 아까 기획한 전체 아키텍처 방향에 맞아?" 라며 큰 그림을 보고 버그를 잡아냅니다.

(두 사람은 30분~1시간마다 역할을 서로 바꿉니다.)


Ⅱ. 짝 프로그래밍의 효과 (왜 경영진은 미쳤다고 하는가?)

"개발자 한 명당 500만 원인데, 둘이서 1대 PC로 코딩하면 생산성이 반토막 나는 거 아냐?"라는 경영진의 비판이 많습니다. 하지만 짝 프로그래밍의 본질은 속도가 아니라 **'품질'**입니다.

  1. 무결점 코드 (실시간 코드 리뷰): 한 명이 짠 코드를 나중에 다른 팀원이 리뷰하려면 이해하는 데 한 세월이 걸립니다. 짝 프로그래밍은 작성되는 그 0.1초의 순간마다 동료가 검토하므로, 오류가 생기자마자 박살 냅니다. 테스트와 디버깅에 쏟는 며칠 밤샘을 아껴줍니다.
  2. 사일로 파괴 (지식 공유): 시니어(시니어급 내비게이터)와 주니어(드라이버)가 짝을 이뤄 일하면, 구두로 가르칠 수 없는 시니어의 숨겨진 노하우와 단축키까지 주니어에게 전수됩니다. (최고의 OJT).
  3. 집중력 극대화: 혼자 일하면 몰래 유튜브를 보거나 스마트폰을 만지작거리지만, 옆에서 눈을 부릅뜨고 지켜보는 동료가 있으면 딴짓을 할 수 없어 100% 코딩에만 몰입(Flow)하게 됩니다.

Ⅲ. 성공적인 짝 프로그래밍을 위한 조건

  • 에고(Ego) 버리기: "내 코드를 지적하다니!"라는 자존심을 버려야 합니다. 내비게이터의 지적을 비난이 아닌 도움으로 받아들이는 **상호 존중(Respect)**이 필수입니다.
  • 주기적인 파트너 교체 (Promiscuous Pairing): 맨날 친한 A와 B만 짝을 하면 편향이 생깁니다. 매일매일 짝을 무작위로 섞어서 팀 전체의 코드가 뇌를 공유하게 만들어야 합니다.

📢 섹션 요약 비유: 짝 프로그래밍은 WRC(월드 랠리 챔피언십)의 레이싱 카 탑승법입니다. 핸들을 잡은 드라이버는 전방 10m의 돌부리(오류)를 피하며 액셀을 밟는 데만 집중하고, 옆자리의 **내비게이터(조수)**는 전체 지도를 보며 "50m 앞 급커브, 브레이크 밟아!"라고 방향(아키텍처)을 지시하여 완벽한 무사고 레이스를 펼치는 것입니다.