Airbnb JS ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ

์ž‘์„ฑ์ผ : 10/22/2025

https://github.com/airbnb/javascript

์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•ด์•ผ ํ•  ๊ฒƒ๋“ค๋งŒ ์ข€ ์ถ”๋ ค๋ณธ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ eslint์˜ ๊ทœ์น™์„ ๋”ฐ๋ฅด๋ฉด์„œ ์„ธ๋ถ€์‚ฌํ•ญ์ด ์ถ”๊ฐ€๋˜์–ด ์žˆ๋‹ค. https://eslint.org/docs/latest/rules/

References ์ฐธ์กฐ

  • var์„ ์ง€์–‘ํ•œ๋‹ค : var๋Š” function-scoped, ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง„๋‹ค. (const์™€ let์€ ๋ธ”๋ก ์Šค์ฝ”ํ”„ block-scoped)

Object ๊ฐ์ฒด

  • literal syntax๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ ๋‹ค. const student = {name:"name", age:20}
  • Object.assign ๋Œ€์‹  ์ „๊ฐœ ๊ตฌ๋ฌธ spread syntax๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–•์€ ๋ณต์‚ฌ๋ฅผ ํ•œ๋‹ค.

Array ๋ฐฐ์—ด

  • ๊ฐ์ฒด์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฆฌํ„ฐ๋Ÿด๋กœ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค. new Array() ์‚ฌ์šฉ๊ธˆ์ง€.
  • Iterableํ•œ ๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ์ „๊ฐœ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • Array.from์€ ๋งคํ•‘ํ•จ์ˆ˜๊ฐ€ ์žˆ์„๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. [...foo].map(bar) ๋Œ€์‹  Array.from(foo,bar).
    • ์•ž์˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ์ค‘๊ฐ„์— ํ•„์š”์—†๋Š” ์ž„์‹œ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค.

Destructuring ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น

  • ๊ฐ์ฒด์˜ ์—ฌ๋Ÿฌ ์†์„ฑ์— ์ ‘๊ทผํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ฒฝ์šฐ์— ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์—ฌ๋Ÿฌ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ๋•Œ ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ๋Œ€์‹ , ๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์„ ์‚ฌ์šฉํ•œ๋‹ค.
    • return [one,two,three];๋Œ€์‹  {one,two,three}๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋ฐ˜ํ™˜๊ฐ’์˜ ์ˆœ์„œ๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋˜๊ณ , ํ•„์š” ์—†๋Š” ๋ฐ˜ํ™˜๊ฐ’๊นŒ์ง€ ๋ฐ˜ํ™˜๋ฐ›์„ ํ•„์š”๋„ ์—†์–ด์ง„๋‹ค.

String ๋ฌธ์ž์—ด

  • ์ž‘์€ ๋”ฐ์˜ดํ‘œ ''๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋ฌธ์ž์—ด์ด ๊ธธ๋”๋ผ๋„ ํ•œ ์ค„์— ์ž‘์„ฑํ•œ๋‹ค. \์ด๋‚˜ +๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ค„์— ๋‚˜๋ˆ  ์ž‘์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • eval()ํ•จ์ˆ˜๋ฅผ ์ ˆ๋Œ€ ๋ฌธ์ž์—ด์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

Functions ํ•จ์ˆ˜

  • ํ•จ์ˆ˜ ์„ ์–ธ์‹ ๋Œ€์‹  (์ž์„ธํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง€๋Š”)ํ•จ์ˆ˜ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.
    • function funcA(){...} ๋Œ€์‹  `const funcA = function longUniqueMoreDescriptiveLexical(){...}
  • ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋งˆ์ง€๋ง‰์— ๋„ฃ๋Š”๋‹ค.

Classes ํด๋ž˜์Šค

  • ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋Š” ๋ฉ”์†Œ๋“œ ์ฒด์ด๋‹์„ ์œ„ํ•ด this๋ฅผ ๋ฐ˜ํ™˜ ํ•ด๋„ ๋œ๋‹ค.
  • ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋“ค์€ ๋ฐ˜๋“œ์‹œ this๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. class-methods-use-this
    • this๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”์†Œ๋“œ๋Š” static๋กœ ๋งŒ๋“ ๋‹ค.