bananass
TypeScript icon, indicating that this package has built-in type declarations

0.1.2ย โ€ขย Publicย โ€ขย Published

๋ฐ”๋‚˜๋‚˜Bananass

lint test test-cross-platform Codecov Node Current

npm package bananass latest version npm package bananass next version

ํ•œ๊ตญ์–ด | English

๋ฐฑ์ค€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋ ˆ์ž„์›Œํฌ.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด์˜ ์ƒˆ๋กœ์šด ํŒจ๋Ÿฌ๋‹ค์ž„.

[!IMPORTANT]

const whyBananass = {
  banana: '๐ŸŒ',
  bananas: '๐ŸŒ๐ŸŒ',
  bananass: '๐ŸŒ๐ŸŒ๐ŸŒ๐ŸŒ',
}
console.log(('b' + 'a' + +'a' + 'a').toLowerCase() + (!(1/0) + [])[3].repeat(2));

์•ˆ๋…•, ๋ฐ”๋‚˜๋‚˜!

๋ฐ”๋‚˜๋‚˜Bananass ํ”„๋ ˆ์ž„์›Œํฌ์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!

๋ฐ”๋‚˜๋‚˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธJavaScript ๋ฐ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธTypeScript ๊ธฐ๋ฐ˜์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด๋ฅผ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๋ฐฑ์ค€ใ†์ฝ”๋“œํฌ์Šค ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ ํ’€์ด ํ”Œ๋žซํผ๋“ค์˜ Node.js ํ™˜๊ฒฝ์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋งˆ์ฃผ์น˜๋Š” ๋ฌธ์ œ์ ๋“ค์„ ํ•ด๊ฒฐํ•˜๋ฉฐ, ๊ฐ„๊ฒฐํ•˜๊ณ  ํŽธ๋ฆฌํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธTypeScript ์ง€์›์ด ํ•„์š”ํ•˜์‹œ๋‹ค๊ณ ์š”?
  • ES16ES2025 ๋“ฑ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ตœ์‹  ๋ฌธ๋ฒ•์„ ์“ฐ๊ณ  ์‹ถ์€๋ฐ ๋ง‰ํžˆ์…จ๋‚˜์š”?
  • ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”?
  • ๋งค๋ฒˆ readline / fs ํ…œํ”Œ๋ฆฟ ์ฝ”๋“œ ๋ณต๋ถ™ํ•˜๊ธฐ ์ง€์น˜์…จ๋‚˜์š”?

์ด์ œ ๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์„ธ์š”! ๋ฐ”๋‚˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ด๋Ÿฐ ๋ฌธ์ œ์ ๋“ค์„ ๋ชจ๋‘ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์™œ ๋ฐ”๋‚˜๋‚˜์ผ๊นŒ์š”?

ํ•จ๊ป˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•œ ๋ฐฑ์ค€ 1000๋ฒˆ: A+B ๋ฌธ์ œ ํ’€์ด ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ด…์‹œ๋‹ค!

  • ๊ธฐ์กด ๋ฐฉ๋ฒ•์„ ํ†ตํ•œ ๋ฌธ์ œ ํ’€์ด.

    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(input) {
      const [a, b] = input
        .trim()
        .split(' ')
        .map(val => Number(val));
    
      return a + b;
    }
  • ๋ฐ”๋‚˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์šฉํ•œ ๋ฌธ์ œ ํ’€์ด.

    function solution(input) {
      const [a, b] = input
        .trim()
        .split(' ')
        .map(Number);
    
      return a + b;
    }
    
    export default { solution };

๋” ๊ฐ„๊ฒฐํ•˜๊ณ , ๋” ์ง๊ด€์ ์ธ ์ฝ”๋“œ! ์ž…๋ ฅ ์ฒ˜๋ฆฌ์— ๋“ค์ด๋˜ ์‹œ๊ฐ„์€ ์ค„์ด๊ณ , ์˜ค์ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒŒ ์ „๋ถ€์ธ๊ฐ€์š”?

๋ฌผ๋ก , ์•„๋‹™๋‹ˆ๋‹ค!

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธJavaScript ๋ฐ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธTypeScript ์ง€์›.
  • ESMECMAScript Module ๋ฐ CommonJS ๋ชจ๋“ˆ ์‹œ์Šคํ…œ ์ง€์›.
  • ๋ฐฑ์ค€ Node.js ํ™˜๊ฒฝ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š” ES16ES2025 ๋“ฑ ์ตœ์‹  ๋ฌธ๋ฒ• ์ง€์›.
  • ์‚ฌ์šฉ์ž ์ •์˜ ๋ชจ๋“ˆ ๋ฐ lodash ๋“ฑ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์ง€์›.
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฒ˜๋Ÿผ solution ํ•จ์ˆ˜ ํ•˜๋‚˜๋กœ ์‹œ์ž‘ํ•˜๊ธฐ ์ง€์›.
  • ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ ๋ฐ ์‹คํ–‰ ์ง€์›.
  • create-bananass๋กœ ์‹œ์ž‘ํ•˜๊ธฐ ์ง€์›.
  • fs ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•œ ๋”์šฑ ๋น ๋ฅธ ์ž…์ถœ๋ ฅ ์ง€์›.
  • ํŽธ์˜๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ CLI ๋ช…๋ น์–ด ์ง€์›.
  • ํ’๋ถ€ํ•˜๊ณ  ์ƒ์„ธํ•œ ๋ฌธ์„œ ์ง€์›.
  • ESLint ๋ฐ Prettier ์ž์ฒด ์ง€์›.

์–ด๋–ค๊ฐ€์š”? ๋ฐ”๋‚˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ†ตํ•ด ๋”์šฑ ํŽธ๋ฆฌํ•œ ๋ฌธ์ œ ํ’€์ด๋ฅผ ๊ฒฝํ—˜ํ•ด๋ณด๊ณ  ์‹ถ์ง€ ์•Š์œผ์‹ ๊ฐ€์š”?

๋ฐ”๋‚˜๋‚˜๋กœ ์‹œ์ž‘ํ•˜๊ธฐ

React์˜ create-react-app, Next.js์˜ create-next-app ์ฒ˜๋Ÿผ, ๋ฐ”๋‚˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ œ๊ณตํ•˜๋Š” create-bananass๋กœ ์ง€๊ธˆ ๋ฐ”๋กœ ์ƒˆ๋กœ์šด ๋ฌธ์ œ ํ’€์ด ํŒจ๋Ÿฌ๋‹ค์ž„์„ ๊ฒฝํ—˜ํ•ด๋ณด์„ธ์š”!

๋ฐ”๋‚˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” create-bananass๋ฅผ ํ†ตํ•ด ์ฆ‰์‹œ ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

npm create bananass@latest

๋” ์ž์„ธํ•œ ์‚ฌ์šฉ๋ฒ•์€ ๋ฐ”๋‚˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

๋ฐ”๋‚˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋ฌธ์„œ

๋ฐ”๋‚˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋ฌธ์„œํ™”๋ฅผ ๊ฐ€์žฅ ํฐ ๊ฐ€์น˜๋กœ ์—ฌ๊น๋‹ˆ๋‹ค. ๋ฐ”๋‚˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ชจ๋“  ์‚ฌ์šฉ๋ฒ•๊ณผ ๊ธฐ๋Šฅ์€ ๋ฐ”๋‚˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋ฌธ์„œ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์—ฌ(์ด์ŠˆIssue, ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญPull Request, ํ† ๋ก Discussion)

๋ฐ”๋‚˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ์—ฌ์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋ฒ„๊ทธBug ๋ฐ ์ œ์•ˆSuggestion ๋“ฑ ์—ฌ๋Ÿฌ ์ฃผ์ œ์— ๋Œ€ํ•œ ์ด์ŠˆIssue, ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญPull Request, ํ† ๋ก Discussion ๋“ฑ์„ ๋ชจ๋‘ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋งŒ, ์˜ฌ๋ฐ”๋ฅธ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™˜๊ฒฝ์„ ์ค€์ˆ˜ํ•˜๊ณ  ๋” ๋‚˜์€ ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด, ๋ฐ”๋‚˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ์— ๊ธฐ์—ฌํ•˜๊ธฐ ์ „ ๋ฐ˜๋“œ์‹œ ์•„๋ž˜ ๋‚ด์šฉ๋“ค์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”.

๋ฒ„์ „ ์ •์ฑ…Versioning

๋ฐ”๋‚˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์œ ์˜์  ๋ฒ„์ „ ์ •์ฑ…Sementic Versioning์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฆด๋ฆฌ์ฆˆ ๋ฒ„์ „์€ ์ฃผ(MAJOR).๋ถ€(MINOR).์ˆ˜(PATCH) ํ˜•์‹์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

๊ธฐ์—ฌ์ž ํ–‰๋™ ๊ฐ•๋ น ๊ทœ์•ฝCode of Conduct

์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ธฐ์—ฌํ•˜๊ธฐ ์ „, ๊ธฐ์—ฌ์ž ํ–‰๋™ ๊ฐ•๋ น ๊ทœ์•ฝ์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

๋ณ€๊ฒฝ ์‚ฌํ•ญChange Log

๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๋ ค๋ฉด, ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

๋ณด์•ˆSecurity

๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•˜์…จ๋‚˜์š”? ๋ณด์•ˆ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

๋ผ์ด์„ ์ŠคLicense

๋ฐ”๋‚˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” MIT ๋ผ์ด์„ ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋ผ์ด์„ ์Šค ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

Package Sidebar

Install

npm i bananass

Weekly Downloads

26

Version

0.1.2

License

MIT

Unpacked Size

168 kB

Total Files

195

Last publish

Collaborators

  • lumir