- ์๋ฌธ ์ ๋ชฉ: ESLint v10.0.0 released
- ์๋ฌธ ๋งํฌ: https://eslint.org/blog/2026/02/eslint-v10.0.0-released/
- ๋ฒ์ญ ์์ฑ์ผ: 2026-02-15 (KST)
์๋ฌธ์ด ๋งค์ฐ ๊ธธ์ด์, ์ ๊ทธ๋ ์ด๋/๋ง์ด๊ทธ๋ ์ด์ ์ ์ง์ ์ํฅ์ ์ฃผ๋ ํต์ฌ ์น์ ์ค์ฌ์ผ๋ก ์์ฝ ๋ฒ์ญํ์ต๋๋ค.
ESLint v10.0.0์ ์ฃผ์(major) ๋ฆด๋ฆฌ์ฆ๋ก, ์ ๊ธฐ๋ฅ๊ณผ ํ๊ดด์ ๋ณ๊ฒฝ์ด ํฌํจ๋ฉ๋๋ค.
๋ฉ์ด์ ๋ฆด๋ฆฌ์ฆ๋ผ ์๋ ์ ๊ทธ๋ ์ด๋๊ฐ ์ ๋ ์ ์์ต๋๋ค.
npm i eslint@10.0.0 --save-dev๊ฒ์ ์์ ๊ธฐ์ค Node.js v24.x๊ฐ LTS์ด๋ฉฐ, ESLint v10์ ๋ค์์ ์ง์ ์ข ๋ฃํฉ๋๋ค.
- Node.js v20.19.0 ๋ฏธ๋ง
- v21.x, v23.x
๋ณ๊ฒฝ์ ์ด ๋ง๊ธฐ ๋๋ฌธ์ ๊ณต์ ๋ง์ด๊ทธ๋ ์ด์ ๊ฐ์ด๋๊ฐ ์ ๊ณต๋ฉ๋๋ค.
๋๋ถ๋ถ์ ์ฌ์ฉ์๋ ๋น๋ ๋ณ๊ฒฝ ์์ด ์ ๊ทธ๋ ์ด๋ ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ์์ํ์ง๋ง, ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ๋ผ๊ณ ์๋ดํฉ๋๋ค.
ESLint v10์ eslint.config.*(flat config)๋ฅผ ์ฐพ์ ๋,
- ๊ธฐ์กด(v9): ํ์ฌ ์์ ๋๋ ํฐ๋ฆฌ(CWD) ๊ธฐ์ค
- ๋ณ๊ฒฝ(v10): ๊ฐ ๋ฆฐํธ ๋์ ํ์ผ์ ๋๋ ํฐ๋ฆฌ์์ ์์ํด์ ํ์
์ด ๋ณ๊ฒฝ์ ํ ๋ฒ์ ์คํ์์ ์ฌ๋ฌ config๋ฅผ ๋ค๋ฃฐ ์ ์๊ฒ ํด์ฃผ๊ณ , ๋ชจ๋ ธ๋ ํฌ์์ ํนํ ์ ์ฉํ๋ค๊ณ ์ค๋ช ํฉ๋๋ค.
v9์์ ์คํ ํ๋๊ทธ v10_config_lookup_from_file๋ก ์ผค ์ ์์๊ณ , v10์์๋ ๊ธฐ๋ณธ๊ฐ์ด ๋์์ผ๋ฉฐ ํด๋น ํ๋๊ทธ๋ ์ ๊ฑฐ๋์์ต๋๋ค.
v10์์ eslintrc ๊ตฌ์ฑ ์์คํ ์ด ์์ ํ ์ ๊ฑฐ๋์์ต๋๋ค. ์ฆ,
.eslintrc.*,.eslintignore๋ ๋ ์ด์ ๋์ํ์ง ์์ESLINT_USE_FLAT_CONFIGํ๊ฒฝ๋ณ์๋ ๋ ์ด์ ๋ฌด์๋์ง ์๊ณ ๋์ํ์ง ์์(๋ ์ด์ ์๋ฏธ ์์)- CLI์์ eslintrc ์ ์ฉ ์ต์
๋ค(
--no-eslintrc,--env,--rulesdir,--ignore-path๋ฑ)์ด ์ ๊ฑฐ /* eslint-env */์ฃผ์์ ์๋ฌ๋ก ๋ณด๊ณ
API ๋ ๋ฒจ์์๋ LegacyESLint ์ ๊ฑฐ ๋ฑ ์ฌ๋ฌ ๋ณ๊ฒฝ์ด ์์ต๋๋ค.
JSX ์๋ณ์๋ ์ค์ฝํ ๋ถ์์์ ์ฐธ์กฐ๋ก ์ถ์ ํ๊ฒ ๋์ด,
no-unused-vars์ ์คํ/๋ฏธํno-undef์ ๋ฏธํ
๊ฐ์ ๋ฌธ์ ๊ฐ ์ค์ด๋ ๋ค๊ณ ์ค๋ช ํฉ๋๋ค.
ํ๋ฌ๊ทธ์ธ/๋ฃฐ ์์ฑ์์ฉ RuleTester๊ฐ ๋ ์๊ฒฉํด์ก์ต๋๋ค.
- ๋ฉ์์ง/์์น/๋ฐ์ดํฐ ๊ฒ์ฆ์ ๊ฐ์ ํ๋ ์ต์
(
requireMessage,requireLocation,requireData) ์ถ๊ฐ - ์คํจํ ํ ์คํธ ์ผ์ด์ค ์์น๋ฅผ ๋ ์ ์ฐพ์์ฃผ๋๋ก ์คํ ํธ๋ ์ด์ค ๊ฐ์
- v10์ flat config ์ ํ + eslintrc ์์ ์ ๊ฑฐ๊ฐ ํต์ฌ์ ๋๋ค.
- ๋ชจ๋ ธ๋ ํฌ๋ ํ์ผ ๊ธฐ์ค config ํ์์ผ๋ก ๋ฉํฐ config ์คํ์ด ์ฌ์์ง๋๋ค.
- ์ ๊ทธ๋ ์ด๋๋ ๊ณต์ ๋ง์ด๊ทธ๋ ์ด์ ๊ฐ์ด๋ ๊ธฐ๋ฐ์ผ๋ก ์งํํ๋ ๊ฒ ์์ ํฉ๋๋ค.