최근 1일 1커밋 일명 '잔디심기' 라고 불리는 농부생활에 매력을 느끼고
1일 1커밋 운동에 동참하게 되었다.
밍블의 github - https://github.com/meeingjae
1일 1커밋 운동이란 개발자 사이에서 github에 하루 1개 이상의 커밋을 올리자 라는 취지의 운동을 말한다
(Daily Commit)
꾸준한 공부와 자기개발이 요구되는 개발자라는 직군에서
다른 이들에게 나를 어필할 수 있는 수단이 되기도 하고,
나 스스로를 매일 돌아볼 수 있다는 점이 큰 매력으로 다가왔다.
위와 같은 매력에 빠져 잔디심기를 시작한 지 한 달이 지난 지금
이 작은 운동이 가져온 삶의 변화는 예상 외로 재미있었다
먼저, 매일 개발 공부를 강제화 할 수 있었다.
하루 커밋을 놓쳐서 생긴 커밋 구멍은 메울 수 없기에,
컨디션이 좋은 날이건, 컨디션이 좋지 않은 날이건, 과음으로 인한 숙취에 시달리는 날이건
공부를 쉴 수 없었다. 아니, 공부를 해야만 했다. (이쁘게 심어진 잔디 사이의 구멍이라니.. 상상조차 하기 싫다)
하지만 인생이란게 알다시피 항상 계획대로만 되지는 않는다.
하루하루를 계획적으로 산다고 하지만, 예상치 못한 일은 언제든, 어디든 존재하여 공부할 수 없는 상황이 종종 발생하곤 한다.
그런 날에는 README를 수정해서라도 하루의 잔디를 채우곤 한다. (구멍은 안된다)
한 달간 잔디 심기를 진행하며 느낀 점을 정리해보았다.
긍정적인 부분
- 매일 어떤 부분을 공부할 지 고민하게 되고, 어떤 커밋을 올릴지 고민하게 된다.
- 잔디를 심었을 때, 그 뿌듯함이 있다.
- 한 번 지나간 잔디 구멍은 돌아오지 않기에, 어떤 방법, 어떤 내용이라도 커밋을 올리기 위해 고민하게 된다.
고민하다보면 새로운 공부거리나, 기존 코드를 리펙토링할 수 있는 독특한 아이디어가 떠오르기도 한다.
긍정적인 부분이 있는 반면, 좀 더 고민해 볼 부분도 존재한다
고민사항
- README를 기록하는 커밋과, 서비스 구현 로직에 대한 커밋이 동등한 가치를 지닌다고 볼 수 있을까?
- 고민이 없는 코드에 대한 커밋 빈도수는어느정도인가?
- 추후에 커밋의 퀄리티를 통계내어, 스스로 피드백하는 방법은 무엇일까?
실제로 한 달간의 커밋 이력을 다시 돌아봤을 때,
README를 기록한 커밋, 괜찮은 코드를 그대로 옮겨 올린 커밋, 내 고민과 선택이 들어간 커밋과 같이
커밋 간 퀄리티 차이가 분명히 있었다.
위와 같은 고민사항에 대해 고민하던 끝에,
커밋 퀄리티를 전반적으로 향상시킬 수 있는 한가지 방법을 떠올리게 되었다.
그것은 바로
커밋의 객관적 수치화
이다.
말 그대로 커밋의 퀄리티를 판단할 수 있는 객관적 수치를 정해놓고, 커밋마다 그 값을 매기는 것이다.
그렇다면 객관적 수치는 어떻게 정해야 할까?
객관적 수치에 대한 답을 바로 찾지 못했다.
하지만, 그동안의 커밋 기록을 보아 주관적 수치를 찾을 수 있었다.
한달간 진행했던 커밋 이력들을 본인 기준 5가지 분류로 구분할 수 있었고,
그 5가지 분류에 점수를 부여해, 각 커밋의 퀄리티를 판단하도록 하였다.
5가지 주관적 분류는 다음과 같다
점수 분류 (1~5, 높을수록 high quality)
1 : 간단한 고민 및 README.md 수정
2 : 간단한 테스트 코드 작성 및 단조로운 코드 내용 구현
3 : 단조로운 코드 내용 구현 + 개인적인 견해가 들어간 객체 구조 정의
4 : 새로 학습한 내용 코드에 녹이기 (학습의 성과가 명확한 경우)
5 : 어플리케이션 전반에 걸친 신규/변경사항 구현
위 점수 분류 표에는 주관적이고, 추상적인 단어가 다수 포함되어있다.
Sprint 성격으로 진행하는 점수 분류표의 목적은
주관적 기준들로부터 객관적인 기준을 도출해 내는 것에 있다.
지난 커밋 이력을 돌아봤을 때, 2~3점 대의 분포가 대부분이었다.
4~5점 퀄리티의 커밋 비율을 늘리기 위해서 어떤 방법이 있을지는 지금도 고민중인 부분이다.
이왕 시작한 것, 제대로 해보자!
다음 회고는 위 점수표를 도입하고 생긴 변화와 고민, 커밋 퀄리티의 객관적 지표에 대한 내용이 주일 것으로 예상된다.
끝으로, 1일 1커밋 운동에 동참하는 모든 개발자 분들을 응원합니다!!
댓글