[전체 흐름]
git commit 입력
↓
Husky가 가로챔
↓
lint-staged 실행 (변경된 파일만 대상)
↓
Prettier → 코드 포맷 자동 정리
ESLint → 코드 규칙 위반 자동 수정
↓
문제 없으면 커밋 완료 / 있으면 차단
[Husky가 뭘까]

Git에는 특정 시점에 자동으로 스크립트를 실행할 수 있는 기능인 훅!이 있다.
pre-commit 훅 = 커밋 직전에 실행
Husky는 이 Git 훅을 프로젝트 코드로 관리할 수 있게 한다.
pnpm install만 하면 자동으로 훅 등록 !
☆ Husky는 Git의 Hook을 프로젝트에 설정해 커밋이나 푸시 전에 원하는 작업을 자동으로 실행하는 도구이다.
[lint-staged가 뭘까]
git add한 파일들에만 lint를 돌린다.
= 즉 내가 수정한 파일만 검사를 하는 것.
[Prettier랑 EsLint 역할 차이]
- Prettier: 포맷 담당. 들여쓰기, 따옴표, 세미콜론 같은 "코드 생김새"를 통일해줌. 자동으로 고쳐줌(--write).
- ESLint: 규칙 담당. any 금지, arrow function 강제, import 순서 같은 "코드 작성 방식"을 검사함. 고칠 수 있는 건 자동 수정(--fix), 아닌 건 에러로 차단.
동시에 실행하면 섞이니까 prettier → eslint 순서로 순차 실행하도록 설정함.
[App Router 예약 파일 예외]
// 일반 컴포넌트
export const Button = () => { ... }
평소에는 컴포넌트를 화살표 함수로 강제하는데
Next.js App Router의 page.tsx, layout.tsx 같은 예약 파일은
Next.js 표준이 export default function Page()임.
ESLint가 화살표 함수만 허용하도록 강제하면 충돌이 나서 예약 파일들에만 예외 둠.
언제 어디서 우회 가능 여부
| Husky | 커밋할 때 | 내 컴퓨터 | --no-verify로 가능 |
| CI (#23) | PR 올릴 때 | GitHub 서버 | 불가능 |
Husky는 git commit --no-verify로 뚫을 수 있어서, PR 단계에서 CI가 한 번 더 잡아주는 구조.
'Timo' 카테고리의 다른 글
| Next.js 훑어보기 (0) | 2026.06.28 |
|---|---|
| [초기세팅] Sentry & 디스코드 웹훅 연동 (1) | 2026.06.28 |
| CI로 성능 관리 자동화: Lighthouse CI와 번들 사이즈 분석 (0) | 2026.06.28 |
| [초기세팅] TanStack Query & Axios 초기 세팅 (0) | 2026.06.28 |
| turbo gen 명령어로 컴포넌트 생성하기 (0) | 2026.06.28 |