본문으로 건너뛰기

버그 제보

이상한 점을 알려 주시면 고칠게요. 지금 보고 있는 페이지와 브라우저 정보가 함께 담겨요.

페이지:

Career

페어 프로그래밍

작성 2026. 10. 14.추가
목차10개 항목
출처와 참고

팔만코딩경(42Seoul 커뮤니티 위키)의 「페어 프로그래밍이란? (feat. VSCode Live Share)」을 바탕으로 재구성한 노트다. 맥락 공유·터널 비전 방지와 일부 진행 규칙은 「주니어의 짝코딩 경험기」를 바탕으로 보강했다.

페어 프로그래밍이란

페어 프로그래밍(pair programming, 짝 프로그래밍)은 두 사람이 하나의 작업을 한 화면에서 함께 프로그래밍하는 방식이다. 익스트림 프로그래밍(XP)에서 나온 애자일 실천법으로, 즉각적인 피드백으로 동작하는 소프트웨어를 빨리 만드는 것이 목표다.

두 사람은 역할을 나누고, 정해진 주기마다 바꾼다.

역할하는 일하지 않는 일
드라이버(Driver)키보드를 잡고 실제 코드를 쓴다. 쓰는 코드를 소리 내어 설명하고, 내비게이터의 질문에 답한다혼자 방향을 정하고 달려가기
내비게이터(Navigator)문제를 어떻게 풀지 말로 설명한다. 설계·구조·놓친 버그처럼 넓은 범위를 본다코드를 한 줄씩 불러 주거나 키보드 잡기

왜 역할을 나누나

한 코드를 두 관점에서 동시에 보기 위해서다. 드라이버는 문법과 세부 구현(나무)에, 내비게이터는 전체 구조와 다음 단계(숲)에 집중한다. 혼자 짤 때는 이 두 관점을 번갈아 오가야 해서 둘 다 흐려진다.

장점과 단점

장점설명
지식 공유상대의 기술, 단축키, 디버깅 습관을 바로 옆에서 배운다. 새 팀원의 온보딩에 특히 효과적이다
집중 유지짝이 있으면 메신저·휴대폰으로 새는 시간이 줄어든다
빠른 피드백오타부터 설계 결함까지 쓰는 즉시 잡힌다. 사실상 실시간 코드 리뷰다
맥락 공유함께 쓰면 따로 설명하지 않아도 코드의 배경과 의도가 두 사람에게 남는다
터널 비전 방지한 해법에 갇혀 있을 때 짝이 다른 길을 짚어 준다
합의된 코드접근 방식과 컨벤션을 함께 정하므로 나중에 리팩터링할 때 이견이 적다
단점대응
체력 소모가 크다계속 말하고 들어야 한다. 휴식을 일정에 넣고, 각자 생각을 정리하는 시간을 둔다
실력 차가 크면 생산성이 떨어진다한쪽이 설명에 시간을 다 쓴다. 이때는 목표를 "산출"이 아니라 "지식 전달"로 바꿔 잡는다
감정 충돌코드에 대한 피드백이 사람에 대한 공격으로 들리지 않게 말하고, 듣는 쪽도 코드와 자신을 분리한다

진행 방식

1. 핑퐁 프로그래밍 (페어 + TDD)

TDD의 Red → Green 사이클에 역할 교대를 붙인다.

sequenceDiagram
  participant A
  participant B
  Note over A: 실패하는 테스트 작성
  A->>B: 키보드를 B에게 (ping)
  Note over B: 테스트 통과 코드 작성 → 다음 실패 테스트 작성
  B->>A: 키보드를 A에게 (pong)
  Note over A: 통과 코드 작성 → 다음 실패 테스트 ...

한 사람은 테스트만, 다른 사람은 구현만 맡는 변형도 있다. 테스트가 대화의 단위가 되어 역할 교대가 자연스럽다.

2. 포모도로 페어링

타이머로 역할 교대와 휴식을 강제한다.

  1. 다음 작업과 역할을 정한다.
  2. 합의한 시간(전통적으로 25분) 동안 작업한다.
  3. 타이머가 울리면 멈추고 5~10분 쉰 뒤 역할을 바꿔 다시 시작한다.
  4. 34회 반복하면 1530분 길게 쉰다.

3. 스트롱 스타일 (Strong-Style)

"내 아이디어가 컴퓨터에 들어가려면 다른 사람의 손을 거쳐야 한다." 드라이버는 내비게이터가 말하지 않은 것은 아무것도 하지 않는다. 내비게이터가 경험이 많고 드라이버가 언어·도구에 처음일 때 지식 전달에 강하다. 드라이버는 이해가 덜 된 상태를 견디며 따라간다. 마이크로매니징에 가까우므로 온보딩 초기에만 쓰고, 점차 역할을 바꿔 벗어나는 것을 목표로 한다.

진행 규칙

규칙이유
화면은 두 사람 가운데에 둔다누가 주인이라는 느낌을 없애 대등한 관계를 만든다
메신저·휴대폰은 치운다상대에게 무례하고 흐름을 끊는다. 집중이 떨어지면 차라리 쉰다
한 줄씩 지시하지 않는다"여기 변수 선언하세요"는 상대의 생각할 여지를 없앤다. 의도를 말하고 구현은 드라이버에게 맡긴다
실수를 보면 5초 기다린다드라이버가 이미 알고 있을 수 있다. 바로 끼어들면 흐름이 끊긴다
키보드를 독점하지 않는다답답해서 키보드를 빼앗으면 상대는 코드 쓰기를 두려워하게 된다
더 아는 쪽은 답보다 질문을 던진다상대가 스스로 떠올리게 하면 지식이 더 오래 남는다
드라이버는 이해한 뒤 타이핑한다받아 적기만 하면 흐름을 놓치고, 놓치면 뒤 코드도 따라가지 못한다. 모르면 바로 묻는다
상태를 자주 확인한다서로의 이해도와 진행을 주기적으로 맞춰야 피드백이 밀리지 않는다
끝나면 정리 시간을 둔다세션 뒤 바뀐 것과 남은 일, 서로에 대한 피드백을 짧게 나눈다

원격 페어링 도구

같은 자리에 없으면 에디터를 공유한다.

도구특징
VS Code Live Share확장 설치 후 링크로 초대한다. 같은 파일 동시 편집, 터미널·로컬 서버 공유, 상대 커서 따라가기(Follow)를 지원한다. 게스트에게 읽기 전용 또는 읽기·쓰기 권한을 줄 수 있다
JetBrains Code With MeIntelliJ 계열 IDE의 같은 용도 기능
화면 공유 + 역할 교대 시 git push/pull도구 설치 없이 가능. 교대할 때마다 커밋을 넘긴다

정리

  • 페어 프로그래밍은 드라이버(나무)와 내비게이터(숲)로 관점을 나눠 한 코드를 함께 쓰는 방식이다.
  • 지식 공유와 실시간 리뷰가 강점이고, 체력 소모와 실력 차·감정 문제가 비용이다.
  • TDD와 묶은 핑퐁, 타이머로 교대하는 포모도로, 온보딩용 스트롱 스타일을 상황에 맞게 고른다.
  • 대등한 자리, 지시 대신 의도, 기다림, 키보드 양보가 짝을 존중하는 기본 규칙이다.

관련 노트: 협업을 잘하는 개발자, 애자일과 스프린트, 프론트엔드에서의 TDD, 리뷰 코멘트와 PR 소통

원본 기록2

댓글

GitHub 계정으로 댓글을 남길 수 있어요.