쾌락코딩

일일커밋 6개월 회고

|

일일 커밋 6개월(거의?) 회고

profile

스스로 일일커밋을 마음 먹고 시작한지 거의 6개월이 다 지나갔다. 삽질했던 repo를 삭제하면, 그 커밋 역시 날라간다는 사실을 모르고 삭제를 했다가 중간에 빵꾸가 나긴 했지만 나름대로 잘 지켜온 약속이었다. 내게 어떤 변화가 있었는지, 무엇을 느꼈는지를 회고하려 한다.

무엇을 위해서 시작했나?

처음에는 일일커밋을 하는 외국인이 멋있어 보였다. 나에게 무슨 큰 변화가 있을거라 기대하고 시작한게 아니라, 나도 그냥 저렇게 멋있어 보이고 싶었다. 그게 전부였다. 그러나 막상 이유도 모른채 한 달, 두 달을 지속하다보니 나에게 조금씩 변화가 느껴졌고, 그 변화가 꽤나 긍정적이어서 나의 목표가 되었다. 이렇게 좋은 습관을 포기하지 않고 끝가지 가져가서 더 좋은 개발자가 되고싶었다.

나에게 찾아온 변화

사실은 일일 커밋 까진 아니더라도 쭉 코딩을 해왔었다. 단지 깃헙에 push를 하지 않아서 기록이 안되있을 뿐이었다. 그러나 확실한 건 매일 하루에 코딩한 것을 커밋하게 되고, 그것이 시각적으로 보여지도록 6개월을 지속하니 코딩을 하지않으면 몸이 간지러워졌다. 무슨 죄를 지은 것 마냥. 누군가는 이게 일일 커밋의 단점이라고 말한다. 실제로 구글에 일일커밋을 검색하면, 일일 커밋을 그만둔다는 내용의 글이 상단에 많이 뜬다. 그러나 나의 생각은 다르다. 물론 내가 고작 6개월 밖에 하지 않아서 드는 어린 생각일 수도 있다. 뭐든 장단점은 있다고 생각한다. 지금 나의 상황에선 일일 커밋이 주는 장점이 단점보다 더 와닿을 뿐일 수도 있다.

결과적으로, 중간에 나태해져서 하루를 쉬게되면 그게 또 시발점이되어 지속될까봐 두려워서 매일매일 코딩을 하게됬다. 가끔은 나도 여행을 갈 때가 있었고, 우울해서 아무것도 하고싶지 않은 날도 있었다. 이럴 때 나를 잡아준 것이 일일 커밋이다. 물론 하루 이틀 아무것도 하지 않고 쉬는것도 괜찮지 않느냐라고 할 수도 있다. 물론 괜찮다. 그러나 나 처럼 아직 학생이고, 내가 코딩을 하루 이틀 안한다고 매일주던 월급을 안주는 것도 아닌 상황에서, 그 하루 이틀이 3일 4일 일주일이 되지 않는다는 보장이 있는가? 스스로 정한 일일커밋 약속이 없었다면 얼마든지 더 나태해 질수 있었다고 나는 믿는다. 무엇이든 처음이 어렵지 그걸 반복하는 것은 쉽다. 그게 나태함이라면 더욱 더!

그럼에도 불구하고 나태할 때, 그리고 장점

물론 매일매일 커밋을 약속했다고 해서 매일 매일 훌륭하고 의미있는 코드를 커밋하는 것은 아니었다. 사실은 하루 종일 시간을 주고 훌륭한 코드를 짜라고 해도 그렇게 하지 못하는 나의 실력이(ㅠㅠ) 밉다…

lazy_cat

솔직히 말해서 정말 바쁘거나 지칠 때는 쉬운 알고리즘 문제 하나만 풀어서 커밋한 적도 꽤 있다. 쉽다고 생각해서 금방 풀고 끝내려 했지만 몇 시간이 걸린 문제도 있지만, 아무튼 나는 힘들 때 그렇게 했다.

나는 이 것이 일일 커밋의 가장 큰 장점이라고 생각한다. 늘 하던 사이드 프로젝트나 TLD(Today I Learned) 같은 것들은 일일 커밋이 아니었어도 했을 것들이다. 물론 쉬고 싶을 때, 일일 커밋 때문에 마음을 가다듬고 사이드프로젝트를 함으로써 덕을 본 것도 있지만, 그것 조차 하기 싫을 때는 간단한 알고리즘을 풀었다. 이게 왜 큰 장점일까?

일일 커밋은 사이드 프로젝트조차 하기 싫을 때도 나를 컴퓨터 앞에 앉게 해서 코드를 만지게 했다. 알고리즘을 풀게해서 큰 장점이 아니라, 어찌되었든 나를 코딩하게 시킨다는 점이다. 일일 커밋에 멱살 잡혀 키보드앞에 앉고, 막상 코드를 한 줄 두 줄 짜고, 깃헙을 보게되고, 내가 쌓아온 잔디밭(?)들을 보면 내가 왜 오늘 코드를 짜기 싫어했지? 라는 생각이 든다. 막상 멱살 잡혀 코딩을 하면 또 그게 재밌다는걸 깨닫는다. 문제는 마음가짐이었던 것이다. 아침에 막 일어나서 더 자고싶은 마음에 아침 밥을 포기하려고 생각했는데, 막상 누가 억지로 깨워 나를 밥상 앞에 끌고갔더니 메뉴가 최고급 호텔식 요리인 경우라고 하는게 좋은 예시인지 모르겠다. 막상 먹으면 정말 맛잇게 먹을거면서. 결국 문제는 아침에 일어나는게 싫은, 그 짧은 유혹을 못이기는 마음가짐인데, 일일 커밋은 그런 나를 호텔식 요리 앞에 끌고가준다.

규칙을 만들고 지켜나가자

사실 매일 매일 쉬운 알고리즘 하나 풀고 커밋을 해도 일일 커밋이다. 그러나 고작 잔디밭이나 풍성하게 가꾸자고 일일 커밋을 하는게 아니기 때문에 스스로 지켜야할 규칙이 필요하다. 구글에 검색해보면 일일 커밋을 하는 개발자들이 각자 세운 일일 커밋 규칙들이 있는데, 솔직히 나는 딱히 규칙이랄 게 없었다. 일일 커밋을 시작하는 단계이니 매일 매일 커밋하는 것에 의미를 두자고 생각했던 것 같다. 그러나 이제 어느덧 6개월이 되었고, 조금더 의식적이 성장이 필요하다는 생각이 든다. 그래서 규칙을 몇가지만 적어놓고 틈날 때마다 상기하려고 한다.

  • 오픈 소스에도 적극 참여하자. 사이드 프로젝트만 할 것이 아니라, 좀 더 성장할 수 있도록 좋은 코드도 많이 보고 직접 수정도 해서 PR을 날리며 잔디밭을 채우자.

  • 커밋 메세지에 신경을 더 쓰자. 커밋 메세지에 신경을 쓰면, 작업에 단위가 생기고 단위에 의미가 생긴다. 무분별한 커밋 또는 너무 뭉쳐있는 커밋을 하고 있지 않은지 고민하고 커밋하자.

  • 글이 아닌 코드만 커밋이라 치자. 내 블로그에 글을 올리려면 commit을 해야한다. 비록 컨트리뷰션 그래프는 채워지겠지만, 이 것은 커밋이라 생각하지 말자. 정말 코드를 commit하자.

  • 앞으로 자주 회고 하며 필요한 규칙을 더 추가해 나가자.

결론

가끔은 굳이 이렇게 까지 하지 않아도 열심히 코딩할 자신이 있다는 생각이 들긴하지만, 이제는 과감히 버릴 수 없는 나만의 약속인 된 것 같다. 어떻게 보면 큰 일이 아닐 수도 있는 이 일일 커밋을 한가한 학생일 때 조차 못한다면 내가 끈기 있는 사람이라고 말할 수 있을까. 꼭 끝까지 이어나가서 1년이 되었을 때 다시한번 회고록을 쓸 수 있도록 하겠다!

Comments