Skip to content

๐Ÿ“ŒConventions

shlee9999 edited this page Sep 27, 2024 · 19 revisions

01 ์ฝ”๋“œ ์ปจ๋ฒค์…˜

  • ํ•จ์ˆ˜ ๋‚ด๋ณด๋‚ด๊ธฐ(Exporting Functions)

    // ์ปดํฌ๋„ŒํŠธ
    export const Component = () => {};
    // ๋‹จ์ผ ํ•จ์ˆ˜
    export default function () {}
    // ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜, ์ƒ์ˆ˜๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒฝ์šฐ
    export const functionName = () => {};
    export const variable = 1;
  • ์ƒ์ˆ˜ ๋ณ€์ˆ˜ ์„ ์–ธ

    • ์ƒ์ˆ˜ ๋ณ€์ˆ˜๋Š” ๋Œ€๋ฌธ์ž ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค๋กœ ์„ ์–ธ (์˜ˆ: GENRES, MAX_HEIGHT)
  • ์ปดํฌ๋„ŒํŠธ ๋„ค์ด๋ฐ

    • ์ปดํฌ๋„ŒํŠธ๋Š” ํŒŒ์Šค์นผ ์ผ€์ด์Šค ์‚ฌ์šฉ (์˜ˆ: HelloWorld)
  • ํ”„๋กœํผํ‹ฐ ๋„ค์ด๋ฐ

    • ํ”„๋กœํผํ‹ฐ๋Š” ์นด๋ฉœ ์ผ€์ด์Šค ์‚ฌ์šฉ
    type User = {
      userName: string
      userAge: number
    }
  • ๋ฐฐ์—ด ๋„ค์ด๋ฐ

    1. ๋ฐฐ์—ด์€ ๋ณต์ˆ˜ํ˜•์œผ๋กœ dataList ์‚ฌ์šฉ
    2. ์–ด๋–ค ๋ฐฐ์—ด์ธ์ง€ ๊ตฌ์ฒด์ ์œผ๋กœ ๋„ค์ด๋ฐ ํ•˜๊ธฐ ex) performList, menuList
  • ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋„ค์ด๋ฐ
    ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋Š” onClick, onChange์™€ ๊ฐ™์ด ๋„ค์ด๋ฐ

  • ๋ถˆ๋ฆฌ์–ธ ๋ณ€์ˆ˜ ๋„ค์ด๋ฐ
    ๋ถˆ๋ฆฌ์–ธ ๋ณ€์ˆ˜๋Š” isLoading๊ณผ ๊ฐ™์ด is ์ ‘๋‘์‚ฌ๋กœ ์‚ฌ์šฉ

  • ํ•จ์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹
    ์ผ๋ฐ˜ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ํ‘œํ˜„์‹ const a = function() {} ์‚ฌ์šฉ
    ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋Š” ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ const a = () => {} ์‚ฌ์šฉ

  • ํƒœ๊ทธ ๋„ค์ด๋ฐ
    ํƒœ๊ทธ๋Š” <UserComponent>hello</UserComponent>์™€ ๊ฐ™์ด ํŒŒ์Šค์นผ ์ผ€์ด์Šค ์‚ฌ์šฉ

  • ํŒŒ์ผ ๋„ค์ด๋ฐ
    .ts๋Š” ์ผ๋ฐ˜ TypeScript ํŒŒ์ผ, .tsx๋Š” JSX ๋ฌธ๋ฒ•์ด ํฌํ•จ๋œ ํŒŒ์ผ์— ์‚ฌ์šฉ
    ๋ฆฌ์•กํŠธ ๋ฌธ๋ฒ•์ด ๋“ค์–ด๊ฐ€๋Š” ํŒŒ์ผ, ์ปดํฌ๋„ŒํŠธ, ํ›…์€ .tsx ํ™•์žฅ์ž ์‚ฌ์šฉ
    ์ปค์Šคํ…€ ํ›…์€ use ์ ‘๋‘์‚ฌ ์‚ฌ์šฉํ•˜์—ฌ useHello.tsx์™€ ๊ฐ™์ด ๋„ค์ด๋ฐ

  • ํด๋” ๋„ค์ด๋ฐ
    ํด๋”๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์นด๋ฉœ ์ผ€์ด์Šค ์‚ฌ์šฉํ•˜๋ฉฐ, ์ปดํฌ๋„ŒํŠธ ํด๋”์ผ ๊ฒฝ์šฐ์—๋งŒ ํŒŒ์Šค์นผ ์ผ€์ด์Šค ์‚ฌ์šฉ

  • styled-components CSS import ์ปจ๋ฒค์…˜
    ์Šคํƒ€์ผ๋“œ ์ปดํฌ๋„ŒํŠธ ์‚ฌ์šฉํ•  ๋•Œ, ์Šคํƒ€์ผ ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ๊ฐ์ฒด๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹ ์‚ฌ์šฉ ์˜ˆ ๋“ค์–ด, ์Šคํƒ€์ผ ํŒŒ์ผ styles.js๋กœ ๋งŒ๋“ค๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ€์ ธ์˜จ๋‹ค:

    import * as S from './styles';
  • props ์ปจ๋ฒค์…˜

    ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ์‚ฌ์šฉ

    export const Poster = ({ src, width = 235, height = 330 }: PosterProps) => {...}
  • styled-components props ํƒ€์ž… ์ •์˜ ์ปจ๋ฒค์…˜

    export const Poster = styled.img<{ width: number, height: number}>``
  • styled-components props ๋ฐ›์•„์˜ฌ ๋•Œ ์ปจ๋ฒค์…˜

font-size: ${({ isSearch }) => (isSearch ? '15px' : '25px')};
color: ${({ theme, isRangking }) => (isRangking ? theme.colors.primary : theme.colors.black)};
  • ๋ฐฐ์—ด ํƒ€์ž… ๋Œ€๊ด„ํ˜ธ๋กœ ํ‘œ๊ธฐํ•˜๊ธฐ ex) string[]

02 ์ปค๋ฐ‹ ์ปจ๋ฒค์…˜

  • Feat: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • Fix: ๋ฒ„๊ทธ ์ˆ˜์ •
  • Docs: ๋ฌธ์„œ ์ˆ˜์ •
  • Refactor: ์ฝ”๋“œ ๋ฆฌํŽ™ํ† ๋ง
  • Chore: ๋นŒ๋“œ ์—…๋ฌด ์ˆ˜์ •, ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ •

03 ๋ธŒ๋žœ์น˜ ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜

[์ด์Šˆ ๋ฒˆํ˜ธ]-feature/๊ธฐ๋Šฅ   ex) 3-feature/some-feature
[์ด์Šˆ ๋ฒˆํ˜ธ]-bug/๊ธฐ๋Šฅ   ex) 15-bug/some-error