페어 프로그래밍이란?
•
애자일 소프트웨어 개발 방법론 중 하나다.
•
하나의 컴퓨터에서 두 명의 사람이 작업하는 것으로 네비게이터와 드라이버가 존재한다. 차 그거 맞다.
•
네비게이터가 전략을 제시하고 드라이버가 실제 코드를 작성하며 이 역할을 번갈아가며 수행한다.
네비게이터
•
문제 해결 방법을 논리적으로 생각하고, 그 과정을 상대에게 말로 설명하는 역할이다.
•
이때 코드를 직접 말하거나 키보드를 잡아서는 안 된다.
•
이 역할의 핵심은 '어떤 식으로 문제를 해결할 수 있는지 명확히 설명하는 것이다.
•
네비게이터는 드라이버가 코드를 작성하는 동안 관찰자의 입장으로 코드를 검토하고 지식을 전달하며 생각을 공유한다.
•
코드의 세부사항은 드라이버에게 맡기고, 드라이버보다 넒은 관점으로 설계, 구조에 대한 문제와 버그를 파악하는데 집중한다.
드라이버
•
드라이버는 키보드를 소유하고 있는 사람으로, 네비게이터가 설명한 논리적 방식대로 실제 코드를 작성하는 역할이다.
•
드라이버는 네비게이터와 논의 할 수 있도록 작성하는 모든 코드에 대해 말로 설명해가며 작업을 진행한다.
•
드라이버는 네비게이터의 질문과 의견에 적극적으로 응해야 한다.
•
네비게이터의 가이드를 이해하려고 노력하며 현재의 목표를 완수하는데 집중해야 한다.
장점
•
지식공유
•
목표에 집중
•
실시간 코드 리뷰
•
두가지 사고방식 연습
유의할 점
•
산만하지 않기
⇒ 당연하다.. 둘의 소통..
•
마이크로 매니징 모드는 금물
⇒ 사사건건 간섭하지마라..!
•
조바심 내지 말자
⇒ 아으.. 그거 그렇게하는 거 아닌데.. 금지!
•
키보드 정복자가 되지 말자
⇒ 어 내가 다 할거야~ 도 금지!