๊ฐ์ธ์ ์๋น ํจํด ๋ฐ ๊ธ์ต ์ฑํฅ์ ๋ถ์ํ์ฌ ์ต์ ํ๋ ๋ง์ถคํ ์์ฐ ๊ด๋ฆฌ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ธ์ต ์๋ฃจ์
ํจ์จ์ ์ธ ํ์ ์ ์ํด ์ด์/๊ธฐ๋ฅ ๋จ์์ ๋ธ๋์น ์ ๋ต๊ณผ Squash Merge ๋ฐฉ์ ์ฑํ
ํ์: ํ๊ทธ/์์
๋ช
feat: ์ ๊ท ๊ธฐ๋ฅ ๊ฐ๋ฐfix: ์ค๋ฅ ๋ฐ ๋ฒ๊ทธ ์์ refactor: ์ฝ๋ ๊ฐ์ ๋ฐ ๋ฆฌํฉํ ๋งdocs: ๋ฌธ์ ์์ chore: ๊ธฐํ ๋ณ๊ฒฝ ์ฌํญ- ์์:
feat/login,fix/login-error,refactor/main-api
ํ์: ํ๊ทธ: ์์
๋ด์ฉ ์์ฝ
feat: ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐfix: ์ค๋ฅ ๋ฐ ๋ฒ๊ทธ ์์ docs: ๋ฌธ์ ์์ style: ์ฝ๋ ํฌ๋งทํrefactor: ๋ฆฌํฉํ ๋งrename: ํ์ผ ํน์ ํด๋๋ช ์์ test: ํ ์คํธ ์ฝ๋ ์ถ๊ฐremove: ํ์ผ ํน์ ํด๋ ์ญ์ design: UI ์คํ์ผ๋ง ๋ฐ ๋ ์ด์์ ๊ฐ์chore: ๊ธฐํ ๋ณ๊ฒฝ ์ฌํญ- ์์:
feat: ์์ฐ ๋ด์ญ ํ์ด์ง ๊ตฌํ,fix: ๋ชฉํ ๊ด๋ฆฌ ๊ธ์ก ๊ณ์ฐ ์ค๋ฅ ์์
-
React 18.2
- React 19์ ๋ณด์ ์ทจ์ฝ์ (CVE-2025-55182)์ ๊ณ ๋ คํ์ฌ ์์ ์ฑ์ด ๊ฒ์ฆ๋ ๋ฒ์ ์ฑํ
- Concurrency Rendering ๋ฐ Automatic Batching์ ํ์ฉํ UI ์๋ต์ฑ ํ๋ณด
-
TypeScript
- ์ ์ ํ์ดํ์ ํตํ ๋ฐํ์ ์๋ฌ ์ฌ์ ๋ฐฉ์ง ๋ฐ ํ ๊ฐ ์ธํฐํ์ด์ค ํ์ ์์ ์ฑ ํ๋ณด
-
Vite
- Webpack ๋๋น ๋น ๋ฅธ ๋น๋ ์๋์ ํจ์จ์ ์ธ HMR์ ํตํ ๊ฐ๋ฐ ์์ฐ์ฑ ๊ทน๋ํ
-
npm
- ํ ๋ด ํ์ค ํจํค์ง ๋งค๋์ ๋ก ์ฑํํ์ฌ ์์กด์ฑ ๊ด๋ฆฌ ์ผ๊ด์ฑ ์ ์ง
-
Zustand
- Context API์ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง ๋ฌธ์ ํด๊ฒฐ
- Redux ๋๋น ๊ฐ๊ฒฐํ ๊ตฌ์กฐ๋ก ์ํ ๊ด๋ฆฌ ๋ก์ง ๊ฒฝ๋ํ
-
TanStack Query v5
- ์ง์ ๊ตฌํํ๊ธฐ ๋ณต์กํ ์๋ฒ ๋ฐ์ดํฐ์ ์บ์ฑ, ์ ์ ๋ ๊ด๋ฆฌ ๋ฐ HTTP ์์ฒญ ์ํ๋ฅผ ์ ์ธ์ ์ผ๋ก ์ฒ๋ฆฌ
-
Axios
- API ํต์ ๋ ์ด์ด๋ฅผ ๋ช ํํ ๋ถ๋ฆฌํ์ฌ ์ธํฐ์ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ ๋ฐ ์๋ฌ ํธ๋ค๋ง
-
Tailwind CSS
- CSS-in-JS์ ๋ฐํ์ ์ค๋ฒํค๋ ์์ด ๋น๋ ํ์ ์คํ์ผ ์์ฑ์ ํตํด ๋ชจ๋ฐ์ผ ์ต์ ํ ๋ฐ ์ด๊ธฐ ๋ ๋๋ง ์ฑ๋ฅ ํ๋ณด
-
PostCSS
- Tailwind CSS์ ํต์ฌ ์์ง์ผ๋ก ํ์ฉํ๋ฉฐ, ์ต์ CSS ๋ฌธ๋ฒ์ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์ ๋์ํ๋๋ก ์๋ ๋ณํํ์ฌ ํธํ์ฑ ๋ณด์ฅ
-
Framer-motion
react-spring๋๋น ๋ฎ์ ๋ฌ๋ ์ปค๋ธ์ ์ง๊ด์ ์ธ API๋ฅผ ๋ณด์ ํ์ฌ ๋ฐํ ์ํธ ๋ฑ ๊ณ ๋ํ๋ ์ธํฐ๋์ ์ ํจ์จ์ ์ผ๋ก ๊ตฌํ
-
clsx / tailwind-merge
- ๊ณต์ฉ ์ปดํฌ๋ํธ ์ค๊ณ ์ ์ธ๋ถ ์ฃผ์ ์คํ์ผ๊ณผ ๋ด๋ถ ๊ธฐ๋ณธ ์คํ์ผ ๊ฐ์ ์ถฉ๋์ ๋ฐฉ์งํ๊ณ ์กฐ๊ฑด๋ถ ์คํ์ผ ๊ฐ๋ ์ฑ ํ๋ณด
-
Storybook:
- ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ถ๋ฆฌ๋ ๋ ๋ฆฝ์ UI ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ์ฌ ์ปดํฌ๋ํธ ์ฌ์ฌ์ฉ์ฑ ๋ฐ ํ ์คํธ ํธ์์ฑ ์ ๊ณ
-
Vite-plugin-svgr
- SVG ์ด๋ฏธ์ง๋ฅผ React ์ปดํฌ๋ํธํํ์ฌ Props ๊ธฐ๋ฐ์ ์ ์ฐํ ์คํ์ผ๋ง ์ ์ด ํ๊ฒฝ ๊ตฌ์ถ
-
ESLint / Prettier
- ์ฝ๋ ์ปจ๋ฒค์ ์ ์๋ํํ์ฌ ์ฝ๋ ํ์ง์ ์ ์งํ๊ณ ๋ก์ง ์ค๊ณ์๋ง ์ง์คํ ์ ์๋ ํ๊ฒฝ ์กฐ์ฑ
๋ณธ ํ๋ก์ ํธ๋ Feature-Sliced Design(FSD) ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ฅ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๊ณ ๋ คํด ์ค๊ณ๋์์ต๋๋ค.
src/
โโโ assets/ # ์ ์ ์์
โโโ components/ # ์ ์ญ ๊ณต์ฉ ์ปดํฌ๋ํธ
โโโ features/ # ๋๋ฉ์ธ๋ณ ๋น์ฆ๋์ค ๋ก์ง ๋ฐ API
โโโ hooks/ # ์ปค์คํ
ํ
๋ฐ ๊ธ๋ก๋ฒ Store
โโโ lib/ # ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์
โโโ pages/ # ๋ผ์ฐํธ๋ณ ํ์ด์ง
โโโ router/ # ๋ผ์ฐํ
์ ์
โโโ stories/ # Storybook ๋ช
์ธ
โโโ styles/ # ์ ์ญ ์คํ์ผ ๋ฐ ํ
๋ง
โโโ utils/ # ๋ฒ์ฉ ์ ํธ๋ฆฌํฐ ํจ์
โโโ App.tsx # ๋ฃจํธ ์ปดํฌ๋ํธ
โโโ main.tsx # ์ํธ๋ฆฌ ํฌ์ธํธ
- ๊ธ์ต ์ฑํฅ ํ ์คํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์ ์๋น ํ์ ๋์ถ
- ์๋น ์ต๊ด, ์ํ ์ ํธ๋, ์ ์ถ ์ฑํฅ์ ์๊ฐํํ ๋ง์ถคํ ๋ฆฌํฌํธ ์ ๊ณต
- ์ ์ถ ๋ชฉํ ์ค์ ๋ฐ ๋ฌ์ฑ ํํฉ ํธ๋ํน
- ๋ฌ์ฑ๋ฅ ๊ธฐ๋ฐ ์งํ ํํฉ ์๊ฐํ ๋ฐ ๋๊ธฐ ๋ถ์ฌ
- ์ํ / ์นด๋์ฌ ์ฐ๋์ ํตํ ๊ณ์ข ๋ฐ ์๋น ๋ด์ญ ํตํฉ ๊ด๋ฆฌ
- ์๋ณยท์นดํ ๊ณ ๋ฆฌ๋ณ ์ง์ถ ๋ถ์ ์ ๊ณต
- ์ฌ์ฉ์์ ์๋น ์ฑํฅ ๊ธฐ๋ฐ ์ต์ ๊ธ์ต ์ํ ๋งค์นญ
- ์ต๋ํ / ์ํ๋ฏธ / ๊ฐ์นํฌ / ๋ณ์์ฐ