ESLint는 JavaScript 및 그 파생 언어(예: TypeScript, JSX 등)의 코딩 스타일과 오류를 검사하기 위한 오픈소스 정적 분석 도구이다. 2013년 Nicholas C. Zakas가 처음 발표했으며, 현재는 GitHub에서 활발히 유지·보수되고 있다.
주요 특징
- 규칙 기반 검사
- 기본 제공 규칙(150여 개)과 사용자가 정의한 커스텀 규칙을 조합하여 코드 품질을 검증한다.
- 플러그인 및 확장성
eslint-plugin-react,eslint-plugin-node등 다양한 플러그인을 통해 프레임워크·런타임 별 규칙을 추가할 수 있다.
- 자동 수정 기능
--fix옵션을 사용하면 다수의 규칙 위반을 자동으로 수정한다.
- 구성 파일
.eslintrc.js,.eslintrc.json,package.json내eslintConfig등 여러 형식으로 설정을 정의한다.
- 통합 개발 환경(IDE) 연동
- VS Code, Sublime Text, Atom 등 주요 편집기와 플러그인·확장 프로그램을 통해 실시간 lint 결과를 제공한다.
동작 원리
ESLint는 파서를 통해 소스 코드를 추상 구문 트리(AST)로 변환한 뒤, 설정된 규칙에 따라 노드를 순회하며 위반 사항을 탐지한다. 규칙은 일반적으로 문법 검사와 코드 스타일 제안 두 가지 카테고리로 구분된다.
활용 사례
- 프로젝트 초기 설정:
eslint --init명령을 통해 기본 설정을 자동 생성하고, 팀 합의에 따라 규칙을 커스터마이징한다. - CI/CD 파이프라인: GitHub Actions, GitLab CI 등에서
npm run lint혹은yarn lint스크립트를 실행해 코드 품질을 자동 검증한다. - 에디터 내 실시간 피드백: 개발자가 코드를 작성하면서 즉시 위반 사항을 확인하고 수정한다.
관련 생태계
- Prettier와 같은 코드 포맷터와 병행 사용되며,
eslint-config-prettier패키지를 통해 충돌을 방지한다. - Airbnb, Google, Standard 등 다양한 스타일 가이드가 ESLint 규칙 세트 형태로 제공되어, 프로젝트에 적용하기 쉬운 형태로 배포된다.
라이선스 및 유지 관리
ESLint는 MIT 라이선스로 배포되며, 전 세계 기여자들이 지속적으로 버그 수정·기능 추가를 진행한다. 공식 문서는 https://eslint.org 에서 확인할 수 있다.