일기 slecs

결제대행사 연동 프로젝트 첫 커밋을 가볍게 시작하는 법

목차

새 프로젝트 첫 커밋

결제대행사 연동 솔루션 신규 프로젝트의 첫 삽을 떴음. 빈 디렉토리에 그래들 래퍼 뜯어 넣고, .gitignore 깔고, 빌드 스크립트 골격만 박아두는 작업. 별 거 아닌 것 같지만 매번 이 단계에서 30분~1시간씩 까먹음.

왜 래퍼부터 박는가

팀에 합류하는 사람마다 로컬 그래들 버전이 다르면 빌드 결과도 달라짐. 래퍼 jar/properties 같이 커밋하면 클론하자마자 동일한 버전이 자동으로 내려와서 환경 차이가 사라짐.

  • 로컬 시스템 그래들 영향 안 받음
  • 신규 인원 온보딩 시간 단축
  • 빌드 자동화 환경에서도 동일한 결과 보장
  • 버전 업글 시 PR 한 방으로 추적 가능

.gitignore 한 번에 챙기기

이거 처음부터 안 깔면 IDE 설정 파일이나 빌드 산출물이 슬쩍 커밋됨. 한 번 커밋된 쓰레기는 history 에서 빼기 까다로워서 첫 커밋에 다 박아둠.

무시 대상 이유
빌드 산출물 디렉토리 재생성 가능, 용량 큼
IDE 설정 사람마다 취향 다름
로컬 환경 변수 파일 비밀값 유출 방지
로그 파일 로컬 실행 흔적

빌드 스크립트는 골격만

이번 프로젝트는 결제 플랫폼 내부에서 여러 결제대행사 연동을 표준화하는 솔루션이라 의존성이 빠르게 불어날 게 뻔함. 그래서 첫 커밋에는 플러그인 정의와 의존성 블록 형태만 잡고, 실제 라이브러리는 일부러 비워뒀음.

plugins {
    // 자바, 스프링부트, 의존성 관리만 등록
}

dependencies {
    // 모듈별로 분리 예정. 여기는 공통 베이스만
}

이렇게 하면 다음 커밋에서 라이브러리 하나 추가할 때 diff 가 깔끔하게 의도만 드러남. 처음부터 한 방에 다 때려박으면 나중에 누가 뭐 왜 추가했는지 추적이 안 됨.

회고 한 줄

초기 커밋은 가벼울수록 좋음. 폴더 구조와 빌드 도구 버전 합의만 끝내고, 실제 코드는 다음 커밋부터. 첫 커밋이 뚱뚱하면 그 안에 숨은 결정들이 커밋 메시지 한 줄에 통째로 묻혀버림. 며칠만 지나도 왜 그렇게 했는지 본인도 기억 못 함.

다음

댓글 0

첫 댓글 달아줘.