425일간의 1일 1커밋 회고

hjkim·2022년 11월 11일
3
post-thumbnail

1년도 아니고 6개월도 아니고 425일을 맞이하여 1일 1커밋 회고를 남기게 되었다. 여행다닐 때마다 노트북 낑낑대며 챙겨 다니고 다음 날 약속으로 늦게 귀가할 듯하면 그 전날 12시가 지나는 시점에 커밋을 날렸다. 그렇게 1년이 넘는 시간 동안 매일매일 "커밋"할 생각을 하고 살았다. 그런데 바로 어제..! 너무 허무하게도 1일 1커밋이 깨졌다. 갑작스레 생긴 약속에서 맛나게 회를 먹다가 오늘의 커밋을 하지 않은 사실을 깨닫게 되었다. 급히 readme라도 고친 뒤 시계를 보니 12시를 넘겼고 ^^... 그렇게 구멍이 생겼다. 😫😭 슬픔을 이루 말할 수 없다.

커밋 조작하는 법이야 뭐 구글링하면 너무 잘 나와서 11월 10일 커밋을 만들어 볼까도 생각했으나 1일 1커밋이 깨진 어제의 허무한 기억을 잊지 않기 위해 커밋 조작보단 회고나 작성하자는 마음을 먹었다.

1일 1커밋을 시작하게 된 동기

이전 회사에서는 팀 내에 같은 연차의 개발자가 없었고, 협업을 할 일도 없었다. 개발 문화도 새로운 것을 계속 시도해보는 것보다는 기존의 방식이 안정적이니 기존의 방식대로 가는 것이 선호되었다. API가 필요하다고 하면 이전 코드를 참조하여 빠르게 빠르게 찍어내듯 API를 만들면 되었다. 프로그램이 에러 없이 잘 돌아가기만 하면 끝이라는 잘못된 생각을 갖고 있었다. 그 당시의 나는 개발이 전혀 어렵지 않았고 자신감은 하늘을 찔렀다.

그러던 어느 날 팀 내에서 B2C 사업을 제대로 해 보겠다고 다른 경력직 앱 개발자, 웹 개발자 분을 채용하기 시작했다. 새로 오신 그분들이 들려주시는 개발문화, 백엔드 개발자의 역할 등을 듣고 그제야 그동안 내 자신이 "개발자"가 아니었다는 것을 깨닫게 되었다. 이전의 나는 개발자가 아니라 코더였다.

"우매함"의 봉우리 끝에 있던 나는 절망의 계곡으로 빠르게 낙하했다. 성장해야 한다는 것을 알았고, 진정한 백엔드 개발자가 되기 위해 돈, 시간, 체력 모든 것을 아끼지 않았다. 그렇게 시작한 행동 중 하나가 1일 1커밋이었다. 해당 포스팅에서는 1일 1커밋에 대해서만 이야기 하겠지만 추후 월말 회고 포스팅을 통해 2022년 시도한 다양한 방법들을 정리해보고자 한다.

2021년 9월 11일 1일 1커밋이 시작되었다.


1일 1커밋의 장점

1. 자기관리의 시각화

타이탄의 도구들이라는 책에는 "다른 사람과의 약속처럼 자기 자신과의 약속 또한 명확하게 '시각화'해서 상기시키면 실행력이 매우 높아진다."는 구절이 존재한다. 나는 1일 1커밋을 통해 나 자신과의 약속을 시각화하고 있었다. 핸드폰 바탕 화면에 깃 위젯을 두고 매일매일 내가 나 자신과의 약속을 지켰는지 늘 상기시켰다.

그밖에도 이직할 때에나 다른 개발자에게 나 자신을 소개할 때 깃헙 링크 하나만으로 "내가 그래도 나름 열심히 성장하려 하는 개발자다"라는 것을 어필할 수 있다는 점도 좋았다. 요즘은 다들 1일 1커밋을 해서 특별히 대단하게 봐줄 것 같지 않았는데 생각보다 내가 열심히 살아왔다는 것을 알아주시는 분들이 계셔서 1일 1커밋 해볼만 하다고 생각한다.

2. 컴퓨터 앞에 앉는 습관

1일 1커밋을 계속하는 가장 큰 이유였다. 남에게 보이기 위해, 매일매일 성장하기 위해... 이런 목적들보다 나는 컴퓨터 앞에 앉기 위해 1일 1커밋을 해왔다. 컴퓨터 앞에 앉으면 일단 공부를 하든 프로젝트 코드를 짜든 행동을 한다. 따라서 내게 가장 필요한 건 매일매일 개발에 대해 생각을 하고 매일매일 컴퓨터 앞에 앉는 습관을 들이는 것이었다. 결과는 성공적이다. 퇴사 시점에 정말 정신적으로 힘들었을 때에도, 코로나로 열이 떨어지질 않아 마우스를 쥐고 클릭할 힘조차 없을 때에도 꾸역꾸역 컴퓨터 앞에 앉았다. 약속을 가거나 여행을 가거나 일이 너무 많아서 개인공부를 하고 싶지 않은 날이 올 때에도 일단 컴퓨터 앞에 앉았다. 매일매일 짧은 순간이라도, readme를 고치는 한이 있더라도 425일 동안 나는 꾸준히 컴퓨터 앞에 앉을 수 있었다.

3. 깃과 친해지기

깃은 어느 회사를 가든 사용하게 될 가장 기본적인 협업 툴이다. 개인 레포지토리에서 이것저것 눌러보고 지워보고 머지 충돌도 내보고 해볼 수 있는 모든 실수를 다 해본다면 실무에서 깃 때문에 실수할 일이 줄어든다. 나도 이것저것 다 해 봤다고 할 수는 없겠으나 1일 1커밋을 하면서 새롭게 알게 된 깃의 특징들이 많다.

  • 깃에서 feature 브랜치를 따서 커밋을 하면 바로바로 잔디가 심기지 않고 main 브랜치에 머지되는 시점에 잔디가 심긴다. 만약 바로바로 잔디가 심기길 원한다면 default branch를 feature 브랜치로 변경해두는 방법이 있다.
  • 슬랙과 연동해서 협업하는 사람들이 commit, PR, comment 등의 action을 하면 바로바로 슬랙 메신저를 통해 안내받을 수 있다.
  • heroku와 연동하면 커밋과 동시에 heroku에 배포까지 완료할 수 있다.
  • 1일 1커밋을 위해 github 블로그를 운영하면 좋다. (나는 괜히 velog를 써서...ㅠ)
  • 아이디와 동일한 이름으로 repo를 생성하면 깃 프로필이 생성된다. 예쁘게 꾸미는 방법은 무궁무진하다. (참고)

1일 1커밋의 단점

억지 커밋

많은 사람들이 1일 1커밋을 부정적인 시선으로 바라보는 것은 바로 억지로 만들어내는 커밋 때문일 것이다. readme 엔터 치고 1일 1커밋을 완료해 버리거나 1일 1커밋 거리를 만들기 위해 실제로 필요한 공부를 하기보다는 커밋거리가 나올 만한 공부를 찾아하게 되는 것이 바로 1일 1커밋의 가장 큰 단점이다. 개인적인 생각이지만 1일 1커밋의 목적이 개발적으로 성장하는 것이라면 이러한 억지 커밋은 부정적인 시선으로 바라볼 수밖에 없다. 하지만 나처럼 매일매일 개발 생각하는 습관을 들이고자 하는 사람에게는 억지 커밋이라도 의미있게 볼 수 있지 않을까 싶다.

대신 다른 객관적인 성장 기준이 필요할 것이다. 개발 서적/강의를 n개 보겠다거나 자기 전 내가 새로 알게 된 개발 개념을 정리하는 메모를 매일매일 남기겠다거나 하는 기준이 이에 해당될 수 있을 것 같다. 사실 이 부분에 대해서 "오늘/이번주/올해 성장했는지 측정 가능한 기준이어야 한다", "그 기준이라면 자신이 진짜 성장했다고 평가할 수 있겠는가" 등과 같은 피드백을 얻은 적이 있다. 개발 서적을 본다던지 정리 노트를 만드는 것과 같은 기준이 나의 개인적인 성장 기준이라고 볼 수 있을지 모르겠다. 개발 서적을 읽는다고 해서 그 내용을 전부 이해하고 넘어가는 것은 아니기 때문이다. 200쪽의 책을 읽었을 때 하나도 이해되지 않았다면 1일 1커밋의 억지 커밋과 다를 것이 무엇일까? 나의 성장 기준을 어떻게 정해야 할 지는 아직도 고민을 많이 하고 있는 부분 중 하나이다.


마무리

1일 1커밋은 개발자라면 한 번쯤은 해볼 만한 것이라고 생각한다. 한 번 잔디가 비어 버려서 너무 허무하고 현타가 많이 왔다. 보통 이렇게 한 번 현타가 오면 다시 1일 1커밋 하기 싫어진다고 하던데... 그래도 나는 다시 1일 1커밋을 이어나가 보려 한다. 좋은 습관은 한 번 안하게 되면 금세 사라지기 때문에, 1일 1커밋을 안하게 되면 매일매일 컴퓨터 앞에 앉아 개인 공부하려는 마음 가짐도 점차 희미해질 것 같다.

비어버린 잔디를 볼 때마다 마음이 너무 아프지만 미루고 미루던 1일 1커밋 회고를 할 수 있었으니 긍정적으로 여기고 내일부터 다시 잘 달려봐야겠다!

profile
피드백은 언제나 환영입니다! :)

0개의 댓글