ESLint์ ๋ํ์ฌ
ESLint ๋ํ ๊ธ์ ๋๋ค.
์ด๋ฒ์ ์ ํฌ ํ์ฌ์์ ํ๋ก์ ํธ์ Eslint ๊ด๋ จ ๊ท์น์ ๊ฐํ๊ฒ ์ก๋ ๊ฒ์ ๋ชฉํ๋ก eslintrc.json ํ์ผ์ ์ค์ ์ ์์ ํ๊ณ ๊ด๋ จํ์ฌ ์ฝ๋ ํฌ๋งทํ ์ ์งํํ๊ณ ์์ต๋๋ค.
ํฌ๋งทํ ์ ํ๋ ๊ณผ์ ์์ ์๊ฒ๋ ๋ฐ๊ฐ ์์ด ์ด๋ฅผ ์ฌ๋ฌ๋ถ๊ณผ ๊ณต์ ํ๊ณ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ฐ์ ์ ํฌ ํ์ ํ๋ก์ ํธ์ ๋ํ ์ค๋ช ์ด ํ์ํฉ๋๋ค. ์ ํฌ ํ๋ก์ ํธ์๋ ์๋ ์ฝํ ๋จ๊ณ์ eslint ์ค์ ์ด ๋์ด์์๊ณ , ์ด์ ๋ฐ๋ผ ํ๋ก์ ํธ์ ์์กด์ฑ์ eslint๊ฐ ์ด๋ฏธ ์ค์น๋์ด ์์์ต๋๋ค.
์ด์๋ ์ฌ๊ธฐ์๋ถํฐ ์ถ๋ฐํฉ๋๋ค.
์ด์
ํฌ๋งทํ ์ ํ ๋, ๋ณ๊ฒฝ๋ eslintrc.json ๊ณผ package.json ํ์ผ์ด ์ ๊ณต๋์์ต๋๋ค. ์ ๊ฐ์ ๊ฒฝ์ฐ eslint๋ ์ด๋ฏธ ์ค์น๋์ด ์์ผ๋ ์ค์ ํ์ผ๋ง ๋ณ๊ฒฝํ๊ณ lint ๋ช ๋ น์ด๋ฅผ ํตํด ํฌ๋งทํ ์ํ์ ํ๋ฉด ๋๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๊ทธ๋ฌ๋ package.json ํ์ผ์๋ โ@typescript-eslint/eslint-pluginโ ์ด๋ฐ ์์กด์ฑ ์ฝ๋๋ค์ด ์กด์ฌํ์ต๋๋ค. ๋ฐ๋ผ์ ์ ์ ์๊ฐ์ โ์ด๋ฏธ eslint๊ฐ ์ค์น๋์ด ์๋๋ฐ ์์กด์ฑ์ ๋ณ๋๋ก ์ค์นํด์ผ ํ ๊น?โ ๋ผ๋ ์๊ฐ์ ํ์ต๋๋ค.
๊ทธ๋์ ์๊ณ ์์ง๋ง ํ์คํ ํ๊ธฐ ์ํด ํ์ต์ ํด๋ดค์ต๋๋ค.
ESLint๋?
ESLint๋ ์์ฒด์ ์ผ๋ก ์ฝ๋ ์คํ์ผ ๊ท์น, ์ผ๋ฐ์ ์ธ JavaScript ๊ท์น, ECMAScript ๋ฒ์ ๋ณ ๊ท์น ๋ฑ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ช ๊ฐ์ง ํน์ ํ ์ผ์ด์ค๋ ํ๋ ์์ํฌ์ ๋ํ ๊ท์น์ ESLint์ ๊ธฐ๋ณธ ์ ๊ณต ๊ท์น์ ํฌํจ๋์ด ์์ง ์์ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ ํด๋น ํ๋ ์์ํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ESLint ํ๋ฌ๊ทธ์ธ์ ์ค์นํ์ฌ ์ถ๊ฐ์ ์ธ ๊ท์น์ ํ์ฑํํ ์ ์์ต๋๋ค.
eslint์ ๋ํด ์์์ต๋๋ค. ๊ทธ๋ผ ์ ๋ณ๋์ eslint ๊ด๋ จ ํ๋ฌ๊ทธ์ธ์ ์์กด์ฑ์ผ๋ก ์ค์นํ๋ ๊ฒ์ผ๊น์?
์ ๋ณ๋๋ก eslint ํ๋ฌ๊ทธ์ธ์ ์ค์นํ๋๊ฐ
- ํ๋ ์์ํฌ/๋ผ์ด๋ธ๋ฌ๋ฆฌ ํน์ ๊ท์น: ํน์ ํ๋ ์์ํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ณ ์ ํ ๊ท์น์ ๊ฐ์ง ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, React ์ ํ๋ฆฌ์ผ์ด์ ์๋ JSX ๋ฌธ๋ฒ, React ํ ์ฌ์ฉ ๊ท์น ๋ฑ์ด ์์ ์ ์์ต๋๋ค. React ๊ด๋ จ ESLint ํ๋ฌ๊ทธ์ธ์ธ eslint-plugin-react๋ฅผ ์ค์นํ๋ฉด ์ด๋ฌํ React ๊ด๋ จ ๊ท์น์ ํ์ฑํํ ์ ์์ต๋๋ค.
- ์ปค๋ฎค๋ํฐ ๊ธฐ์ฌ: ํน์ ํ๋ก์ ํธ๋ ์ปค๋ฎค๋ํฐ์์ ๊ฐ๋ฐํ ์ฌ์ฉ์ ์ ์ ๊ท์น์ด๋ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๊ณ ์ถ์ ์ ์์ต๋๋ค. ์ด๋ฌํ ํ๋ฌ๊ทธ์ธ์ ์ค์นํ์ฌ ์ปค๋ฎค๋ํฐ์์ ์ ๊ณตํ๋ ์ถ๊ฐ ๊ท์น์ ํ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, TypeScript ๊ด๋ จ ESLint ๊ท์น์ ์ ๊ณตํ๋ @typescript-eslint/eslint-plugin ํ๋ฌ๊ทธ์ธ์ ์ค์นํ ์ ์์ต๋๋ค.
- ํ๋ก์ ํธ ์๊ตฌ ์ฌํญ: ํน์ ํ๋ก์ ํธ๋ ํ์ ๊ณ ์ ํ ๊ท์น์ ์ ์ํ์ฌ ์ผ๊ด๋ ์ฝ๋ ์คํ์ผ๊ณผ ํ์ง์ ์ ์งํ๊ณ ์ถ์ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ์๋ ํ์ด๋ ํ๋ก์ ํธ์ ๋ง๋ ์ฌ์ฉ์ ์ ์ ๊ท์น์ ์ ์ํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด ํด๋น ๊ท์น์ ํ์ฑํํ๋ ํ๋ฌ๊ทธ์ธ์ ์ค์นํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
ESLint ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐ์ ์ธ ๊ท์น, ์ค์ , ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ์๊ฐ ESLint๋ฅผ ํน์ ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ก์ ํธ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์ ์ฐํ๊ฒ ํ์ฅํ๊ณ ์ ์ฉํ ์ ์๋๋ก ๋์์ค๋๋ค.