사이드프로젝트 slecs

이커머스 프로젝트 초기 설정으로 협업·코드 리뷰 품질 잡기

목차

새 프로젝트 첫 삽

오랜만에 빈 디렉토리부터 시작하는 작업을 맡았음. 이커머스 사이드 프로젝트인데, 첫 커밋부터 설정 파일만 4개 깔았음. config 폴더, ESLint, Prettier, gitignore. 기능 코드 한 줄 없는 initial commit이지만, 이게 나중에 가장 중요했음.

왜 처음부터 lint·format을 박았나

  • 협업자가 들어오기 전에 룰을 고정해두면 PR 리뷰 때 "스페이스 vs 탭" 같은 잡소리가 사라짐
  • 에디터 저장하면 자동 포맷되니까 머리로 신경 안 써도 되는 영역이 늘어남
  • Prettier·ESLint를 분리 운영해서 포매팅은 Prettier, 코드 품질 룰은 ESLint가 맡게 함

처음엔 한 파일에 다 몰아넣을지 고민했는데, 책임을 분리하는 쪽이 디버깅도 편하다는 결론.

.gitignore — 의외로 가장 까다로움

.gitignore는 그냥 템플릿 복붙하면 될 줄 알았는데 아니었음. 사이드 프로젝트지만 결제대행사 연동 키 같은 게 들어갈 가능성이 있어서 환경변수 파일 패턴을 처음부터 강하게 잡아둠.

패턴 이유
.env* (.env.example 제외) 시크릿 유출 방지
dist/, build/ 빌드 산출물은 재생성 가능
.DS_Store, Thumbs.db OS 잡 파일
coverage/ 테스트 리포트

.env.example만 살리는 부분에서 한 번 실수해서 push 직전 알아챘음. 처음부터 꼼꼼히 박아두길 잘했음.

config 폴더 — 빈 자리부터 잡기

config 폴더는 비어있는 상태로 커밋. 환경별 설정 파일이 들어갈 자리만 잡아둔 거. 처음엔 "빈 폴더 커밋이 의미 있나?" 했는데, 막상 다음 커밋에서 dev/prod 설정 추가할 때 자리가 정해져 있으니 고민할 거리가 줄었음. 구조 먼저 잡고 채우는 게 확실히 빠름.

회고

기능 한 줄 없는 첫 커밋에 1시간 넘게 썼는데, 이후 작업 속도 보면 충분히 본전 뽑았음. 특히:

  • eslint-config 베이스를 한 번 정해두니까 새 파일 만들 때 룰 고민이 없음
  • format-on-save가 켜져 있으니 코드 리뷰가 로직에만 집중됨
  • 협업자 추가될 때 README 한 줄("npm run lint")이면 온보딩 끝남

다음 커밋부터 실제 도메인 모델 들어갈 예정. 끝

댓글 0

첫 댓글 달아줘.