일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 예리님
- 몽고엔진
- 프리온보딩
- js
- 파이콘코리아
- 코드프레소
- 위코드
- mongodb
- mongoengine
- git
- 원티드
- 네트워크
- javascript
- AWS
- 파이썬
- env
- 알고리즘
- 깃
- 코테문제
- 리액트
- codepresso
- cleancode
- 이웅모
- Python
- 코테
- React
- flask
- 플라스크
- 환경변수
- 패스트캠퍼스
- Today
- Total
개발자가 내팔자
어쩌다 모르는 사람과 갑자기 비대면으로 페어 프로그래밍 하기 본문
뭐...
그렇게 됐다.
원래 한 치 앞도 알 수 없는 것이 인생이라지 않는가.
1년 넘게 42Seoul을 진행하면서 모르는 사람들에게 내 코드를 평가 받고 모르는 사람들의 코드를 평가해주는 색다른 시간들에 충분히 익숙해졌다고 생각했는데, 처음 만난 사람과 갑자기 페어 프로그래밍을 하는 경험은 이번이 또 처음이었다. 굉장히 새롭고 재미있는 경험이었다.
개발 환경
슬랙이 무료 버전이라 화면 공유가 안돼서 구글 밋으로 화면 공유를 하고, liveshare로 코드 공유를 했다.
페어 프로그래밍이란?
페어 프로그래밍은 애자일 개발 방법론 중의 하나로 하나의 개발 가능한 PC 에서 두 명의 개발자가 함께 작업하는 것을 말합니다. 네비게이터(navigator)가 전략을 제시하고 드라이버(driver)가 실제 코드를 작성하며, 이 열할을 각자 번갈아가며 수행합니다.
( 출처 : Mathpresso 개발방법론 — 1. 페어 프로그래밍(pair programming) )
지금까지 경험한 페어 프로그래밍
드라이버는 네비게이터의 지식을 강제로 흡수하며 코드를 짤 수 있고, 네비게이터는 드라이버에게 설명하며 입코딩을 하기 때문에 강제로 코드리뷰를 받게 된다. 이전에 내가 했던 페어 프로그래밍은 이미 서로 잘 아는 사이에서, 나보다 더 잘 하는 동료와 함께 진행됐다. 동료는 주로 입코딩을 하면서 자신의 로직을 내게 설명하고(네비게이터), 나는 타이핑을 하며 코드를 강제로 이해하고는 했다(드라이버).
하나의 컴퓨터로 두명이 개발을 하기 때문에 조금 더 느릴 거라고 생각할 수 있지만, 각자 코드를 짜고 서로 코드 리뷰를 해주는 시간이 따로 필요하지 않아서 (짤 때 이미 상의하면서 짜기 때문에) 생각보다 시간 절약이 많이 됐다고 생각한다. 그리고 밀접한 소통으로 서로가 가진 지식의 간극을 보다 쉽게 좁힐 수 있다. 때문에 오히려 잘 하면 단기간에 가장 빨리 성장하면서 결과물을 낼 수 있는 방법 중 하나라고 생각한다. 페어 프로그래밍 덕분에 나는 동료에게 많이 배우며 성장할 수 있었다.
단점이 있다면, 동료의 지식을 내 것이라고 착각할 수도 있다는 점. 그리고 둘 다 정신을 놓으면 코드는 합의하에 아주 민주적인 절차에 따라 안드로메다로 가버릴 수 있다는 점. 정신 똑바로 차려
페어 프로그래밍은 소통이 가장 중요하고, 두 사람의 합이 잘 맞아야 한다. 물론 다른 팀플도 다 그렇지만 페어 프로그래밍은 내가 팀원의 손가락이 되어야 하고, 팀원의 눈과 머리가 되어야 한다고 보면 된다.
갑자기요? 여기서요?
그런데 개발 스타일은 커녕 그 사람이 누군지 어떤 성향을 가진 사람인지.. 나아가 얼굴도 나이도 잘 모르는, 이름만 겨우 아는 상태에서 짝이 되었고, 어쩌다보니 페어 프로그래밍을 하게 됐다. 너무 걱정이 된 나머지 전 날 미리 전체적으로 프로젝트를 구현해보고 갔다. 그래서인지 이번엔 포지션이 자연스럽게 내가 네비게이터가 됐는데, 굉장히 신선한 경험이었다. 나와 페어프로그래밍을 하던 예전 동료가 이런 기분이었구나, 이런 생각이었구나, 나를 이렇게 기다려줬었구나, 하는 생각이 들면서 고마워졌다. 그리고 입으로 코딩하는 것도 꽤나 힘든 일인 것 같다. 프로젝트 끝날 때 쯤엔 목소리가 다 쉬어버려서 점점 어르신 목소리가 되어버렸다.
코드에서 냄새나요 개욤씨!
이전까지 주로 드라이버 역할을 했던 내 입장에선 잘 모르는 상태에서 코드를 짠다는 게 굉장히 부담스러웠다. 특히나 네비게이터가 항상 지켜보고 있기 때문에 더 긴장이 된다. 내가 개똥같은 코드를 짜고 있으면 실시간으로 바로 태클이 들어오기 때문이다. 아마 오늘 나와 같이 페어 프로그래밍을 했던 짝꿍분도 비슷한 압박 속에서 코딩하지 않으셨을까 조금 걱정은 됐지만, 그런 것 치고 생각보다 고수처럼 잘 해주셔서 원활하게 마무리할 수 있었다.
처음 보는 사람과도 얼마든지 페어 프로그래밍을 통해,
비대면으로 프로젝트를 완성할 수 있구나
라는 교훈을 얻을 수 있었던 신기한 프로젝트였다. 나는 프로젝트를 하고 나면 사람이 남거나 결과물이 남아야 한다고 생각한다. 둘 다 남으면 베스트지만, 둘 중 하나라도 남으면 그걸로 충분하다고 생각한다. 페어 프로그래밍은 이러한 나의 목표를 달성시키기 좋은 수단 중 하나라고 생각한다. 다른 방식으로 했던 팀 프로젝트들 보다 더욱 밀접하게 소통을 할 수 있어서 결과물도 꽤 만족스럽게 나오는 편이다. 모두들 한 번쯤은 페어 프로그래밍을 맛보길 추천한다. 댓글로 페어 프로그래밍에 대한 다양한 경험이나 생각들을 자유롭게 나누면 더 좋을 것 같다.
'IT' 카테고리의 다른 글
[IntelliJ] 단축키 모음 (MacOS) (0) | 2022.05.27 |
---|---|
[VIM] vimtutor 번역하기 - 0 (0) | 2022.02.22 |
정말 5분만에 배포가 가능하다고? ~cra github page로 배포하기~ (0) | 2021.08.29 |
내가 지속적으로 개발을 공부하는 이유 (0) | 2021.08.14 |
conole.log()의 반전 (0) | 2021.08.08 |