최근 수정 시각 : 2025-08-22 17:02:51

린터

linter에서 넘어옴
파일:eslint-ws.png
WebStorm에서 실행된 ESLint
1. 개요2. 특징3. 목록4. 관련 문서

1. 개요

lint, linter

정적 분석(static analysis)으로 코드베이스를 탐색해 문제가 있거나 문제의 소지가 있는 코드를 찾아내고 교정해 기술적 부채를 줄이고 소프트웨어 품질을 향상시키는 데 도움을 주는 자동화된 도구. 아마(亞麻)를 뜻하는 라틴어 līnum에서 왔다.

영어 기준 linter와 lint 모두 거의 비슷한 의미로 쓰인다. 우리말로는 '맞춤법 검사기'라고 번역하기도 하며, 실무에서는 코드 포매터와 비슷하게 별도로 번역하지 않고 린터라고 부른다.

2. 특징

컴파일러와 다르게 멀쩡히 실행 가능한 코드라도 버그 발생 가능성이 높거나 안티패턴이라고 인식하면 경고를 발생시킨다. 컴파일러는 오로지 기계적 수준에서 해석 자체가 불가능한 컴파일 에러나 최소한의 검사만 수행하는 반면, 린터는 실행 여부와 무관하게 실제 사람, 즉 개발자의 관점에서 유지보수나 코딩 스타일과 같은 하이레벨 레이어의 요소도 고려한다. 때문에 컴파일 과정에서 해결이 불가능한(fatal) 에러와 구분하기 위해, 린터가 제안하는 경고를 diagnostics[1]라고 하기도 한다.

개별 개발자나 조직이 원하는 수준의 품질, 코딩 스타일 등이 제각기 다르므로, 이를 원하는 대로 수정할 수 있도록 린터가 탐색하는 개별 내용들을 린트 규칙(lint rule)이라는 최소한의 단위로 나누어 관리한다. 보통 개별 린트 규칙이나 규칙의 목록(style guide)을 적용할지, 얼마나 강제할지 등을 상세한 수준에서 설정할 수 있다.

에러만 출력하는 것에 그치지 않고, 필요한 경우 권장되는 교정(fix)이나 리팩토링을 제안하기도 한다.

casing, indenting rule과 같은 코딩 스타일을 다루는 경우, 코드 포매터와 그 역할이 일부 겹치기도 한다. 이 경우 ESLint와 같이 코드 포매터 설정을 공식적으로 또는 플러그인으로 지원하거나, Ruff와 같이 하나의 툴에 통합하기도 한다.

특정 린터나 린터 규칙을 프로젝트 단위에서 일괄적으로 적용하는 경우, 린터 자체가 자동화 도구라는 점을 이용해 commit hook 또는 CI 수준에서 린터 수행을 강제할 수 있다.

3. 목록

4. 관련 문서


[1] 주로 언어 서버 프로토콜에서 사용하는 용어. 린터 구현체마다 명칭은 차이날 수 있다. #