우리팀 git 시스템은
커밋 한 번 할 때마다 10~20초씩 걸린다.
그렇다 보니 커밋을 최대한 나중에 하려는 습관이 생기는 것 같다. (다른 팀원들도 그렇다고 한다)
그리고 갈수록 더 느려진다.
처음엔 코드베이스에 익숙하지 않아서
그냥 별로 문제로 여기지 않았지만
문득 내가 왜 이 시간을 기다려야 하지?
라는 생각이 들었다.
그래서 우리 커밋 시스템을 살펴보니
매 커밋마다 전체 프로젝트를 eslint 하고 있는 것이다.
이러니 느릴 수 밖에 없던 것이다.
아마도 우리팀 규모가 처음엔 이렇게 크지 않아서
이런 방식을 사용했던 것 같다.
매 커밋마다 전체 파일을 eslint 해야 할까?
그냥 커밋에 올라가는 변경된 파일만 eslint 하면 되는 것 아닌가?
생각했고 문제 없다고 팀원들과 얘기했다.
그래서 적용했다.
처음엔 git diff와 grep 커맨드로 비교할 계획이었지만
이미 이런 고민을 위해 훌륭한 라이브러리가 있었다.
lint-staged 라는 라이브러리다.
https://www.npmjs.com/package/lint-staged
확장자마다 커밋 전에 다양한 커맨드를 조합할 수 있도록 지원하고, 동시성도 지원하여 채택했다.
{
"*.ts": ["prettier --list-different", "eslint"],
"*.md": "prettier --list-different"
}
이제 10~20초 걸리던 것이 1초 정도로 줄었다.
딱 내가 겪던 문제를 해결하기 위해 만들어졌다고 소개하고 있다.
'업무' 카테고리의 다른 글
[Next.js] Script 추가하기 (채널톡 추가하기, next/script) (0) | 2022.09.28 |
---|---|
Prefetching을 활용한 웹뷰 서비스 설계 및 회고 (0) | 2022.09.24 |
배포 자동화 도구 개발 회고 (0) | 2022.09.03 |
Next.js Middleware 업무에 활용하기 (0) | 2022.08.31 |
리액트 리소스 로딩 속도 개선하기 (0) | 2022.08.30 |