Forum/Retrospect

400일간 이어왔던 1일 1커밋을 멈추며

ooeunz 2020. 10. 9. 15:16
반응형

매일매일 400일 동안 개발해온 비전공자

개발자가 된지도 이제 2년 하고도 6개월이 되어간다. 처음 개발을 시작할 때 매일매일 조금이라도 개발하자라는 각오로 1일 1 커밋을 시작했다. 그 결과 여행을 할 때도 노트북을 챙겨가고 작게라도 개발하는 시간을 확보해서 채워져 가는 잔디밭에 만족감을 느꼈다. 1일 1 커밋을 채워간지 1년이 되던 때쯤 나는 짧은 시간 동안 기술적으로 굉장히 빠르게 성장할 수 있었고, 컴퓨터 공학에 입문한지 2년이라는 짧은 시간 동안 우리나라 대표 IT기업에 입사할 수 있었다.

 

 

수포자 디자이너에서 카카오 서버 개발자가 되기까지 - 카카오 엔터프라이즈 합격후기

그제 오후 두 달 간의 길고 긴 채용 프로세스를 끝으로 카카오 엔터프라이즈에 (지난 12월에 분사한 카카오 AI계열사) AI 검색 플랫폼 지식 그래프 서버 개발자로 상시 채용 전형에 최종 합격 오퍼

ooeunz.tistory.com

 

1일 1커밋은 개발자로서 지속적인 성장에 기초가 되었다. 어제보다 오늘 더 나은 코드를 짤 수 있다는 자신감매일매일 하루도 빠짐없이 성실하게 개발을 해왔다는 근거가 되기도 했고, 무엇보다 슬럼프가 찾아왔을 때 '습관처럼 개발을 한다.'는 것은 멘탈의 흔들림과 관계없이 매일 배움의 자리에 나를 데려올 수 있었다. 때문에 누군가 '1일 1 커밋에 도전해볼까요?'라고 묻는다면 나는 망설임 없이 도전해보라고 권해주고 싶다. 회사 일의 매너리즘에 빠진 개발자나, 아직 개발에 입문하지 않은 누군가라도 도전해볼 만한 가치가 있다고 생각한다. 나 역시 취직을 했음에도 여전히 꾸준히 커밋을 이어갔다. 회사 Git 계정이 따로 있었기 때문에 퇴근 후 시간을 내서 개인 프로젝트를 하거나, 그 날 배운 것을 기록하는 등(TIL) 꾸준히 잔디를 채워갔다. 하지만 오늘 1일 1 커밋을 이어온 지 드디어 400여 일째, 그만 1일 1 커밋을 멈추려고 한다. (마지막으로 하고 있던 사이드 프로젝트가 오늘로써 끝이 났다.) 이때까지 1일 1 커밋의 장점에 대해서 열변을 토해놓고 이게 무슨 소리?라는 생각이 들 수도 있을 것 같지만... 내가 1일 1 커밋을 멈춘다는 것은 자기 계발을 멈추겠다는 것도, 개발에 대한 열정이 식은 것도 아니다. 다만 매일매일 빼곡히 채워져야하는 잔디밭의 스트레스로부터 벗어나겠다는 것이다.

 

2020.10.09 Github

사내 프로젝트와 사이드 프로젝트의 경계

잔디는 나의 개발 커리어를 대변해주는 시각적인 지표와 같았다. 하루도 빠짐없이 개발해왔던 개발자. 그 사람이 매일매일 커밋에 정말 충실했느냐는 알 수 없지만, 적어도 그 노력만큼은 인정할 수밖에 없다. 그만큼 삶과 개발이 밀접해있었고, 누가 뭐라 하든 매일매일 커밋을  이어가며 그 만의 인사이트를 얻었을 것이라 생각한다. 나 역시 그중 한 명이었고, 취준생이던 시절 회사 입장에서 나를 고용할 때 성실함의 근거로 어느 정도 어필이  되었을 수도 있다고 생각한다. 하지만 이제 더 이상 취준생이나 프리랜서가 아닌 카카오라는 회사에 속한 개발자로서 매일 1일 1 커밋을 이어간다는 것은 내게 부담으로 다가왔다. 왜냐하면 나의 개인 계정에 커밋을 하지 않는다고 하여서 개발을 안하고 있는 것은 아니기 때문이다. 앞서 언급한대로 내가 다니고 있는 회사는 보안 차원에서 사내 Github 계정을 지급하고 있다. 따라서 회사에서의 개발과는 별개로 내 개인 계정에 따로 커밋을 해야 한다는 문제점이 발생했다. 그 말은 즉 회사에서 하는 프로젝트 이외에도 지속적으로 내 사이드 프로젝트를 진행해야 한다는 뜻이 된다. 사이드 프로젝트가 회사에서 사용하는 기술 이외에도 다양하게 견문을 넓히고 실력을 상승시켜준다는 것에는 이견이 없지만, 갓 회사에 들어간 주니어 입장에서는 사이드 프로젝트에 쏟는 시간을 사내 프로젝트에 쏟을 필요가 있다는 생각이 들었다. 언젠가 분명 다시 사이드 프로젝트를 진행하겠지만, 그때 진행하는 프로젝트는 단순히 매일매일 잔디밭을 채우기 위해서 하는 프로젝트가 아닐 것이다.

 

개발 이외의 것에 시간을 투자한다는 것

최근 흥미로운 인사이트를 한가지 얻게 되었는데, 개발을 하는데에 있어서 인문학적인 소양이 엔지니어링 실력에 도움을 준다는 것이다. 인문학적인 소양은 아키텍처를 추상화하고 설계하거나, 새로운 기술을 빠르게 습득하고 다른 개발자와 커뮤니케이션하는데에 상당히 많은 부분 도움을 준다. 매일 개인 Github 계정에 커밋을 날릴 때는 나의 여가 시간을 온전히 개발하는 것에 투자했지만, 이제 그 시간을 개발 이외의 것들에도 투자를 해볼 생각이다. (예를 들면 독서나 글을 쓰거나, 운동을 하는 것 같은 것들로 말이다.) 당장은 기술적으로 성장이 더뎌 보일지 모르지만, 장기적으로 보았을 때 더 나를 멀리까지 데려다 줄 새로운 습관이라 생각한다.

 

Commit message와 단위

조금은 기술적인 이야기를 해보려고한다. Github 잔디밭을 보았을 때 비어있는 잔디밭과 가득 차 있는 잔디밭 중 어떤 것을 선호하겠는가? 또 다른 질문을 해보겠다. 가득 차있는 단색으로 이루어진 잔디밭 (1일 커밋 5개 이하의 yellow-green color)으로 이루어진 잔디밭과 일일 커밋의 수가 10개 이상인 진한 색의 잔디로 채워지는 것을 선호하는가?

 

아마 대다수의 사람이 후자를 선택할 것이다. 나 역시 다르지 않았다. 이왕 커밋을 하는 거라면 되도록 많은 커밋이 담기길 원했고, Commit message의 내용과 commit 단위는 생각하지 않고 단순히 커밋의 수를 채우는 것에 초점이 맞춰져있었다. 하지만 회사에서 개발해보면서 다른 사람이 알아볼 수 있는 commit message와 의미 있는 커밋 단위가 얼마나 중요한지를 깨닫게 되었다. 많은 시간 개발에 시간을 투자하고 많은 코드를 수정하는 것보다, 짧은 코드를 수정하더라도 많은 기술적인 근거가 들어가고 다른 개발자와 커뮤니케이션 할 수 있는 의미 있는 commit을 담는 것. 아마 대규모 프로젝트에 투입되어본 개발자라면 다른 개발자들과 커뮤니케이션하고 문서화하는 것이 얼마나 중요한지를 깊이 이해하고 있을 것이다. commit은 단순히 코드 백업이 아니라 버전 관리의 핵심이다. 10개의 백업용 커밋보다 한 개의 의미 있는 커밋을 남기는 것의 중요성에 대해 뒤늦게 깨닫게 되었다.(잔디밭이 못생겨지더라도...)

 

앞으로의 방향성과 개발 커리어

윤자이 기술 블로그 학생 시절 내가 속해있던 it동아리에서 그 주에 있었던 과제를 미리 하고 다른 파트원들에게 공유하려는 목적으로 시작한 블로그였다. 처음엔 주위 지인들이 궁금증에 들어와 보는 정도의 작은 블로그였지만, 시간이 흘러서 이제 일 평균 400-500명 정도의 방문자 수를 기록하고 있는 기술 블로그로 성장했다. 블로그에 담긴 내용들은 부끄럽지만 대부분 내가 공부했던 내용들을 정리하는 식으로 기술되었다. 때문에 기술 공식 문서나 다른 기술 블로그에서 봤던 예시도 포함되어있을 수 있다.

 

회사에 들어온지 그리 오랜 시간이 지난 것은 아니지만, 개발자로서 회사에 적응해나가며 한 가지 깨달은 사실이 있다. 그건 아이러니하게도 코드를 짜는건 누구나 시간이 흐르면 할 수 있는 것이라는 것이다. 하지만 좋은 코드를 짜고 다른 개발자와 커뮤니케이션하며 아키텍처를 설계할 수 있는 능력은 단순히 코드를 짜는 것과 별개의 것이라는 것을 알게 되었다. 한 때 어떤 기능을 개발할 수 있는 개발자. 즉 기능 개발이 그 개발자의 실력의 척도라고 생각한적이 있었다. 하지만 그 보다 중요한 것은 다른 사람이 알아보기 쉬운 코드를 짜는 것과 커뮤니케이션 능력, 트러블 슈팅 능력 같은 것들이다. 이러한 것들은 가득 채워진 잔디밭처럼 화려하게 눈에 보이지는 않지만 천천히 그리고 깊게 개발자의 깊은 성장에 기여한다. 그래서 이제 의미 없는 하루하루 채워나가려고 1일 1커밋을 그만두려고 한다. 비워져 있는 잔디를 두려워하지 않고, 더 의미 있는 하나의 커밋을 남기기 위해 노력하겠다. 변하는 기술 동향과 트렌드를 쫓는 개발자가 아니라, 변하지 않는 Computer Science 근본적인 원리를 이해하고 탐구하겠다.

 

나의 개발 커리어는 그리 길지 않지만, 이렇게 또 한번의 변곡점을 맞이하게 된다. 내일 또다시 성장할 것이 기대된다.

반응형