티스토리 뷰

 

 

요즘 작업 중인 일은

저와 다른 시니어 개발자 한 분 이렇게 두 명이서 맡아서 하는 것인데요.

 

기존의 구조로 짜여진 코드를 대대적으로 리팩토링** 해서 새로운 구조로 전부 바꿔야하는 일이고요.

 

페어프로그래밍을 통해 새로운 구조의 최종 형태가 어떻게 생겨먹게 될 것인지에 대해 코드를 작성한 뒤,

그 페어 프로그래밍에서 나온 결과물을 견본 삼아

저는 태스크, 그리고 릴레이 파트의 코드를 모두 리팩토링하고

시니어 개발자님은 게이트웨이, 그리고 센서 파트의 코드를 모두 리팩토링하는 방식이에요.

(태스크, 릴레이, 게이트웨이, 센서는 모두 저희 팀이 현재 개발 중인 앱 안에 나눠진 구역의 이름들이에요)

 

시니어 개발자님에 비해 제가 훨씬 까마득한 초보이기 때문에

제 화면을 공유한 채로 코드를 쓰는 타이핑은 제가 하고

시니어 개발자님은 제 화면을 보면서

제가 잘못쓰는 부분이 있거나 다른 피드백을 주실 부분이 있으면 바로바로 알려주시고요.

 

그렇게 저희 둘이 힘을 합쳐 만든 그 샘플 코드를

또 다른 시니어 개발자 두 분이 검토를 해주신 다음,

그렇게 모두의 동의를 얻은 결과물이 결정이 되면

저와 시니어 개발자님이 샘플 코드와 같은 방식으로 각자 맡은 부분을 알아서 전부 리팩토링 하는 것이죠.

 

제 설명이 좀 어지러우려나요..

요약하자면

 

(나, A) 수정본의 샘플을 작성함. 이 때 나의 컴퓨터의 화면을 공유한 상태로 나는 코드를 작성하고 A는 화면을 보면서 가이드와 리뷰를 해준다.

(B, C) 우리가 작성한 샘플 코드를 리뷰한 뒤에 더 수정할 부분에 대한 피드백을 주거나, 샘플 내용을 승인한다.

(나) 내가 맡은 부분 (앱 전체의 약 50%)의 코드를 승인된 샘플 코드를 토대로 리팩토링 한다.

(A) A가 맡은 부분 (앱의 나머지 부분, 역시 약 50%)의 코드를 승인된 샘플 코드를 토대로 리팩토링 한다.

 

이런 순서의 업무가 되겠네요.

 

현재 저희 팀은, 누가 쓴 코드이든 관계없이 모든 작업물이

최소 다른 두 명의 개발자에게 리뷰를 받은 후 승인을 받아야 통과가 되는 방식을 취하고 있어요.

시니어 개발자님들의 작업물도 역시 본인 이외의 다른 시니어 개발자 두 명에게 반드시 리뷰를 받아야해요.

 

아무튼 그래서 페어프로그래밍을 할 때는

제가 작성하는 코드를 다른 시니어님이 실시간으로 감상을 하시기 때문에 ㅋㅋㅋㅋ

조금 민망한 실력이지만 열심히 열심히 초보의 패기를 불살라 하고 있는 요즘입니다-

 

 

하지만 타이핑 속도 만큼은 꽤나 빠른 편이기 때문에

아주 현란하게 하찮은 코드를 쓰곤 하죠 ㅋㅋㅋㅋ

 

가만히 지켜보던 시니어 개발자님께서

"근데 난 이번 프로젝트 하면서 너 처음으로 봤는데,

예전에 코틀린으로 다른 프로젝트를 많이 해봤었니??"

하고 물어보셨어요.

 

"아니!! 네가 날 처음 본 이유는 나도 이번 프로젝트가 인생 첫 프로젝트이기 때문이야 ㅋㅋ

그 전에는 개발 일을 해본 적이 없어서 코틀린도 다른 언어로도 프로젝트를 해본 적이 없어.

다음달이 되면 내 개발 경력이 딱 1년이 되겠네~"

라고 대답해주었어요.

 

그랬는데 엄청 깜짝 놀라시더니

"와아앗?! 아직 개발 경력이 1년이 안 되었다고?! 너 지금 굉장히 잘 하고 있어!!"

하고 갑자기 폭풍 칭찬 해주심 ㅋㅋㅋㅋ

 

 

아잇,, 열심히 용쓰고있는 초보한테 이렇게 칭찬해주시면

또 혼자 신나서 열공하러 가야죠 헤헷-

 

아직 영어를 잘 못해서

회의 때 질문을 받으면 손에 땀이 나고

발표를 해야하면 조금 속이 울렁거리고 그러지만....

다른 분들은 훠어어어얼씬 말을 해야할 기회가 더 많기 때문에

초보라서 다행이야.. 저 질문에 내가 대답할 필요가 없어서.... ㅜㅜ

하고 안심하며

다른 개발자님들의 그늘 아래에서 공부나 열심히 하고 있는 그런 일상이에요.

 

우리 팀 개발자님들 다들 너무 쏘서윗 하셔서

아무도 채찍은 안 주시고 당근만 주심.

심지어 그 당근마저 햇병아리 초보가 먹기 힘들까봐서 잘게 잘게 조사서(?) 주시는 개발자님들

다들 너무 친절하시고 좋음 히히-

 

 

* 페어 프로그래밍: 두 명의 개발자가 하나의 워크 스테이션으로 프로그래밍을 하는 방법. 둘 중 한 명이 코드를 작성하고, 나머지 한 명이 실시간으로 가이드를 하거나 화면에 적히는 코드를 리뷰함.

** 리팩토링: 이미 동작하는 코드를 더 효율적인 방식으로 바꾸는 활동. 동작의 결과는 변하지 않는다.

 

 

댓글