๐Ÿ”— Airbnb Code Conventions

Coding Conventions

  1. ํ•จ์ˆ˜๋ช… ์ž‘์„ฑ

    ํ•จ์ˆ˜๋ช…์„ ์ž‘์„ฑํ•  ๋•Œ๋Š” ๋™์‚ฌ+๋ช…์‚ฌ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค. ex) *getUserInfomation()*

  2. ์•ฝ์–ด ์‚ฌ์šฉ ์ž์ œ

    letย idx;ย //ย badโŒ
    letย index;ย //ย goodโœ…
    
    letย cnt;ย //ย badโŒ
    letย count;ย //ย goodโœ…
    
    letย arr;ย //ย badโŒ
    letย array;ย //ย goodโœ…
    
  3. magic number ์ง€์–‘

    ์ฝ”๋“œ์—์„œ ์ˆซ์ž๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” magic number๋ฅผ ์ง€์–‘ํ•˜๊ณ , magic number๋‚˜ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•  ๊ฒฝ์šฐ, constant.js์— ์ƒ์ˆ˜ํ™” ํ•˜์—ฌ ๊ด€๋ฆฌํ•œ๋‹ค.

    //constant.js
    const LEFT = 'left';
    const LOGIN_ERROR_MESSAGE = '๋กœ๊ทธ์ธ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.';
    
    //other_logic_file.js
    if (dir === LEFT) {
    ย  ย  //...
    }
    
  4. ๋น„๋™๊ธฐ ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ์‹œ Promiseํ•จ์ˆ˜์˜ ์‚ฌ์šฉ์€ ์ง€์–‘ํ•˜๊ณ  async, await๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

    ๋กœ์ง์„ ์งœ๋Š” ๋ฐ ์žˆ์–ด promise๋ฅผ ๋ถˆ๊ฐ€ํ”ผํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์ฃผ์„์œผ๋กœ ํ‘œ์‹œํ•˜๊ณ  commit์— ๊ทธ ์ด์œ ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

React

  1. ํŒŒ์ผ ํ™•์žฅ์ž๋Š” tsx๋กœ ํ•œ๋‹ค.

  2. TSX ์‚ฌ์šฉํ•˜๋ฉด ์ตœ์ƒ๋‹จ์— React ๋ฅผ import ํ•ด์˜จ๋‹ค.

  3. props๋Š” ๊ตฌ์กฐ๋ถ„ํ•ด ํ• ๋‹น์œผ๋กœ ๋ฐ›์•„์˜จ๋‹ค.

    const Button = ({type, onClick}) => {};
    
  4. ์ปดํฌ๋„ŒํŠธ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ (Function Declaration) ์„ ์‚ฌ์šฉํ•œ๋‹ค.

    export default function MyComponent() {
      return <div>Hello World</div>;
    }
    
  5. ์ผ๋ฐ˜ ํ•จ์ˆ˜๋Š” ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ (Arrow Function) ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

    const Button = ({type, onClick}) => {};
    
  6. component ํด๋”์˜ ์ตœ์ƒ๋‹จ ํŒŒ์ผ์˜ ์ด๋ฆ„์€ component ํ•จ์ˆ˜ ์ด๋ฆ„์„ ๋”ฐ๋ผ๊ฐ„๋‹ค.

    ex) *components/Header/index.tsx*

  7. CSS-in-JS ๋„๊ตฌ์ธ styled-components ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  8. ์Šคํƒ€์ผ ๊ด€๋ จ ์ฝ”๋“œ๋Š” ๋งจ ํ•˜๋‹จ์— ์œ„์น˜์‹œํ‚จ๋‹ค.

  9. ๊ณต์šฉ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์Šคํƒ€์ผ์€ styles ๊ฒฝ๋กœ์— ์œ„์น˜ ์‹œํ‚จ๋‹ค.

    ex) client\\src\\**styles**\\themes.ts

  10. wrapper์— ์Šคํƒ€์ผ ์ ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, <>๋กœ ํ•œ๋‹ค.

  11. styles.js์—์„œ styled๋กœ ๋งŒ๋“  ์ปดํฌ๋„ŒํŠธ๋Š” export { component } ๋กœ ๋‚ด๋ณด๋‚ธ๋‹ค.