ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๋„๊ตฌ ๋ชจ์Œ

2025. 3. 18. 20:25ใ†Front-end/Tools

๋ฐ˜์‘ํ˜•

๋ชฉ์ฐจ

โš™๏ธ Library & Framework

    React

    Next.js

    Node.js

๐Ÿ“ฆ Bundler & Build

    webpack

    turbopack

    vite

๐Ÿ” Transpiler

    Babel

    Sass

๐ŸŽจ UI

    TailwindCSS

    Font Awesome

    Google fonts

๐Ÿ”„ State Management Library

    Redux

    Zustand

    Jotai

๐Ÿ”ง API Library

    axios

    Tanstack Query

โœ… Testing

     jest

    Storybook

    Percy

    Applitools

    Chromatic

    BackstopJS

    Loki

๐Ÿงน Code Quality

    ESLint

    Prettier

    Stylelint

๐Ÿ› ๏ธ CI/CD & Release

    Github Actions

    Husky

    Netlify

    Vercel

 

 

โš™๏ธ Library & Framework

  • ReactUI๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์— ์‚ฌ์šฉ๋˜๋Š” JS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • Next.js : React ๊ธฐ๋ฐ˜ SSR ๋ฐ ์ •์  ์›น์‚ฌ์ดํŠธ ์ƒ์„ฑ ์ง€์›์˜ ์›น ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ
  • Node.js : JS๋ฅผ ์„œ๋ฒ„์—์„œ๋„ ์‹คํ–‰ํ•˜๋„๋ก ๋•๋Š” ๋Ÿฐํƒ€์ž„ ์‹คํ–‰ ํ™˜๊ฒฝ

๐Ÿ“ฆ Bundler & Build

*๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ : ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ชจ๋“ˆ ํŒŒ์ผ์„ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š” ๋„๊ตฌ

*๋นŒ๋“œ ๋„๊ตฌ : ์ฝ”๋“œ ๋ณ€ํ™˜, ์ตœ์ ํ™”, ๋ฒˆ๋“ค๋ง ๋“ฑ ์ฝ”๋“œ๋ฅผ ์‹ค์ œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ๊ฐ€๊ณต/์ž๋™ํ™”ํ•˜๋Š” ๋„๊ตฌ

  • webpack JS ๋ชจ๋“ˆ์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋ฒˆ๋“ค๋งํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ
  • Turbopack : Vercel์—์„œ ์ œ์ž‘ํ•œ Webpack์˜ ์ฐจ์„ธ๋Œ€ ๋Œ€์•ˆ
  • Vite: ES ๋ชจ๋“ˆ ๊ธฐ๋ฐ˜์˜ ์ดˆ๊ณ ์† ๊ฐœ๋ฐœ ์„œ๋ฒ„์™€ ๋นŒ๋“œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ฐจ์„ธ๋Œ€ ํ”„๋ก ํŠธ์—”๋“œ ๋นŒ๋“œ ๋„๊ตฌ.

 


๐Ÿ” Transpiler

*ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ : js, ts, jsx, tsx ๋“ฑ์„  javascript๋กœ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ํ”„๋กœ๊ทธ๋žจ

  • Babel : ์ตœ์‹  JS ๋ฌธ๋ฒ•์„ ๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ €์—๋„ ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋ณ€ํ™˜
  • Sass : CSS ์ „์ฒ˜๋ฆฌ๊ธฐ๋กœ, ๋” ๊ฐ•๋ ฅํ•œ ๋ฌธ๋ฒ•๊ณผ ๋ณ€์ˆ˜/์ค‘์ฒฉ ๊ธฐ๋Šฅ ์ œ๊ณต

๐ŸŽจ UI

  • Tailwind CSS์œ ํ‹ธ๋ฆฌํ‹ฐ ํผ์ŠคํŠธ ๋ฐฉ์‹์˜ CSS ํ”„๋ ˆ์ž„์›Œํฌ
  • Font Awesome์›น/์•ฑ์šฉ ์•„์ด์ฝ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • Google fonts๊ตฌ๊ธ€์—์„œ ์ œ๊ณตํ•˜๋Š” ์›น ํฐํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ API ์„œ๋น„์Šค

๐Ÿ”„ Statement Management Library

[ Flux ํŒจํ„ด ๊ธฐ๋ฐ˜ ]

  • Redux : ์ „์—ญ ์ƒํƒœ๋ฅผ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • Zustand : ๊ฐ„๋‹จํ•˜๊ณ  ๊ฐ€๋ฒผ์šด React ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • Jotai : Atom ๋‹จ์œ„๋กœ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” React ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๐Ÿ”ง API Library

  • axios Promise ๊ธฐ๋ฐ˜์˜ HTTP ํด๋ผ์ด์–ธํŠธ ๋น„๋™๊ธฐ ํ†ต์‹  JS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • TanStack Query ์„œ๋ฒ„ ์ƒํƒœ(๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ)๋ฅผ ์บ์‹ฑ, ๋™๊ธฐํ™”, ๊ฐฑ์‹ ํ•˜๋Š” React ๋ฐ์ดํ„ฐ ํŒจ์นญ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ



โœ… Testing

  • jest : ํŽ˜์ด์Šค๋ถ์ด ๊ฐœ๋ฐœํ•œ ํ…Œ์ŠคํŒ… ํ”„๋ ˆ์ž„์›Œํฌ
  • StorybookUI ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ๋ฌธ์„œํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ

[ Percy๋ฅผ ์ด์šฉํ•œ ์‹œ๊ฐ์  ํšŒ๊ท€ ํ…Œ์ŠคํŠธ ]

  • Percy : UI ์Šค๋ƒ…์ƒท์„ ์ฐ๊ณ  ๋น„๊ตํ•˜์—ฌ ์‹œ๊ฐ์  ๋ณ€๊ฒฝ ๊ฐ์ง€
  • Applitools : AI ๊ธฐ๋ฐ˜์˜ ์‹œ๊ฐ์  ํ…Œ์ŠคํŒ… ํ”Œ๋žซํผ
  • ChromaticStorybook๊ณผ ์—ฐ๋™๋œ UI ํ…Œ์ŠคํŠธ ๋ฐ ๋ฆฌ๋ทฐ ์„œ๋น„์Šค
  • BackstopJS : ์˜ค์Šจ์†Œ์Šค ์‹œ๊ฐ์  ํšŒ๊ท€ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ (๋ฌด๋ฃŒ)
  • Loki : Storybook๊ณผ ์—ฐ๋™ํ•˜์—ฌ ์‹œ๊ฐ์  ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋„๊ตฌ (๋ฌด๋ฃŒ)

๐Ÿงน Code Quality

  • ESLint์ฝ”๋“œ ์Šคํƒ€์ผ, ๋ฌธ๋ฒ• ์˜ค๋ฅ˜ ๋“ฑ์„ ์ •์  ๋ถ„์„์œผ๋กœ ํƒ์ง€ํ•˜๋Š” ๋„๊ตฌ
  • Prettier์ฝ”๋“œ ํฌ๋งทํŒ… ๋„๊ตฌ, ์ผ๊ด€๋œ ์ฝ”๋“œ ์Šคํƒ€์ผ ์œ ์ง€
  • Stylelint : CSS ์ฝ”๋“œ ์Šคํƒ€์ผ ๊ฒ€์‚ฌ ๋ฐ ์˜ค๋ฅ˜ ํƒ์ง€

๐Ÿ› ๏ธ CI/CD & Release

  • Github Actions์ฝ”๋“œ ํ‘ธ์‹œ/PR ๋“ฑ ์ด๋ฒคํŠธ์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋™ํ™” ๋„๊ตฌ
  • Husky : Git Hook์„ ํ™œ์šฉํ•˜์—ฌ ์ปค๋ฐ‹/ํ‘ธ์‹œ ์ „ ์ž๋™ ์ฝ”๋“œ ๊ฒ€์‚ฌ ํ˜น์€ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋„๊ตฌ
  • Netlify : ์ •์  ์‚ฌ์ดํŠธ ๋ฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ
  • Vercel : Next.js ์ œ์ž‘์‚ฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐฐํฌ ํ”Œ๋žซํผ, SSR ๋ฐ SSG ์‚ฌ์ดํŠธ์— ์ตœ์ ํ™”๋œ ๋ฐฐํฌ ํ™˜๊ฒฝ ์ œ๊ณต

 

๋ฐ˜์‘ํ˜•