이 방법이 필요한 이유
페어 프로그래밍을 하다 보면 한 가지 불편한 상황이 생긴다. 드라이버가 바뀔 때마다 노트북을 들고 자리를 옮기거나, 한 컴퓨터에 두 명이 붙어 앉아야 하거나, 코드를 슬랙으로 전달하거나... 그렇게 힘들게 완성해도 커밋 히스토리는 한 사람 것만 남아있게 된다.
또 하나의 노트북으로 할 경우, 둘의 설정(필자의 경우 OS)이 달라서 불편한 경우가 있다.

Git으로 origin 외에도 원격 저장소를 추가로 연결할 수 있다는 점을 활용하면 이 문제를 깔끔하게 해결할 수 있다. 각자 자기 자리에서, 자기 노트북으로, 커밋 히스토리도 온전히 남기면서 페어 프로그래밍을 할 수 있다.

사전 설정 (최초 1회)
서로의 GitHub 레포지토리를 pair라는 이름의 원격 저장소로 등록한다. 이 작업은 처음 한 번만 진행하면 된다.
본인 터미널에서:
git remote add pair https://github.com/<페어의 깃허브 아이디>/<페어의 레포지토리 이름>
ex) git remote add pair https://github.com/jihwankim128/java-blackjack.git
(첫 미션에서 이 방법을 처음 설명해준 최고의 페어 이프의 레포이다.)
페어 터미널에서:
git remote add pair https://github.com/<본인의 깃허브 아이디>/<본인의 레포지토리 이름>
등록 후 아래 명령어로 제대로 연결됐는지 확인할 수 있다.
git remote -v
아래 이미지처럼 origin과 pair가 모두 보인다면 성공이다. 이후 함께 작업할 공통 브랜치를 각자 만들어준다. 브랜치 이름은 서로 통일해야 한다.

git checkout -b step1
여기까지 완료됐다면 사전 준비는 끝이다.
페어 프로그래밍 사이클
이제부터는 아래 사이클을 계속 반복하면 된다.
① 드라이버가 작업 후 본인 origin에 push
드라이버는 작업을 완료한 후, 터미널에 다음과 같이 입력하여 자신의 원격 저장소(origin)의 step1 브랜치에 push 한다.
git add .
git commit -m "docs: readme 작성"
git push origin step1
② 역할 교대 — 새 드라이버가 pair에서 pull
코드를 작성하기 전, 새 드라이버는 반드시 페어의 최신 내용을 먼저 가져와야 한다.
git pull pair step1
그다음 이어서 이름 입력받기 작업을 완료했다고 하자. 작업이 완료되면 아래와 같이 다시 본인 origin에 push한다.
git add .
git commit -m "feat: 이름 입력받기"
git push origin step1
다시 페어는 pull을 받은 후 작업을 시작한다.
...
이 작업이 계속 반복된다.

앞으로 페어 프로그래밍이 끝날 때까지 이 사이클(pull pair -> 작업 -> push origin)을 계속 반복하면 된다.

위 사진과 같이 커밋 히스토리를 온전히 가져갈 수 있다.
이 방식의 장점
1. 노트북을 바꿀 필요가 없다. 각자 자기 자리에서 본인 키보드와 모니터로 편하게 작업할 수 있다. 코드를 옮기거나 한 컴퓨터에 두 명이 붙어 앉는 수고를 덜 수 있다.
2. 커밋 히스토리가 온전히 남는다. 두 사람의 커밋 내역이 시간순으로 자연스럽게 엮인다. 누가 어떤 코드를 작성했는지 추적하기 쉽고, PR을 보낼 때도 깔끔한 히스토리를 유지할 수 있다.
3. 각자의 개발 환경을 그대로 쓸 수 있다. 단축키, 테마, 플러그인 등 본인에게 최적화된 IDE 환경 그대로 작업할 수 있어 생산성이 떨어지지 않는다. 각자의 로컬에 최신 코드가 남아있어 복습이나 리팩터링을 따로 진행하기도 편하다.
이 글을 첫 페어프로그래밍 하면서 나에게 많은 가르침을 준 이프에게 바친다..!
페어 프로그래밍하면서 커밋 히스토리 때문에 고민이었던 크루들에게 도움이 됐으면 좋겠다는 마음에 작성한다.
혹시 더 좋은 방법이 있다면 공유해주세요!! 😊
'우아한테크코스 8기 백엔드' 카테고리의 다른 글
| [우테코 8기 BE] 온보딩 회고 (0) | 2026.03.22 |
|---|---|
| [우테코 8기 BE] 최종시험 후기 및 회고 (0) | 2026.01.24 |
| [우테코 8기 BE] 4 & 5 주차 오픈미션 (0) | 2025.11.24 |
| [우테코 8기 BE] 3주차 로또 리뷰 (0) | 2025.11.02 |
| [우테코 8기 BE] 2주차 자동차 경주 리뷰 (0) | 2025.10.27 |