Skip to content

๐Ÿ  Airbnb JavaScript Style Guide for Practice โ€‹

์—์–ด๋น„์•ค๋น„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ, ๋‚˜์˜ ์ดํ•ด์™€ ํ•™์Šต ๋‚ด์šฉ ์ •๋ฆฌํ•˜๊ธฐ

โš™๏ธ Note on Environment

Airbnb ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋Š” ํ˜„๋Œ€์ ์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ํ™˜๊ฒฝ(ES6+)์„ ์ „์ œ๋กœ ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ, ์ฝ”๋“œ ์˜ˆ์ œ๋‚˜ ๊ทœ์น™๋“ค์ด ์ตœ์‹  ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ๋ณธ ๊ฐ€์ •์œผ๋กœ ํ•œ๋‹ค.

  • ์‚ฌ์šฉ์ž๋Š” Babel๊ณผ babel-preset-airbnb ํ˜น์€ ์ด์™€ ๋™๋“ฑํ•œ ์„ค์ •์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ๋Š” airbnb-browser-shims ๋˜๋Š” ์ด์— ์ƒ์‘ํ•˜๋Š” shims/polyfills์ด ์ ์šฉ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

๐Ÿ’ก ์ฆ‰, ์ด ๊ฐ€์ด๋“œ๋Š” ES6+ + Babel + Polyfill ์กฐํ•ฉ์ด ๊ธฐ๋ณธ ์ „์ œ๋‹ค.

๐Ÿ’ญ ์™œ Airbnb ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ์ธ๊ฐ€?

ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ์ฝ”์–ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ•์‚ฌ๋‹˜์˜ ์ถ”์ฒœ๊ณผ, ์šฐํ…Œ์ฝ”์—์„œ๋„ Airbnb ์ปจ๋ฒค์…˜์„ ๋”ฐ๋ฅธ๋‹ค๋Š” ๋ธ”๋กœ๊ทธ ๊ธ€์„ ๋ณด์•˜๋‹ค.

์กฐ๊ธˆ ๋” ์„œ์น˜ํ•ด๋ณด๋‹ˆ Google, Idiomatic JS, standard.js ๋“ฑ ๋‹ค์–‘ํ•œ ์ปจ๋ฒค์…˜์ด ์žˆ์—ˆ์ง€๋งŒ, Airbnb ๊ฐ€์ด๋“œ ๋ถ€ํ„ฐ ์ •๋…ํ•ด๋ณด๋ ค ํ•œ๋‹ค. ์›๋ฌธ ํ•ด์„๋ณธ์€ ์ด๋ฏธ ์กด์žฌํ•˜์ง€๋งŒ, ์™œ ์ด๋Ÿฐ ๊ทœ์น™์ด ํ•„์š”ํ•œ๊ฐ€์— ์ดˆ์ ์„ ๋‘๊ณ  ๊ณต๋ถ€ํ•ด๋ณด์ž!

์ •๋‹ต์ด๋ผ๊ธฐ๋ณด๋‹ค, ์ข‹์€ ๊ธฐ์ค€์ ์œผ๋กœ ์‚ผ๊ธฐ ์œ„ํ•œ ๊ฐ€์ด๋“œ์ด๋‹ˆ ์•ž์œผ๋กœ ๋‹ค์–‘ํ•œ ์ปจ๋ฒค์…˜์„ ์ฝ์–ด๋ณด๋ฉด์„œ ๋ฐœ์ „์‹œํ‚ค๊ณ ์ž ํ•œ๋‹ค! ๐Ÿ›

๐Ÿ—‚๏ธ Structure โ€‹

์ฃผ์ œ์š”์•ฝ
01. Types (ํ˜•)์›์‹œํ˜•ยท์ฐธ์กฐํ˜•
02. References (์ฐธ์กฐ)var/let/const
03. Object (๊ฐ์ฒด)๋ฆฌํ„ฐ๋Ÿด ๋ฌธ๋ฒ•, ๋‹จ์ถ• ๊ตฌ๋ฌธ, ์•ˆ์ „ํ•œ ์ ‘๊ทผ๊ณผ ๋ถˆ๋ณ€์„ฑ ์œ ์ง€
Functionsํ•จ์ˆ˜ ์„ ์–ธ/ํ‘œํ˜„์‹, ๋งค๊ฐœ๋ณ€์ˆ˜, ํ™”์‚ดํ‘œ ํ•จ์ˆ˜
Classes & Prototypesํด๋ž˜์Šค ๋ฌธ๋ฒ•, ์ƒ์†, ํ”„๋กœํ† ํƒ€์ž… ์—ฐ๊ฒฐ
ModulesES Modules / CommonJS, import/export ๊ทœ์น™
Iteration & Control Flow๋ฐ˜๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ, ์กฐ๊ธฐ ๋ฐ˜ํ™˜(early return) ํŒจํ„ด
Comparisons & Coercion== vs ===, truthy/falsy, ํƒ€์ž… ๊ฐ•์ œ ๋ณ€ํ™˜
Whitespace & Commas๋“ค์—ฌ์“ฐ๊ธฐ, ์ค„๋ฐ”๊ฟˆ, ์ฝค๋งˆ ์Šคํƒ€์ผ
Semicolons์„ธ๋ฏธ์ฝœ๋ก  ์‚ฌ์šฉ ์—ฌ๋ถ€์™€ Airbnb์˜ ์ž…์žฅ
Naming & Accessors๋ณ€์ˆ˜ยทํ•จ์ˆ˜ ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜, getter/setter
ESLint & Prettier SetupAirbnb ๊ทœ์น™์„ ๋‚ด ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๊ธฐ

๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ ๋‚ ์งœ: