๐Ÿคฉ ์„œ๋น„์Šค ์†Œ๊ฐœ

๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง ๊ฐœ๋ฐœํŒ€ ๊ตฌ์„ฑ

๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ

TypeScript ReactJS Next.js vercel SWR styled-components Yarn Berry ESlint prettier Storybook Sentry Google Analytics ant-design React Native Code Push

๐Ÿช„ ๋‹ด๋‹น ์—…๋ฌด

[1] ์›น์‚ฌ์ดํŠธ ๋ฆฌ๋‰ด์–ผ

  1. ๊ฐ์ข… ํŽ˜์ด์ง€ ๊ตฌํ˜„ & ๊ฐœ์„ 

    1. ์ƒํ’ˆ ๊ด€๋ จ ๊ธฐ๋Šฅ ๊ตฌํ˜„

      • ์ƒํ’ˆ ์นดํ…Œ๊ณ ๋ฆฌ ๋ชฉ๋ก, ์ƒํ’ˆ ๋žญํ‚น, ๋žญํ‚น ํ•„ํ„ฐ

        : ์ƒํ’ˆ ๋žญํ‚น ๋ชฉ๋ก๊ณผ ์นดํ…Œ๊ณ ๋ฆฌ, ์Šคํƒ€์ผ ํƒœ๊ทธ, ๊ฐ€๊ฒฉ๋Œ€๋กœ ๋ชฉ๋ก์„ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

      • ์ƒํ’ˆ ์ƒ์„ธ

        : ์ƒํ’ˆ ์ •๋ณด์™€ ๋ฌธ์˜ ๋ชฉ๋ก, ์—ฐ๊ด€ ์ƒํ’ˆ ๋ชฉ๋ก, ์ƒํ’ˆ๊ณผ ๊ด€๋ จ๋œ ๋ฆฌ๋ทฐ ๋ชฉ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

        • SWR์˜ useSWR()์„ ์ด์šฉํ•ด ์ƒํ’ˆ ๋ฌธ์˜ ๋ชฉ๋ก Pagination ๊ตฌํ˜„
    2. ๋ฌธ์˜ ๊ด€๋ จ ๊ธฐ๋Šฅ ๊ตฌํ˜„

    3. ์ฃผ๋ฌธ ๊ด€๋ จ ๊ธฐ๋Šฅ ๊ตฌํ˜„

      • ์ฃผ๋ฌธ ๋‚ด์—ญ, ์ฃผ๋ฌธ ์ƒ์„ธ

        : ์ฃผ๋ฌธ ์ •๋ณด์™€ ์ฃผ๋ฌธ ์ƒํƒœ(๋ฐœ์†ก ๋Œ€๊ธฐ, ๋ฐฐ์†ก ์ค‘, ๋ฐฐ์†ก ์™„๋ฃŒ, ...)์— ๋”ฐ๋ผ ์•ก์…˜(์ทจ์†Œ ์š”์ฒญ, ๊ตฌ๋งค ํ™•์ •, ๋ฐ˜ํ’ˆ ์š”์ฒญ, ๊ตํ™˜ ์š”์ฒญ, ...) ๋ฒ„ํŠผ์„ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

      • ์ทจ์†Œ์š”์ฒญ, ๋ฐ˜ํ’ˆ์š”์ฒญ, ๊ตํ™˜์š”์ฒญ

        : ์ฃผ๋ฌธ์„ ์ทจ์†Œ, ์ƒํ’ˆ์„ ๋ฐ˜ํ’ˆ, ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

    4. ํฌ์ธํŠธ ๊ด€๋ จ ๊ธฐ๋Šฅ ๊ตฌํ˜„

      • ํฌ์ธํŠธ ๋‚ด์—ญ

        : ํฌ์ธํŠธ ์ด์•ก๊ณผ ์ ๋ฆฝ, ์‚ฌ์šฉ ๋‚ด์—ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

        • SWR์˜ useSWRInfinite()๋ฅผ ์ด์šฉํ•ด ์˜คํ”„์…‹ ํŽ˜์ด์ง• ๋ฐฉ์‹์˜ ๋ฌดํ•œ ์Šคํฌ๋กค ๊ตฌํ˜„
      • ์ˆ˜์ต ๋‚ด์—ญ, ์ˆ˜์ต ์ƒ์„ธ, ์ˆ˜์ต ์ถœ๊ธˆ ์‹ ์ฒญ

        : ๋ฆฌ๋ทฐ๋ฅผ ์ž‘์„ฑํ•œ ์ธํ”Œ๋ฃจ์–ธ์„œ๊ฐ€ ํŒ๋งค ์ˆ˜์ต์„ ํ™•์ธํ•˜๊ณ , ์ˆ˜์ต์„ ์ถœ๊ธˆ ์‹ ์ฒญํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

    5. ๋งค์นญ ํ…Œ์ŠคํŠธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

      : ์œ ์ €์˜ ๋‚˜์ด,ํ‚ค,๋ชธ๋ฌด๊ฒŒ์™€ ์„ ํ˜ธ ์Šคํƒ€์ผ์„ ์กฐ์‚ฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

    6. ๋ฆฌ๋ทฐ ๊ด€๋ จ ๊ธฐ๋Šฅ ๊ตฌํ˜„

      • ๋ฆฌ๋ทฐ ๋ชฉ๋ก

        : ์ƒํ’ˆ ๋ฆฌ๋ทฐ ๋ชฉ๋ก๊ณผ ๋ชฉ๋ก์„ ๋ฆฌ๋ทฐ ์ข…๋ฅ˜(๊ธ€/์˜์ƒ), ์Šคํƒ€์ผ ํƒœ๊ทธ, ์ƒํ’ˆ ์นดํ…Œ๊ณ ๋ฆฌ, ๋ฆฌ๋ทฐ์–ด ํ‚ค ๊ฐ’์œผ๋กœ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

        • SWR์˜ useSWRInfinite()๋ฅผ ์ด์šฉํ•ด ์˜คํ”„์…‹ ํŽ˜์ด์ง• ๋ฐฉ์‹์˜ ๋ฌดํ•œ ์Šคํฌ๋กค ๊ตฌํ˜„
      • ๋Œ“๊ธ€ ์ž‘์„ฑ, ๋Œ“๊ธ€ ๋ชฉ๋ก

        : ๋Œ“๊ธ€ ์ž‘์„ฑ๊ณผ ๋ฆฌ๋ทฐ์— ๋Œ€ํ•œ ๋Œ“๊ธ€ ๋ชฉ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

        • SWR์˜ mutation ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด ๋Œ“๊ธ€ ์ข‹์•„์š”์— optimistic update ์ ์šฉ
    7. ์ธํ”Œ๋ฃจ์–ธ์„œ ์ฑ„๋„ ๊ด€๋ จ ๊ธฐ๋Šฅ ๊ตฌํ˜„

      • ์ฑ„๋„ ์ •๋ณด ์ƒ์„ธ, ์ •๋ณด ์ˆ˜์ •

        : ์ธํ”Œ๋ฃจ์–ธ์„œ ๊ด€๋ จ ์ •๋ณด(ํ”„๋กœํ•„, ๋ฆฌ๋ทฐ ๋ชฉ๋ก) ํ™•์ธ๊ณผ ์ฑ„๋„ ๊ตฌ๋…, ์ฑ„๋„ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

  2. ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„

[2] ๋ธŒ๋žœ๋“œ ์–ด๋“œ๋ฏผ ์‚ฌ์ดํŠธ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

  1. ์ƒํ’ˆ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„

    : ์ •๋ ฌ, ํ•„ํ„ฐ๋ง ๊ฐ€๋Šฅํ•œ ์ƒํ’ˆ ์กฐํšŒ ํ…Œ์ด๋ธ”, ์ƒํ’ˆ ์ƒ์„ฑ/์ˆ˜์ •/์‚ญ์ œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

  2. ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๊ตฌํ˜„

[3] ๋ชจ๋ฐ”์ผ์•ฑ ๊ฐœ๋ฐœ, ์ถœ์‹œ

  1. ๊ฐ์ข… ์Šคํฌ๋ฆฐ ๊ตฌํ˜„ & ๊ฐœ์„ 
  2. ๊ตฌ๊ธ€ ์• ๋„๋ฆฌํ‹ฑ์Šค๋ฅผ ์ ์šฉํ•ด ์œ ์ € ํ–‰๋™ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘
  3. CodePush๋ฅผ ์ด์šฉํ•ด HTML, CSS, JS, aseet ์ฝ”๋“œ ๋ณ€๊ฒฝ์ ์„ ์•ฑ ๊ฐ•์ œ ์—…๋ฐ์ดํŠธ ์—†์ด ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •
  4. ์•ฑ ์‹ฌ์‚ฌ ๋“ฑ๋ก