본문 바로가기
Project History/- Seoul Dev Competition

웹 개발 중에 페어 프로그래밍의 이해와 경험 정리

by Yoojacha 2023. 5. 6.

페어 프로그래밍이란?

페어 프로그래밍은 두 명의 개발자가 함께 작업하여 하나의 작업을 수행하는 방법입니다.

경험하게 된 계기

저는 FE와 팀 리더를 맡고 있었으며, 팀원 한 명이 문서정리와 FE 보조 역할을 수행했습니다. 이 과정에서 제가 멘토, 팀원이 멘티로서 페어 프로그래밍을 하게 되었습니다. 사실 페어프로그래밍은 실력이 비슷한 사람과 해야하는 것이 맞습니다. 왜냐하면 네비게이터와 드라이버로 역할분담이 나뉘며 각자 맡은 역할에 치중하기 때문에 네비게이터가 수준이 높다면 코드를 만지지 않아서 답답함을 느낄 수 있기 때문입니다.

네비게이터와 드라이버

네비게이터는 문제 해결 방법에 대해서 고민하며, 코드의 디자인, 알고리즘, 아키텍처 등에 대한 결정을 내립니다. 그래서 드라이버가 올바른 방향으로 코드를 작성하도록 가이드해야합니다.

드라이버는 코드를 직접적으로 뜯어보면서 코딩하는 것에 집중합니다. 드라이버는 네비게이터의 지시에 따라서 코드를 작성합니다.

네비게이터와 드라이버 역할은 주기적으로 교대될 수 있습니다. 페어 프로그래밍 세션의 일정 시간 동안 네비게이터와 드라이버가 역할을 교대하면서 함께 작업하는 것이 일반적입니다.

페어 프로그래밍의 장점

  • 지식 공유와 학습효과

두 개발자가 함께 작업하여 지식과 경험을 공유하고 학습하게됩니다.

  • 코드 품질 향상

실시간으로 코드를 검코하고 피드백을 주고 받으면서 코드의 품질을 높일 수 있습니다. 코드 작성하는 가치관이나 습관이 달라서 생기는 차이점을 일치시킬 수도 있습니다.

페어 프로그래밍의 단점

  • 코드 생산성 저하

두 명이 같은 코드를 보면서 의사소통과 합의를 거쳐서 코드를 작성하기 때문에 투입하는 에너지 대비 코드 생산성이 낮습니다.

  • 사람에 따라 갈등 발생

호흡과 성향이 잘 맞지 않는 사람끼리 페어 프로그래밍을 한다면. 싸움(?)이 날 수 있습니다. 성격이 급해서 상대방을 존중하지 않는 태도로 코드 리뷰와 피드백을 하게 된다면 감정이 상할 수 있습니다.

페어 프로그래밍에 대한 개인적인 생각과 경험

저는 팀원이 보조 역할로서 FE 포지션을 참여하면서 개발 실력에 차이가 크다보니 팀원의 개발 시간 소비가 비효율적이라는 판단이 들어서 제가 코드를 리뷰하고 피드백 해주는 형식으로 Live Share를 사용했습니다.

 

하지만 이는 코드 스타일 뿐만 아니라 저와의 실력과 경험 차이로 인해서 강의를 해주는 형식으로 바뀌고 제가 코드를 직접 만지게 되는 상황까지 생겨서 저의 개발 임무를 수행하지 못하는 상황이 생겼었습니다.

 

강의 하는 형식으로 진행이 되면서 더욱 코드 생산성이 떨어지게 되고, 의사소통에 에너지를 소모하게 되면서 후회를 했습니다... 페어 프로그래밍을 한다면 꼭 네비게이터는 코드 하나하나 꼼꼼하게 보려고 하지 말고, 넓게 틀을 중심으로 지켜봐주는 것이 좋다고 느꼈습니다. 그리고 코드스타일이나 규칙 등은 사전에 미리 공유가 되어있어야 한다고 생각합니다. 제가 코드를 보고 리뷰를 하면서 마음에 안드는 부분이 생길 때마다 언급하고, 고치는 과정에서 본질을 벗어나는 코딩을 하다보니 시간 소요가 발생했습니다.


https://80000coding.oopy.io/5fe0df00-c385-413b-899d-759a46868842

 

페어 프로그래밍이란? (feat. VSCode Live Share)

목차

80000coding.oopy.io

 

댓글