목록 보기
Lint Cl 속도 개선: 변경 파일만 검사하는 방법
데브옵스

Lint Cl 속도 개선: 변경 파일만 검사하는 방법

펫프렌즈
펫프렌즈
2024년 12월 12일

두줄요약

PR에서 변경된 파일만 Lint하도록 CI를 개선한 사례를 소개했습니다. Git diff와 공통 조상을 활용해 실행 시간을 줄이고 리뷰 효율을 높였습니다.

문제 상황

  • PR마다 프로젝트 전체 파일을 Lint 검사하면서 실행 시간 증가
  • 변경되지 않은 파일의 오류까지 함께 보여져 리뷰 대상 식별이 어려움
  • 작은 수정에도 CI 대기 시간이 길어져 개발자 경험 저하

원인 분석

  • 모든 파일을 대상으로 하는 기존 Lint CI 구성
  • 브랜치 간 단순 비교 시 다른 작업자의 병합 내용까지 포함될 가능성
  • 최신 커밋만 가져오는 checkout 기본 설정으로 공통 조상 추적 어려움

해결 방법

  • Git merge-base와 git diff로 PR의 공통 조상 기준 변경 파일 추출
  • js, jsx, ts, tsx 파일만 필터링해 Lint 대상 축소
  • GitHub Actions에서 fetch-depth 0 설정과 base/head 브랜치 인자 전달

성능/운영 포인트

  • 평균 7분이던 Lint 시간이 2분으로 단축
  • 변경 파일 로그로 리뷰 피드백의 명확성 향상
  • Test, Build와의 병렬 실행이 쉬워져 CI/CD 병목 완화

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...