Showing Posts From
커밋
- 16 Dec, 2025
번아웃의 신호: 커밋 메시지가 의미를 잃었다
예전엔 잘 썼다 입사 첫날 커밋 메시지다. feat: 로그인 API 구현 - JWT 토큰 기반 인증 시스템 - refresh token 자동 갱신 로직 추가 - 에러 핸들링 미들웨어 적용자랑스러웠다. 컨벤션도 지켰다. feat, fix, refactor 다 구분했다. 나중에 내가 봐도, 다른 사람이 봐도 알 수 있게. 프로였다. 3개월 전 커밋이다. update뭘 update 했는지 나도 모른다. 지금 git diff 쳐봐도 파일이 12개다. 프론트도 있고 백엔드도 있고 DB 스키마도 바뀌었다. 한 커밋에 다 때려 넣었다. 어제 커밋이다. asdf진짜 asdf다. 손가락이 자동으로 친 거다. 새벽 3시였다. 장애 고치고 배포하는데 메시지 생각할 여유가 없었다. 그냥 push 하면 됐다. 커밋 로그가 내 정신 상태를 기록하고 있다.3개월 차까지는 괜찮았다 입사하고 첫 프로젝트. 사용자 인증 시스템 만들었다. 혼자지만 괜찮았다. 시간도 충분했다. 커밋 하나에 30분씩 걸렸다. 코드 정리하고, 테스트 돌리고, 메시지 쓰고. 브랜치도 제대로 땄다. feature/user-authentication, fix/login-validation. 깔끔했다. 대표님이 좋아하셨다. "개발 프로세스가 체계적이네요." 뿌듯했다. 그때는 업무가 하나였다. 사용자 시스템. 집중할 수 있었다. 오전에 기획 보고, 오후에 개발하고, 저녁에 배포했다. 퇴근은 7시. 주말엔 클린 코드 책 읽었다. 커밋 메시지 작성법도 공부했다. "좋은 커밋 메시지는 미래의 나를 위한 선물이다." 맞는 말이었다. 리팩토링할 때 예전 커밋 보면 무슨 의도였는지 바로 알 수 있었다. 이게 진짜 개발이지, 생각했다. 6개월 차부터 달라졌다. 업무가 쌓이면서 프로젝트가 3개 됐다. 메인 서비스, 어드민 페이지, 외부 API 연동. 다 나 혼자. 기획자가 추가됐다. 좋은 거 아닌가 했다. 아니었다. 요청사항이 3배가 됐다. "이거 급한데요", "내일까지 가능할까요", "간단한 건데". 간단한 거 없었다. 프론트 고치면 백엔드도 고쳐야 했다. API 바꾸면 DB도 바꿔야 했다. 한 기능에 5개 파일 건드렸다. 커밋 하나에 여러 작업이 섞였다. 원래는 안 그래야 한다는 거 안다. 한 커밋엔 하나의 논리적 변경만. 원칙은 알았다. 시간이 없었다. 아침에 시작한 작업을 저녁에 커밋했다. 중간에 긴급 버그 3개 고쳤다. 다 한 커밋에 들어갔다. fix: 로그인 버그 수정 및 대시보드 레이아웃 개선 및 API 응답 속도 개선이게 무슨 커밋이냐. 3개를 한 줄에 썼다. 나도 알았다. 틀렸다는 거. 근데 브랜치 3개 만들고 커밋 나눌 시간이 없었다. 대표님이 "오늘 배포 가능하죠?" 하셨다. 가능했다. 커밋 메시지 대충 쓰면.새벽 2시의 커밋들 장애는 항상 새벽에 터진다. 법칙이다. 슬랙 알림. 오전 2시 17분. 결제 API 500 에러. 일어났다. 노트북 켰다. 로그 확인했다. DB 커넥션 풀 다 찼다. 재시작했다. 임시 조치였다. 근본 원인 찾았다. 커넥션 릴리즈 안 하는 코드 있었다. 고쳤다. 테스트는 못 했다. 새벽 3시였다. 배포했다. 커밋 메시지. fix그냥 fix. 뭘 고쳤는지 안 썼다. 졸렸다. 다시 자고 싶었다. push 하고 침대 갔다. 아침에 일어나서 봤다. 어제 내가 뭘 고쳤더라. 커밋 메시지 봤다. fix. 도움 안 됐다. diff 열어서 코드 봤다. 아, DB 커넥션. 기억났다. "미래의 나를 위한 선물" 어쩌고 했던 책 생각났다. 미안하다, 미래의 나. 새벽 3시의 나는 선물 포장할 여유가 없었다. 이런 커밋이 쌓였다. fix bug update code temp fix quick fix 급한 거 수정 ㅁㄴㅇㄹ마지막 건 자판 잘못 친 거다. 한글 모드였다. 다시 치기 귀찮았다. 그냥 푸시했다. asdf의 등장 처음 asdf 친 날 기억난다. 정확히 기억난다. 3주 전 목요일. 그날 대표님이 "내일 투자 미팅인데 데모 보여줘야 해요"라고 하셨다. 오후 4시에. 데모는 없었다. 만들어야 했다. 프론트 새로 짰다. 기존 거 쓸 수 없었다. 디자인도 없었다. 내가 대충 했다. 백엔드는 기존 API 썼는데 응답 형식이 달랐다. 어댑터 레이어 만들었다. 밤 11시. 70% 됐다. 계속했다. 새벽 1시. 90% 됐다. 거의 다 됐다. 새벽 2시. 작동했다. 배포해야 했다. Docker 빌드. 5분 걸렸다. 기다렸다. AWS 업로드. 3분 더. 기다렸다. 배포 스크립트 돌렸다. 에러. 환경변수 빠졌다. 추가했다. 다시 배포. 성공. 테스트했다. 작동했다. 끝났다. 새벽 2시 40분. 커밋 안 했다는 거 깨달았다. 로컬에 변경사항 수백 개. 스테이징도 안 했다. git add . 쳤다. 다 올라갔다. 커밋 메시지 쳐야 했다. 머리가 안 돌아갔다. 뭐라고 써야 하지. "투자 미팅용 데모 페이지 구현"? 길었다. "데모 구현"? 뭔가 부족했다. 생각이 안 났다. 손가락이 자동으로 asdf 쳤다. 엔터. 푸시. 끝. 침대 갔다. 다음 날 일어나서 커밋 로그 봤다. asdf. 웃겼다. 웃긴데 웃기지 않았다. 내가 이렇게까지 됐구나. 그 뒤로 asdf가 2번 더 나왔다.내 정신 상태의 기록 커밋 히스토리가 그래프다. 내 멘탈 그래프. 입사 초기. 완벽한 메시지들. 올라가는 그래프. 의욕 넘쳤다. 잘하고 싶었다. 프로처럼 일하고 싶었다. 3개월 차. 메시지 길이 줄어들기 시작. 그래프 평평해짐. 바쁘다는 핑계 댔다. 아직 괜찮았다. 6개월 차. "fix bug", "update" 같은 것들. 그래프 내려가기 시작. 시간 없다고 했다. 진짜로 없었다. 지금. "asdf", "ㅁㄴㅇㄹ". 그래프 바닥. 커밋 메시지 신경 쓸 여유가 없다. 코드가 돌아가면 됐다. 기록 같은 건 사치였다. 예전엔 커밋 로그 보는 게 자랑스러웠다. 내 작업의 흔적. 깔끔한 히스토리. 나중에 누가 봐도 이해할 수 있는 기록. 지금은 보기 싫다. 내 추락이 다 기록돼 있다. 1년 전 커밋이랑 지금 커밋 비교하면 웃긴다. 웃긴데 슬프다. 신입이 들어오면 이거 보겠지. "이 사람 왜 이렇게 커밋 메시지를 대충 써요?" 할 거다. 변명할 수 없다. "바빠서요"라고 할까. 맞는 말이다. 근데 변명처럼 들린다. 실제로 변명이긴 하다. 채용 공고에 쓸 수 없는 것들 우리 회사 채용 공고 봤다. 내가 썼다. 대표님이 "개발자니까 개발자가 제일 잘 알지"라고 하셨다. 우대사항: - 클린 코드 작성 능력 - Git 활용 능력 - 코드 리뷰 경험웃긴다. 우리 회사 와서 할 수 있는 게 하나도 없다. 클린 코드? 여기선 작동하는 코드가 최고다. 리팩토링할 시간 없다. 기술 부채? 나중 문제다. 지금 장애 안 나면 됐다. Git 활용? git add . 하고 git commit -m "asdf" 하고 git push. 이게 다다. 브랜치? main 하나. PR? 나 혼자인데 누구한테 리뷰 받나. 코드 리뷰? 혼자 일하는데 리뷰가 있나. 내 코드를 내가 리뷰한다. "이거 맞나?" 물어본다. 대답 없다. 그냥 머지한다. 지원자가 와서 "커밋 컨벤션 어떻게 되나요?" 물으면 뭐라고 하지. "없습니다. 각자 알아서 씁니다." 근데 각자가 나 혼자다. "제가 아무렇게나 씁니다"가 정확하다. "코드 리뷰 프로세스는요?" 물으면. "없습니다." "그럼 QA는요?" "제가 합니다." "테스트 코드는요?" "...시간 나면 씁니다." 안 쓴다는 뜻이다. 채용 공고는 거짓말이다. 우리가 원하는 사람이 아니라 우리가 되고 싶은 사람을 쓴다. 현실은 다르다. 실제 채용 공고에 써야 하는 것들. 필수사항: - 혼자 일하는 거 익숙하신 분 - 커밋 메시지 신경 안 쓰시는 분 - 새벽 3시 배포 가능하신 분 - asdf 이해하시는 분이건 못 쓴다. 아무도 안 온다. 리팩토링하고 싶다 가끔 시간 날 때 옛날 커밋 본다. 6개월 전 거. 제대로 썼던 것들. refactor: 사용자 인증 로직 모듈화 - 인증 미들웨어를 별도 파일로 분리 - JWT 검증 로직 재사용 가능하도록 함수화 - 에러 메시지 일관성 있게 수정이렇게 쓰고 싶다. 지금도. 못 쓴다. 리팩토링하고 싶다. 코드도, 커밋 히스토리도. 다 지우고 처음부터 다시 쓰고 싶다. 제대로 된 구조로. 제대로 된 메시지로. 시간 없다. 신규 기능 개발해야 한다. 버그 고쳐야 한다. 장애 대응해야 한다. 리팩토링은 우선순위 꼴찌다. 대표님한테 말씀드렸다. "기술 부채 정리 시간 좀 주세요." "얼마나 걸려요?" "2주요." "2주 동안 신규 개발 멈춰요?" "...네." "그럼 안 되죠." 끝이다. 논의 끝. 기술 부채는 계속 쌓인다. 커밋 메시지는 계속 대충 쓴다. 악순환이다. 때때로 꿈꾼다. 출근해서 오늘은 리팩토링만 한다. 코드 정리한다. 테스트 작성한다. 커밋 메시지 제대로 쓴다. 브랜치 전략 세운다. 현실은 다르다. 출근하면 슬랙 메시지 30개. "이거 급한데요" 5개. 장애 알림 2개. 리팩토링 시간 없다. 점심시간에 클린 코드 책 펼친다. 2페이지 읽는다. 슬랙 울린다. 책 덮는다. 동기들은 달랐다 대학 동기 모임 갔다. 한 달 전. 다들 개발자 됐다. 친구 A. 네이버. "우리는 코드 리뷰 필수야. PR 올리면 2명 이상 승인받아야 머지돼. 커밋 메시지도 컨벤션 있어서 지키지 않으면 CI에서 막혀." 부러웠다. 시스템이 있다는 게. 친구 B. 카카오. "우리 팀은 페어 프로그래밍해. 한 명이 코딩하면 옆에서 리뷰하면서. 커밋도 같이 작성해." 좋겠다. 혼자 안 해도 되는 게. 친구 C. 쿠팡. "테크 리드가 코드 품질 엄청 보더라. 한 번은 커밋 메시지가 불명확하다고 다시 쓰라고 했어. 짜증 났는데 나중에 보니까 도움 되더라." 내가 말했다. "난 혼자 개발해서 그런 거 없어." 다들 놀랐다. "혼자? 진짜 혼자?" "응. 프론트부터 백엔드, 인프라까지 다." 감탄했다. "대박. 풀스택이네. 배울 게 많겠다." 웃었다. 배우는 게 아니다. 어쩔 수 없이 하는 거다. 집 가는 길에 생각했다. 저 친구들은 성장하고 있다. 리뷰받고, 피드백받고, 제대로 된 프로세스 배우고. 나는? 기술 스택은 넓어졌다. 깊이는 없다. 다 대충 한다. 제대로 하는 게 없다. 커밋 메시지처럼. 새로 온 인턴에게 지난주에 인턴 왔다. 대학생. 방학 동안 경험 쌓으러. 첫날 코드 리뷰 부탁했다. "커밋 로그 좀 볼게요." 봤다. 표정 굳었다. "이게... 다 하신 거예요?" "응." "커밋 메시지가..." 말 끝까지 안 했다. 안 해도 안다. 엉망이다. "바빠서 그래. 원래는 이러면 안 돼." 변명했다. 인턴이 물었다. "그럼 컨벤션 어떻게 되나요? 저도 맞춰서 쓸게요." 대답 못 했다. 컨벤션 없다. "음... 그냥 알아볼 수 있게만 써." 이게 무슨 가이드냐. 인턴 첫 커밋 봤다. feat: 관리자 대시보드 차트 컴포넌트 추가 - Chart.js 라이브러리 적용 - 월별 사용자 증가 추이 시각화 - 반응형 레이아웃 적용완벽했다. 부끄러웠다. 내 최근 커밋. asdf인턴이 나한테 배우러 왔다. 내가 가르쳐줄 게 없다. 나쁜 습관만 가르쳐주게 생겼다. "선배님, 커밋 메시지 왜 중요한가요?" 물었다. "나중에 보면... 뭘 했는지 알 수 있지." 말하면서도 설득력 없었다. 내 커밋 보면 모른다. 나도 모른다. 인턴이 2주 동안 제대로 된 커밋 썼다. 나도 따라 쓰려고 했다. 3일 갔다. 급한 일 생겼다. 다시 "fix", "update". 인턴 마지막 날. "많이 배웠어요." 뭘 배웠을까. 혼자 일하는 법? 커밋 메시지 대충 쓰는 법? 나쁜 것만 배웠을 것 같다. 이직 준비하면서 이직하려고 한다. 결심했다. 이대로는 안 된다. 이력서 썼다. GitHub 링크 넣어야 한다. 고민했다. 커밋 로그 보이는 게. 부끄럽다. Private 레포로 바꿀까 생각했다. 근데 그럼 포트폴리오가 없다. 어쩔 수 없다. 공개한다. 면접 준비했다. 예상 질문 적었다. "Git 워크플로우 어떻게 하시나요?"답: 혼자 main 브랜치에 푸시합니다."커밋 컨벤션은요?"답: 없습니다. asdf 같은 것도 있습니다."코드 리뷰는 어떻게 하시나요?"답: 혼자 일해서 안 합니다.전부 감점이다. 옛날 프로젝트 파기 시작했다. 사이드 프로젝트. 제대로 할 거다. 커밋 메시지 하나하나 신경 써서. 시작했다. React 프로젝트. 첫 커밋. chore: 프로젝트 초기 설정 - CRA로 React 프로젝트 생성 - ESLint, Prettier 설정 - 절대 경로 import 설정기분 좋았다. 이거다. 이렇게 쓰는 거다. 예전 감각 돌아왔다. 2주 했다. 커밋 10개. 다 제대로 썼다. 뿌듯했다. 면접 때 보여줄 수 있겠다. 근데 본업 커밋은 여전히 "fix", "asdf". 분리된 느낌이었다. 사이드는 완벽, 본업은 난장판. 이게 정상인가. 아니다. 알고 있다. 버릴 수 없는 이유 퇴사 고민한다. 맨날 한다. 근데 못 한다. 이유는 간단하다. 나 없으면 여기 돌아가지 않는다. 대표님 의존도 100%. 코드 아는 사람 없다. 서버 구조 아는 사람 없다. DB 스키마 아는 사람 없다. 다 내 머릿속에만 있다. 문서화? 해야 한다는 거 안다. 시간 없다. 개발하기도 바쁘다. 동료가 없다는 게 이런 거다. 대체 불가능해진다. 자랑이 아니다. 올가미다. 퇴사 상상한다. 인수인계 어떻게 하지. 2주로 되나. 한 달 줘도 모자랄 것 같다. 코드 설명해야 한다. 근데 커밋 로그 보면 이해 안 된다. 코드 봐도 이해 안 된다. 주석 없다. 내 머릿속에만 있다. "이 부분은 왜 이렇게 했어요?" 물으면 답해야 한다. "급해서요." 이게 답이다. 전부 그렇다. 책임감 때문에 못 나간다. 여기 나가면 서비스 터진다. 100% 터진다. 새로 온 사람이 파악하는 동안 장애 몇 번 날 거다. 그게 내 책임은 아니다. 알고 있다. 혼자 개발하게 만든 회사 책임이다. 근데 죄책감 든다. 이상하게. 언젠가는 정리할 거다 꿈꾼다. 언젠가 시간 나면. 커밋 히스토리 다시 쓰기. git rebase 로. 메시지 전부 수정. "asdf" 없애기. 의미 있는 메시지로 바꾸기. 브랜치 전략 세우기. feature, develop, main. 제대로 된 워크플로우. PR 만들고 머지하기. 혼자지만. 문서 작성하기. README 제대로. 아키텍처 설명. 왜 이렇게 만들었는지. 다음 사람이 보면 이해할 수 있게. 테스트 코드 작성하기. 유닛 테스트. 통합 테스트. 커버리지 80% 이상. 리팩토링할 때 안심하고 할 수 있게. 리팩토링하기. 기술 부채 청산. 스파게티 코드 정리. 모듈화. 클린 아키텍처. 자랑스러운 코드베이스. 언젠가. 시간 나면. 할 거다. 근데 언제? 모른다. 지금은 아니다. 내일도 아니다. 다음 주도 아니다. 신규 기능 개발해야 한다. 버그 고쳐야 한다. 언젠가는 영원히 오지 않는다. 안다. 근데 위안 삼는다. 언젠가는, 하면서. 커밋 로그는 계속 쌓인다. 의미 없는 메시지들로. 내 추락의 기록이. 신호였다 커밋 메시지는 신호였다. 처음 "update"라고만 쓴 날. 신호였다. 바쁘다는 핑계. 진짜 문제는 시간이 아니었다. 여유가 없었던 거다. 정신적 여유. 처음 "fix"라고만 쓴 날. 신호였다. 뭘 고쳤는지 안 썼다. 귀찮아서가 아니다. 생각할 힘이 없
- 05 Dec, 2025
커밋 메시지 'fix bug', 'update', 'asdf': 정신 없음의 흔적
커밋 메시지 'fix bug', 'update', 'asdf': 정신 없음의 흔적 오늘 아침에 git log를 봤다. 지난 3일치 커밋 메시지가 이렇다. "fix bug" "update" "asdf" "quick fix" "really fix this time" "fuck" "revert fuck" ...이게 프로덕션이다.git log가 내 정신 상태 커밋 메시지를 보면 그날 내 상태가 보인다. 오전 10시: "feat: 사용자 프로필 API 구현" → 정신 멀쩡할 때다. 오후 3시: "fix profile bug" → 피곤해지기 시작. 저녁 7시: "update" → 저녁 먹고 와서 뭐 했는지 기억 안 남. 밤 11시: "asdf" → 의식의 흐름. 새벽 2시: "please work" → 간절함. 새벽 3시: "I HATE THIS" → 분노. 새벽 4시: "final fix" → 거짓말. 이게 3년차 풀스택 개발자의 커밋 히스토리다. 자랑스럽다. 의미 모를 메시지의 이유 왜 이렇게 되는가. 첫째, 시간이 없다. 커밋 메시지 쓸 정신이 없다. 대표가 "이거 언제 돼요?" 슬랙에 5번째 멘션이다. 일단 커밋하고 푸시한다. 메시지는 나중에. 근데 나중은 오지 않는다. 둘째, 정신이 없다. 동시에 3개 작업 중이다. 프론트 버그 고치다가 백엔드 API 수정하다가 DB 인덱스 추가하다가. 뭘 커밋하는지 정확히 모른다. "update" 치고 엔터. 셋째, 새벽이다. 오후 2시에 시작한 '간단한 수정'이 밤 11시에 끝났다. 연쇄 버그였다. 피곤하다. 커서가 커밋 메시지 창에 깜빡인다. 손이 알아서 "fix" 친다. 넷째, 혼자다. 코드 리뷰 없다. 컨벤션 지킬 사람도 없다. 나 말고 git log 볼 사람이 없다. 그래서 대충 쓴다. 근데 3개월 뒤 내가 본다. 그리고 후회한다.새벽 커밋의 특징 새벽 2시 이후 커밋은 특별하다. 메시지가 짧아진다. "fix"에서 "f"까지 진화한다. 타이핑할 기력도 없다. 오타가 늘어난다. "fxi bug", "updaet", "commti". 백스페이스 누를 힘도 없다. 감정이 들어간다. "please", "why", "help", "fuck". 코드에 하소연한다. 종교가 등장한다. "god please", "jesus christ", "holy shit it works". 신에게 간구한다. 어제 새벽 3시 커밋이다. "why is this even a bug" "ok this should work" "nope" "maybe now" "FINALLY" 5개 연속 커밋. 같은 버그. 40분 걸렸다. 원인은 오타였다. 변수명 "user"를 "usr"로 썼다. 'asdf'의 의미 'asdf'는 특별하다. 왼손 홈포지션이다. 아무 생각 없이 친다. 근데 자주 쓴다. 지난달에만 12번 썼다. 처음엔 부끄러웠다. 지금은 자연스럽다. 'asdf'는 내 정신 상태를 정직하게 표현한다. "지금 나 아무 생각 없음. 그냥 커밋함." 동료 개발자 있었을 때는 안 썼다. 코드 리뷰 있었으니까. "커밋 메시지 좀 제대로 써주세요" 들으니까. 지금은 혼자다. 'asdf' 맘껏 쓴다. 자유다. 슬픈 자유다. git blame 보면 웃긴다. 3개월 전 코드에 'asdf' 커밋이다. 뭔지 모른다. 다시 읽어야 한다. 과거의 나를 욕한다. "메시지 좀 써놓지." 근데 오늘도 'asdf' 쓸 것 같다. 컨벤션은 어디로 입사할 땐 다짐했다. "커밋 메시지 컨벤션 지키자. feat, fix, refactor 구분하자. 이슈 번호 달자." 1주일 갔다. 지금 컨벤션은 이렇다.오전: 제대로 씀 오후: 대충 씀 저녁: 안 씀 새벽: 욕함feat, fix는 가끔 쓴다. 기분 좋을 때. refactor는 본 지 오래됐다. 리팩토링할 시간이 어딨나. 이슈 번호는 없다. 이슈 트래커 쓸 여유가 없다. 슬랙 DM이 이슈 트래커다. 대표 톡이 백로그다. 이모지도 시도했다. ✨, 🐛, 🔥. 3일 갔다. 귀찮다. 지금은 문자만. 최소한만.역대급 커밋들 기억에 남는 커밋들이 있다. 가장 정직한 커밋: "I have no idea what I'm doing" 새벽 4시. 스택오버플로우 코드 복붙했다. 작동했다. 이유는 모른다. 정직하게 적었다. 가장 긴 커밋: "fix bug fix bug fix bug fix bug fix bug" 복붙했다. 손이 컨트롤 안 됐다. 피곤해서. 가장 짧은 커밋: "." 마침표 하나. 엔터 치려다 점 찍었다. 그냥 푸시했다. 돌아가서 고칠 기력이 없었다. 가장 화난 커밋: "WHO WROTE THIS CODE oh wait it was me" 3개월 전 내 코드였다. 똑같은 버그를 똑같이 고쳤다. 커밋 메시지도 똑같았다. "fix user bug". 학습 능력 제로. 가장 슬픈 커밋: "goodbye clean code" 기술 부채 쌓는 거 알면서 땜질했다. 시간이 없어서. 나중에 고치자. 근데 나중은 안 온다. 동료가 보면 전 직장 동기가 물었다. "너희 회사 코드 퀄리티 어때?" git log 보여줬다. 말없이 봤다. 그리고. "...너 괜찮아?" 괜찮지 않다. 근데 뭐 어쩌나. 혼자 하는데. 서비스는 돌아가는데. 커밋 메시지까지 신경 쓸 여유가 없다. "나중에 누가 보면 어떡하려고?" 나중에 사람 뽑으면 창피할 것 같다. 신입이 와서 git log 보면. "선배님 이게 뭐예요?" 할 것 같다. "음... 그때 많이 바빴어. 하하." 변명할 것 같다. 근데 지금도 바쁘다. 6개월 뒤도 바쁠 것 같다. 반복되는 메시지 같은 메시지를 반복해서 쓴다. "fix login bug" - 이거 7번 커밋했다. 로그인 버그가 7번 났다. 아니다. 근본 원인을 안 고쳤다. 증상만 고쳤다. 시간이 없어서. "update API" - 이거 21번 썼다. 뭘 업데이트했는지 모른다. 그냥 뭔가 바뀌었다. "quick fix" - 빠른 수정은 없었다. 다 2시간씩 걸렸다. 거짓말이다. "minor change" - 마이너가 아니었다. DB 스키마 바꿨다. 이거 메이저다. 근데 인정하기 싫었다. "temp" - 임시 수정. 근데 3개월 째 프로덕션이다. 영구적 임시다. 반복되는 메시지를 보면 알 수 있다. 근본 문제를 안 고친다. 시간이 없어서. 똑같은 실수를 반복한다. PR 없는 세상 전 회사는 PR 필수였다. 커밋 3개 이상 쌓이면 안 됐다. 바로 PR 올렸다. 리뷰 받았다. "커밋 메시지 수정해주세요." 피드백 받았다. 귀찮았는데 배웠다. 지금은 PR이 없다. 혼자니까. 리뷰할 사람이 없으니까. main 브랜치에 바로 푸시한다. 무법지대다. 자유롭다. 근데 무섭다. 견제가 없으니까. 내 실수를 못 잡는다. 커밋 메시지도 점점 막 쓴다. 가끔 스스로 리뷰한다. "이거 좀 이상한데." 근데 고칠 시간이 없다. "나중에." 그리고 잊는다. 브랜치 전략도 없다. feature 브랜치? develop 브랜치? 그런 거 없다. main 하나. hotfix도 main에. 전부 main에. 깃플로우는 교과서에나 나온다. 현실은 메인 브랜치 하나로 모든 걸 한다. 미래의 나에게 3개월 뒤 내가 볼 것이다. 오늘 'asdf'로 커밋한 코드를. 그리고 욕할 것이다. "이게 뭔 코드야." 근데 수정 못 한다. 또 시간이 없어서. 6개월 뒤 신입이 올지도 모른다. 온보딩하면서 git log 보여줘야 한다. "이게 우리 커밋 히스토리예요. 하하." 웃으면서 말할 것이다. 근데 웃음이 나올까. 1년 뒤 이직할지도 모른다. 포트폴리오 정리하면서 이 레포를 볼 것이다. 공개할 수 없다. 창피해서. private으로 둘 것이다. 그리고 새로 만들 것이다. 깨끗한 커밋 히스토리로. 미래의 나에게 미안하다. 근데 지금의 나도 힘들다. 서비스는 돌려야 하고. 장애는 고쳐야 하고. 기능은 만들어야 하고. 커밋 메시지까지 신경 쓸 여유가 없다. 그래도 알고는 있다. 이게 잘못됐다는 거. 언젠가 대가를 치를 거라는 거. 근데 오늘은 아니다. 내일도 아니다. 그래서 오늘도 'asdf' 친다. 그래도 가끔 제대로 쓴다. 기분 좋은 날. 새 기능 완성한 날. 리팩토링 한 날. 그럴 땐 정성껏 쓴다. "feat: 사용자 알림 시스템 구현WebSocket 기반 실시간 알림 읽음/안읽음 상태 관리 모바일 푸시 알림 연동closes #42" 이런 커밋을 쓸 때. 뿌듯하다. "나도 할 수 있네." 싶다. 근데 이런 커밋은 한 달에 2개 정도다. 나머지는 'fix', 'update', 'asdf'. 그래도 포기 안 한다. 완전히 놓진 않는다. 가끔이라도 제대로 쓴다. 그게 내 마지막 자존심이다.오늘도 'quick fix' 쳤다. 2시간 걸렸는데.