Airbnb์ ์๋ฐ์คํฌ๋ฆฝํธ ์คํ์ผ ๊ฐ์ด๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋, ์ฐ๋ฆฌ ์ํฉ์ ๋ง๊ฒ ์ผ๋ถ ๊ท์น์ ์ค๋ฒ๋ผ์ด๋ฉํ์ฌ ์ฌ์ฉํ๊ณ ์๋ค. ๋ณ๊ฒฝ๋ ๊ท์น์ ์ด๊ณณ์์ ํ์ธํ ์ ์๋ค.
๊ถ์ฅ๋๋ ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒ์ ์ ES6(ECMAScript 2015)์ด๋ค. ํ์ ํธํ์ด ํ์ํ ๊ฒฝ์ฐ์๋ Babel ํธ๋์คํ์ผ๋ฌ๋ฅผ ํตํ์ฌ ์ง์ํ๋, ๊ฐ๋ฅํ ์ต์ (latest) ๋ฌธ๋ฒ์ ํ์ฉํ ๊ฒ. ES6์ ๋ํด ๋ค์ด๋ณธ ์ ์ด ์๋ค๋ฉด, ๊ฐ๋ตํ ์๊ฐ์ ES6 In Depth ์๋ฆฌ์ฆ ์๊ฐ๊ธ์ ์ฝ์ด๋ณผ ๊ฒ.
์ ์ ๋ถ์๊ธฐ๋ก๋ ESLint๋ฅผ ์ฌ์ฉํ๋ค. "์ ESLint ์ธ๊ฐ?"์ ๋ํด์๋ JSLint, JSHint(ํ์ฌ grunt์์ ์ฌ์ฉ), JSCS ์ ๋น๊ต๊ธ ์ฐธ๊ณ .
npm ์ ์ฌ์ฉํ๋ค๋ฉด @ridi/eslint-config ํจํค์ง๋ฅผ ํตํด ๋ฏธ๋ฆฌ ์ค์ ๋ ๊ท์น์ ์์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
Preference ๋ฉ๋ด์์ Editor > Code Style > Javascript ์ ํ
- Tab and Indents ํญ
- Use Tab character ์ฒดํฌ ํด์
- Indent 2
Languages & Frameworks > Javascript > Code Quality Tools > ESLint ์ ํ
- Enable ์ฒดํฌ
- ESLint ํจํค์ง ์์น ์ง์
- (์ ํ) .eslintrc ์์น ์ง์
ํจํค์ง ๊ด๋ฆฌ (npm)
- ํจํค์ง ์ด๋ฆ(
package.json
์name
ํ๋)์ridi
์ค์ฝํ๋ฅผ ์ฌ์ฉํ๋ค.- e.g.
"name": "@ridi/my-package"
- e.g.
- ํจํค์ง ๋ฒ์ (
package.json
์version
ํ๋)์ Semantic Versioning์ ๋ฐ๋ฅธ๋ค. - ํจํค์ง ๋ฐฐํฌ์ npm์ ์ด์ฉํ๋ค.
- ํ์ฌ๋ ๊ณต๊ฐ ๋ฐฐํฌ๋ง ๊ฐ๋ฅํ๋ฏ๋ก
npm publish --access public
๋ช ๋ น์ผ๋ก ๋ฐฐํฌํ๋ค. - npm์ ํ๋ฒ ๋ฐฐํฌ๋ ๋ฒ์ ์ ์ญ์ ๋์ด๋ ๊ฐ์ ๋ฒ์ ์ผ๋ก ์ฌ๋ฐฐํฌ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค. ๋ฐ๋ผ์ ๋ฐฐํฌ ์ ๋ก์ปฌ ์ค์น๋ฅผ ํตํด ์ ์์ ์ผ๋ก ํ์ผ๋ค์ด ํฌํจ๋๋์ง ํ์ธํ ๊ฒ.
- ํ์ฌ๋ ๊ณต๊ฐ ๋ฐฐํฌ๋ง ๊ฐ๋ฅํ๋ฏ๋ก
- ๋ฐฐํฌ ๊ถํ์ด ์์ ๊ฒฝ์ฐ @ridi/performanceํ์ ์์ฒญํ์ฌ ridi organization์ ๊ณ์ ์ ๋ฑ๋กํ๋ค.