이롭게 현명하게
[JavaScript] naver ESLint 적용하기 본문

목차
eslint 버전 8
naver eslint 적용해 보기
[eslint 버전 8]
이전 게시글에서는 ESLint의 개념과 필요성에 대해 살펴보았다.
// 개념 url
이 글에서는 ESLint를 설치하고 설정해 보면서 어떻게 동작하는지 보겠다.
폴더에 package.json을 생성해 준다.
npm init
저는 각 항목들은 스킵해 주었습니다. (항목들 모두 엔터)

<항목 내용 정리>
- package name : 패키지 이름
- version : 프로젝트의 버전
- description ; 프로젝트에 대한 설명
- entry point(index.js) : 프로젝트의 진입점 파일
- test command : npm 스크립트를 정의하는 부분
- git repository : 깃 리포지터리
- keywords : 패키지를 설명하는 키워드
- author : 이 프로젝트의 작성자 정보(이름, 이메일, 웹사이트 등을 포함)
- license : (ISC) : 이 프로젝트의 라이선스 종류
<예시로 완성된 형태>
{
"name": "a",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
폴더에 package.json이 생성됩니다.

이제 eslint 버전 8을 설치해 보도록 하겠습니다.
eslint 버전 9가 나왔지만 주요 변경사항의 안정성 확보를 위해 검증된 버전 8을 사용했습니다.
npm install -D eslint@8.57.1
<-D>
- 의미 : --save-dev의 축약형
- 용도 : 개발 중에만 필요한 패키지로 설치
- 설치한 패키지를 devDepencies 항목에 추가
{
"devDependencies": {
"eslint": "8.56.0"
}
}

.eslintrc.js : eslint 설정 파일을 생성한 후 규칙을 생성하였다.

이 규칙은 코딩라인 끝에는 세미콜론을 항상 붙여주고 따옴표는 큰따옴표를 사용한다는 규칙이다.
module.exports = {
rules: {
semi: ["error", "always"],
quotes: ["error", "double"],
},
env: {
es6: true,
},
};
index.js를 생성한 후 코드를 작성하였다.

const a = '문자열 입니다.';
const b = "b";
const c = 1;
function Test() {
console.log(a)
}
<동작 확인>
ESLint 동작을 확인하는 방법은 두 가지 방법이 있다.
- lint 명령어를 통한 수동 확인
- VSCODE에서 실시간 확인
1. Lint 명령어를 통한 수동 확인
eslint 명령어를 입력하면 다음과 같은 결과가 나타난다.
명령어를 입력하면 모든 파일에 대해 규칙을 검사한다.
npx eslint .

quote의 규칙은 doublequote 인데 singlequote를 사용해서 규칙에 어긋났다.
1:11 error Strings must use doublequote quotes
semi의 규칙은 항상 콜론을 붙여야하는데 콜론을 붙이지 않아서 규칙에 어긋났다.
5:19 error Missing semicolon semi
이런 오류들을 ESLint가 잡아준다.
ESLint는 오류만 잡는게 아니라 --fix를 통해서 코드를 수정할 수 있다.
npx eslint . --fix를 입력하면 코드가 자동으로 수정된다.
npx eslint . --fix

2. VSCODE에서 실시간확인
비록 지금은 코드가 간결해서 명령어를 입력해도 번거로움이 없지만 프로젝트가 점점 커지기 시작하면 터미널로 eslint를 확인하는 것은 불편하다.
vscode extention에서 eslint를 검색해서 설치한다.

설치 후 코드를 확인해 보면 빨간 줄이 나타나는 것을 볼 수 있다.

devDependencies에 있는 eslint는 CLI로 실행하게 된다.

자바스크립트 파일에 있는 빨간 줄은 개발자가 설정한 .eslintrc.js 파일에서 vscode extention이 실시간으로 오류를 탐지해 준다.
그래서 CLI로 매번 터미널에서 실행시키지 않아도 된다.
[naver eslint 적용해 보기]
프로젝트에 eslint를 적용해 보자
next14 버전과 eslint는 naver를 사용했다.
npx create-next-app@14.2.29 프로젝트 명
프로젝트를 생성할 때 ESLint와 함께 설치한다.


프로젝트 생성이 완료되면
npm install eslint-config-naver

npm install --save-dev eslint-config-prettier

.eslintrc.json에 "naver", "prettier"추가

// .eslintrc.json
{
"extends": ["next/core-web-vitals", "next/typescript", "naver", "prettier"]
}
npm run lint
오류가 없다면 성공이다.
하지만 나는 오류가 났다.


24:13 Error: 'React' is not defined. no-undef
이 오류는 React를 import 하지 않아서 생긴 오류이다.
React를 import 한 후 npm run lint를 하면 오류가 발생하지 않는다.
import React from "react";
naver에서 사용하는 eslint가 적용되었다.

// 충돌 해결법 url
잘못된 정보는 댓글에 남겨주시면 감사하겠습니다!😊
댓글과 좋아요는 큰 힘이 됩니다!

[ 참고자료 ]
https://www.youtube.com/watch?v=RYTWkWOI_eg
https://www.youtube.com/watch?v=Be9q0k5BJ_s
https://www.youtube.com/watch?v=M6NVLZx2m5Y
https://github.com/naver/eslint-config-naver/blob/master/STYLE_GUIDE.md
eslint-config-naver/STYLE_GUIDE.md at master · naver/eslint-config-naver
Naver JavaScript Coding Conventions rules for eslint - naver/eslint-config-naver
github.com
'웹 개발 > JavaScript' 카테고리의 다른 글
| [JavaScript] ESLint의 구성요소 (0) | 2025.11.11 |
|---|---|
| [JavaScript] ESLint 이론 (0) | 2025.11.10 |
| [JavaScript] JSDoc이란? (0) | 2025.10.14 |
| [JavaScript] 자바스크립트 동기와 비동기 / 동기와 비동기 원리 (2) | 2023.12.07 |
| [JavaScript] 자바스크립트 동기와 비동기 / 동기와 비동기 이해하기 (2) | 2023.12.06 |
