eslint-config-bananass
Version:
ESLint Config for Bananass Framework.๐
147 lines (94 loc) โข 5.87 kB
Markdown
# bananass
<kbd>ํ๊ตญ์ด</kbd> | <kbd>[English](README.en.md)</kbd>
๋ฐ๋๋<sup>Bananass, ๐๐๐๐</sup>: <kbd>๋ช
์ฌ</kbd> ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ํ ๋ฐฑ์ค ํ๋ ์์ํฌ.
> [!IMPORTANT]
>
> ```js
> const whyBananass = {
> banana: '๐',
> bananas: '๐๐',
> bananass: '๐๐๐๐',
> }
> ```
>
> ```js
> console.log(('b' + 'a' + +'a' + 'a').toLowerCase() + (!(1/0) + [])[3].repeat(2));
> ```
<!-- markdownlint-disable-next-line md026 -->
## ์๋
, ๋ฐ๋๋!
๋ฐ๋๋<sup>Bananass, ๐๐๐๐</sup> ํ๋ ์์ํฌ์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค.๐
๋ฐ๋๋ ํ๋ ์์ํฌ๋ [๋ฃจ๋ฐ<sup>LuMir</sup>](https://github.com/lumirlumir)์ด ์ ์ํ **์๋ฐ์คํฌ๋ฆฝํธ<sup>JavaScript</sup>๋ฅผ ์ํ ๋ฐฑ์ค ํ๋ ์์ํฌ**๋ก, ๋ฐฑ์ค Node.js ํ๊ฒฝ์์์ ๋ณด๋ค ํธ๋ฆฌํ ๋ฌธ์ ํ์ด๋ฅผ ์ํด ์ค๊ณ๋์์ต๋๋ค.
์ด์ ๋ ์ด์ `readline` ํน์ `fs` ๋ชจ๋์ ์ด์ฉํ ํ
ํ๋ฆฟ<sup>Template</sup> ์ฝ๋๋ฅผ ์์ฑํ ํ, ์ผ์ผ์ด ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐํ ํ์๊ฐ ์์ต๋๋ค! ๋ฐ๋๋ ํ๋ ์์ํฌ๋ฅผ ํตํด [**ํ๋ก๊ทธ๋๋จธ์ค**](https://programmers.co.kr/)์์ ํ๋์ ์๋ฃจ์
ํจ์<sup>`function solution() {}`</sup>๋ฅผ ์์ฑํ๋ฏ ๋์ฑ ๊ฐํธํ ๋ฌธ์ ํ์ด๋ฅผ ๊ฒฝํํด๋ณด์ธ์.
๊ทธ๋ฐ๋ฐ, ๋ฐฑ์ค ๋ฌธ์ ํ์ด๋ฅผ ํ๋๋ฐ ๊ตณ์ด ํ๋ ์์ํฌ๊น์ง ์์์ผ ํ ๊น์? ์๋์์ ๊ทธ ์ด์ ๋ฅผ ์ฐพ์๋ณด์ฃ !
## ์ ๋ฐ๋๋์ผ๊น์?
์ ์๋ฐ์คํฌ๋ฆฝํธ<sup>JavaScript</sup> ์ํ๊ณ์ ์ ๋ง์ ํ๋ ์์ํฌ ์ค ๋ฌธ์ ํ์ด์ ํนํ๋ ํ๋ ์์ํฌ๋ ์์์๊น์? ํจ๊ป ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ [๋ฐฑ์ค 1000๋ฒ: A+B](https://www.acmicpc.net/problem/1000) ๋ฌธ์ ํ์ด ์์ ๋ฅผ ์ดํด๋ณด์ฃ !
- ์ <sup>Before</sup>: ๊ธฐ์กด ๋ฐฉ๋ฒ์ ํตํ ๋ฌธ์ ํ์ด.
```js
const readline = require('node:readline');
const { EOL } = require('node:os');
let inputStr = '';
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.on('line', line => {
inputStr = `${inputStr}${line}${EOL}`;
}).on('close', () => {
console.log(solution(inputStr));
process.exit(0);
});
function solution(inputStr) {
const input = inputStr
.trim()
.split(' ')
.map(val => Number(val));
const [a, b] = input;
return a + b;
}
```
- ํ<sup>After</sup>: ๋ฐ๋๋ ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํ ๋ฌธ์ ํ์ด.
```js
function solution(input) {
const [a, b] = input
.trim()
.split(' ')
.map(Number);
console.log(a + b);
}
module.exports = solution;
```
์์ฐ!๐ฒ ๋๋์ง ์๋์? ์ด์ ์ฌ๋ฌ๋ถ๋ค์ ๋จ์ํด์ง ์ฝ๋์ ๋๋ถ์ด ์๊ณ ๋ฆฌ์ฆ ๋ก์ง์๋ง ์ง์คํ ์ ์์ต๋๋ค.
๊ทผ๋ฐ, ์ด๊ฒ ์ ๋ถ๋๊ณ ์? ๋ฌผ๋ก ์๋๋๋ค!
- ๋ฐฑ์ค Node.js ํ๊ฒฝ์ ๊ตฌ์ ๋ฐ์ง ์๋ ES2025 ๋ฑ ์ต์ ๋ฌธ๋ฒ์ ์ฌ์ฉ
- ์ฌ์ฉ์ ์ ์ ๋ชจ๋ ๋ฐ `lodash` ๋ฑ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฌ์ฉ
- ESLint ๋ฐ Prettier ์์ฒด ์ง์
- ํ๋ถํ ๋ฌธ์ ๋ฐ ์ปค๋ฎค๋ํฐ ์ง์
- ...
์ด๋ค๊ฐ์? ๋ฐ๋๋ ํ๋ ์์ํฌ๋ฅผ ํตํด ๋์ฑ ํธ๋ฆฌํ ๋ฌธ์ ํ์ด๋ฅผ ๊ฒฝํํด๋ณด๊ณ ์ถ์ง ์์ผ์ ๊ฐ์?๐ค
## ๋ฐ๋๋๋ก ์์ํ๊ธฐ
React์ `create-react-app`, Next.js์ `create-next-app` ์ฒ๋ผ,
**๋ฐ๋๋ ํ๋ ์์ํฌ์์ ์ ๊ณตํ๋ `create-bananass-app`์ผ๋ก ์ง๊ธ ๋ฐ๋ก ์๋ก์ด ๋ฌธ์ ํ์ด ํจ๋ฌ๋ค์์ ๊ฒฝํํด๋ณด์ธ์!**
๋ฐ๋๋ ํ๋ ์์ํฌ๋ `create-bananass-app`์ ํตํด ์ฆ์ ์ค์นํ๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค! (์ฌ์ค ์ฑ<sup>App</sup>์ ์๋์ง๋ง, ๊ทธ๊ฑด ์ค์ํ๊ฒ ์๋๋๋ค...๐ค)
```sh
npx create-bananass-app my-bananass-app --no-install
```
๋์ฑ ์์ธํ ์ฌ์ฉ๋ฒ์ [๋ฐ๋๋ ํ๋ ์์ํฌ ๋ฌธ์](https://bananass.lumir.page)๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
## ๋ฐ๋๋ ํ๋ ์์ํฌ ๋ฌธ์
> <https://bananass.lumir.page>
๋ฐ๋๋ ํ๋ ์์ํฌ๋ ๋ฌธ์ํ๋ฅผ ๊ฐ์ฅ ํฐ ๊ฐ์น๋ก ์ฌ๊น๋๋ค. ๋ฐ๋๋ ํ๋ ์์ํฌ์ ๋ชจ๋ ์ฌ์ฉ๋ฒ๊ณผ ๊ธฐ๋ฅ์ [๋ฐ๋๋ ํ๋ ์์ํฌ ๋ฌธ์](https://bananass.lumir.page)์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
## ๊ธฐ์ฌ(์ด์<sup>Issue</sup>, ๋์ด์ค๊ธฐ ์์ฒญ<sup>Pull Request</sup>, ํ ๋ก <sup>Discussion</sup>)
๋ฐ๋๋ ํ๋ ์์ํฌ์ ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.๐โโ๏ธ ์ ํฌ๋ ์ฌ๋ฌ๋ถ๋ค์ ์์คํ ์๊ฐ์ ๋ฐ๋๋ ํ๋ ์์ํฌ์ ํฌ์ํด์ฃผ์ ๊ฒ์ ๋ํด ๊ณ ๋ง์์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋ชจ๋ ๋ฒ๊ทธ<sup>Bug</sup> ๋ฐ ์ ์<sup>Suggestion</sup> ๋ฑ ์ฌ๋ฌ ์ฃผ์ ์ ๋ํ ์ด์<sup>Issue</sup>, ๋์ด์ค๊ธฐ ์์ฒญ<sup>Pull Request</sup> ๋ฐ ํ ๋ก <sup>Discussion</sup> ๋ฑ์ ํ์ํฉ๋๋ค.
๋ค๋ง, ์ฌ๋ฐ๋ฅธ ์ปค๋ฎค๋ํฐ ํ๊ฒฝ์ ์ค์ํ๊ณ ๋ ๋์ ์คํ์์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด, ๋ฐ๋๋ ํ๋ ์์ํฌ์ ๊ธฐ์ฌํ๊ธฐ ์ ๋ฐ๋์ ์๋ ๋ด์ฉ๋ค์ ํ์ธํด์ฃผ์ธ์.
- [๊ธฐ์ฌ์ ํ๋ ๊ฐ๋ น ๊ท์ฝ](CODE_OF_CONDUCT.md)
- [๊ธฐ์ฌํ๊ธฐ](CONTRIBUTING.md)
## ๋ฒ์ ์ ์ฑ
<sup>Versioning</sup>
๋ฐ๋๋ ํ๋ ์์ํฌ๋ [์ ์์ ๋ฒ์ ์ ์ฑ
<sup>Sementic Versioning</sup>](https://semver.org/lang/ko/)์ ๋ฐ๋ฆ
๋๋ค. ๋ชจ๋ ๋ฆด๋ฆฌ์ฆ ๋ฒ์ ์ `์ฃผ(MAJOR).๋ถ(MINOR).์(PATCH)` ํ์์ ๋ฐ๋ฆ
๋๋ค.
## ๊ธฐ์ฌ์ ํ๋ ๊ฐ๋ น ๊ท์ฝ<sup>Code of Conduct</sup>
์ปค๋ฎค๋ํฐ์ ๊ธฐ์ฌํ๊ธฐ ์ , [๊ธฐ์ฌ์ ํ๋ ๊ฐ๋ น ๊ท์ฝ](CODE_OF_CONDUCT.md)์ ์ฐธ๊ณ ํด์ฃผ์ธ์.
## ๋ณ๊ฒฝ ์ฌํญ<sup>Change Log</sup>
๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ์ธํ๋ ค๋ฉด, [๋ณ๊ฒฝ ์ฌํญ](CHANGELOG.md)์ ์ฐธ๊ณ ํด์ฃผ์ธ์.
## ๋ณด์<sup>Security</sup>
๋ณด์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์
จ๋์? [๋ณด์](SECURITY.md) ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
## ๋ผ์ด์ผ์ค<sup>License</sup>
๋ฐ๋๋ ํ๋ ์์ํฌ๋ MIT ๋ผ์ด์ผ์ค๋ฅผ ๋ฐ๋ฆ
๋๋ค. [๋ผ์ด์ผ์ค](LICENSE.md) ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.