군대에 Git과 협업 문화 전파하기

Sangtae Humphrey Ahn
7 min readMay 4, 2019

--

Photo by Owen Spencer on Unsplash (부제: 대삽질시대)

…위한 노오력

Prologue

전역한 친구들이나 현역들이 공통적으로 동의하는 군대에서 가장 기억에 남는 순간들 Best 2는

1. 훈련소 첫날밤/다음날 아침

2. 전입날

일 거다.

많은 시험과 (공군이라면 모를리 없는) 정치를 거쳐 입대 전 부터 쭉 바라왔던 개발하는 보직에 들어오게 되고, 전입온 날은 아직도 생생히 기억이 난다.

오밀조밀 즐비해있는 모니터와 컴퓨터들, 그 앞에 자기 업무에 몰두해 있는 선임들, 어디선가 들려오는 개발 관련 이야기들과, 여기저기 꽂혀있는 유명한 개발 서적들…

(띠용?) 아 이게 코딩전사들인가?

아직 현역이라 보안 규정 상 자세히 서술할 수는 없지만, 당시 느꼈던 충격은 아직도 생생하다.

그 첫 인상 때문에 시간이 지나 실제 프로젝트를 진행하게 되기까지 많이 배울 수 있는 기회가 될 거라고 기대를 했지만…

충격실화! 개발자 본인도 최신버전이 뭔지 모르는 프로젝트가 있다?!

현역이라 아직 자세히 이야기하기 조심스러운 부분이 많음을 이해해주세요… ㅠㅠ

선임이 맡았던 프로젝트를 인수인계 받고 드디어 나도 뭔가 하게 되는 구나! 하고 기뻐하며 소스를 열어보았다…

앗…아…(한숨)

제일 처음 눈에 띄었던 것은

// 후임아 미안하다... 내 능력이 이것 밖에 안되...(심지어 맞춤법도 틀림)
...
// 이 파트는 다른 변수랑 이렇게 저렇게 하면 되지 않을까? 모르겠다...

또한 버전관리 또한…

이런 느낌? 하…

병장 3호봉(진)인 지금 돌이켜봤을때, 이것들은 보통 많은 체계들을 혼자서 진행하고, 협업에 대한 지식과 의지(사실 제일 중요)를 갖고 있지 못하기 때문에 일어나왔다고 생각한다.

지금 생각해보면, 기본적으로 협업의 필요성과 이유를 느끼는 사람들이 거의 없었기 때문에 오히려 협업 문화를 전파하기 좋은 환경이었다.

군대에 어떻게 협업문화를 전파하지?

Readme + 주석 작성(필수)

  • 후임은 당신이 gunbun이라고 변수를 선언하면 뭔지 모른다...
  • 테이블 컬럼은 숫자로 작성하지 말자
  • 뭐가 어떻게 돌아가는 지, 이 파트가 어떤 역할을 하는 지 제.발. 써두자

버전 관리하기

  • 반디집으로 버전 관리를 하면 후임에게 싸다구를 맞는 게 요즘 학계의 정설
  • 각 수정마다 내가 뭘 고쳤고, 뭐가 안되고, 고치려하는 게 뭔지 써 놔야 프로젝트를 받을 사람이 편하다
  • 같은 프로젝트를 여러사람이 작업할 때, 바로 옆에 있다고 말로만 정하지 말고 코드로 써두자.

이슈 정리하기

  • 이슈 트래커 없는 거 아는데, 그래도 적어둘순 있잖아…
  • 어떤 이슈가 언제 해결되었는 지 알아야 시간 낭비를 줄인다. 야근 하기 싫잖아?

In Practice

부대에서 다른 병사들을 대상으로 자기 특기나 재능을 살려 세미나를 종종 여는데, 위 문제들과 다음과 같은 주제로 세미나를 진행했다.

Git과 협업 문화를 ARABOZA

  • 협업 Philosophy
  • Readme 문서 작성하기
  • 작업별로 커밋 정리하는 습관 들이기
  • Git 주요 개념 설명
  • staging, commit, push, pull, branch, stash, tag, etc
  • 브랜치 전략
  • 인트라넷에서 협업하기
  • 밖에서는 어떻게 할까?
  • 오픈소스 컨트리뷰팅하기
  • 커밋으로 이슈 트래커 관리
  • 커밋/풀리퀘/이슈 Notification 받기
  • CI/CD

발표자료

Outro

군 생활의 마지막을 향해 갈 수록, 내가 2년간의 군 생활동안 뭘 했지? 하루하루 돌아보게 된다.

누군가는 자기 공부를 열심히 해서 복학해 좋은 점수를 받고, 누군가는 운동을 열심히 해서 바디 프로필을 찍어서 SNS에 올리기도 하고, 누군가는 그냥 시간만 보내다가 나가서 그냥 그런대로 자기 삶을 산다.

나는 내가 좋아하는 개발을 조금 더 잘 할 수 있도록, 또 어떻게 하면 더 좋은 개발자가 될 수 있을 지 끊임없이 고민했던 것 같다. 그래서 좋은 기회가 있으면 대회도 참여해보고, 전역하고 일하고 싶은 회사들에 이력서도 넣어보곤 했다.

물론 나를 위해서 이런 협업 문화와 기술들에 대한 연습을 했던 것도 있지만, 내가 신병 때 느꼈던 것 처럼 누군가 당황스럽고, 막막한 경험들을 하는 것들을 조금이나마 줄이기 위한 노력이기도 했다.

군대라는 특수한 상황 속에서 개발을 해야하는 병사로써, 밖에서 코딩을 했건 안 했건, 내가 쓰는 코드에 책임감을 갖고 정리하는 습관을 들인다면, 어차피 가야하는 군대에서 시킨 일 대충 하면서 시간 때우는 것 보다 자기 개발과 업무를 동시에 할 수 있지 않을까?

P.S. NOTE

다가오는 9월 전역 이후 재밌는 프로젝트를 함께할 곳을 찾고 있습니다!

웹 풀스택 / 프론트 개발자를 찾고 계신다면, 제 깃헙과 이력서, 노션 페이지를 확인해보시고, 맘에 드신다면 언제든(!) 연락 주세요~

노션 이력서: https://www.notion.so/taebae/7e65677de09c496988bff315960c3f19

--

--