Skip to content

Latest commit

ย 

History

History
272 lines (228 loc) ยท 16.5 KB

README.md

File metadata and controls

272 lines (228 loc) ยท 16.5 KB

แ„‘แ…ญแ„Œแ…ต

logo_main
"์ฝ˜์„œํŠธ, ํŽ˜์Šคํ‹ฐ๋ฒŒ ํ‹ฐ์ผ“ ์ •๋ณด๋ฅผ ํ•œ๋ˆˆ์—, ์†์‰ฝ๊ฒŒ!"

  1. ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ฝ˜์„œํŠธ ๋ฐ ํŽ˜์Šคํ‹ฐ๋ฒŒ ์ •๋ณด๋ฅผ ๋ชจ์•„์„œ

  2. ์ฐœํ•œ ๊ณต์—ฐ๋“ค์„ ๋ฐ”ํƒ•์œผ๋กœ ๋‚˜๋งŒ์˜ ํƒ€์ž„ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด

  3. ์ค‘์š”ํ•œ ์ผ์ •๋“ค์„ ํ•œ๋ˆˆ์— ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ, confeti


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

แ„‰แ…ฉแ†ฏแ„…แ…ฎแ„‰แ…งแ†ซ-1 แ„‰แ…ฉแ†ฏแ„…แ…ฎแ„‰แ…งแ†ซ แ„Œแ…ฎแ„€แ…ตแ„‚แ…ณแ†ผ-4

แ„Œแ…ฎแ„€แ…ตแ„‚แ…ณแ†ผ-5 แ„Œแ…ฎแ„€แ…ตแ„‚แ…ณแ†ผ-1 แ„Œแ…ฎแ„€แ…ตแ„‚แ…ณแ†ผ-2 แ„Œแ…ฎแ„€แ…ตแ„‚แ…ณแ†ผ-3 แ„Œแ…ฎแ„€แ…ตแ„‚แ…ณแ†ผ

แ„Œแ…ฎแ„€แ…ตแ„‚แ…ณแ†ผ-6 แ„Œแ…ฎแ„€แ…ตแ„‚แ…ณแ†ผ-7 แ„Œแ…ฎแ„€แ…ตแ„‚แ…ณแ†ผ8 แ„Œแ…ฎแ„€แ…ตแ„‚แ…ณแ†ผ9 แ„Œแ…ฎแ„€แ…ตแ„‚แ…ณแ†ผ10

๐Ÿดโ€โ˜ ๏ธ Confeti FE Developers

๊ฐ•๋ฏผํ•˜ ๊ณฝ์ง€์šฑ ๊น€๋‹คํ˜„ ๊น€์ฑ„์€ ๊น€ํ•œ์„œ
๊ฐ•๋ฏผํ•˜ ๊ณฝ์ง€์šฑ ๊น€๋‹คํ˜„ ๊น€์ฑ„์€ ๊น€ํ•œ์„œ
@m2na7 @gwagjiug @daahyunk @bongtta @seueooo


๐Ÿ› ๏ธ Tech Stack

Node.js Version

v22.12.0

์—ญํ•  ์ข…๋ฅ˜
Library React VITE
Programming Language TypeScript
Styling VanilaExtract
Data Fetching Axios TanstackQuery
Formatting ESLint Prettier Husky
Package Manager Yarn
Version Control Git GitHub
Workspace Management Monorepo Turborepo

๐Ÿค” Why?

๊ธฐ์ˆ  ์Šคํƒ ์„ ์ • ์ด์œ 
React ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜์—ฌ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ํ–ฅ์ƒ๋จ
Vite React + TypeScript ํ™˜๊ฒฝ์— ์นœํ™”์ ์œผ๋กœ ์„ค๊ณ„๋˜์–ด ์ดˆ๊ธฐ ์„ค์ •์ด ๊ฐ„์†Œํ™”๋˜๋ฉฐ, ES ๋ชจ๋“ˆ ๊ธฐ๋ฐ˜์œผ๋กœ ๋นŒ๋“œ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ด
TypeScript ์ •์  ํƒ€์ž… ์ฒดํฌ๋ฅผ ์ง€์›ํ•˜์—ฌ ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ , ๋ช…ํ™•ํ•œ ํƒ€์ž… ์ •์˜๋ฅผ ํ†ตํ•ด ํ˜‘์—…์„ ์šฉ์ดํ•˜๊ฒŒ ํ•จ
TanStack Query ๋ฐ์ดํ„ฐ ํŒจ์นญ, ์บ์‹ฑ, ๋™๊ธฐํ™”, ๋ฆฌํŒจ์นญ์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ ๋ฐ ์ค‘๋ณต ์š”์ฒญ์„ ๋ฐฉ์ง€ํ•จ
์ถ”ํ›„ Next.js์™€ ๊ฒฐํ•ฉํ•˜์—ฌ SSR ๋ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ๊ธฐ๋Šฅ ํ™•์žฅ์„ ๊ณ ๋ คํ•จ
Vanilla Extract ์ •์  CSS ์ƒ์„ฑ์œผ๋กœ ๋นŒ๋“œ ํƒ€์ž„์— CSS๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋Ÿฐํƒ€์ž„ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋ฉฐ, Zero-runtime ์Šคํƒ€์ผ๋ง์„ ํ†ตํ•ด ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ  ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ด
Storybook ๐Ÿ”— Storybook ์„ค์ • & ํฌ๋กœ๋งˆํ‹ฑ ์ž๋™ํ™”
Monorepo ๐Ÿ”— Monorepo ๋„์ž…๊ธฐ
Turborepo ๐Ÿ”— Turborepo ๋„์ž…๊ธฐ
Pnpm ๐Ÿ”— Pnpm ๋„์ž…๊ธฐ

๐Ÿ“ญ Git Convention

Git Flow

# ๋ฉ”์ธ ๋ธŒ๋žœ์น˜(Main branch)
main(master)
`main` ๋ธŒ๋žœ์น˜๋Š” ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋งŒ์„ ๊ด€๋ฆฌํ•ด์š”.

# develop
`develop` ๋ธŒ๋žœ์น˜๋Š” ํ†ตํ•ฉ ๋ธŒ๋žœ์น˜ ์—ญํ• ์„ ํ•˜๋ฉฐ, ํ‰์†Œ์—๋Š” ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•ด์š”.
๋ชจ๋“  ๊ธฐ๋Šฅ์ด ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์•ˆ์ •์ ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ณ ,
๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋ผ๋ฉด `main`๋ธŒ๋žœ์น˜์— `merge` ํ•ด์š”.

# ํ”ผ์ณ ๋ธŒ๋žœ์น˜(Feature branch)
develop ๋ธŒ๋žœ์น˜์—์„œ ๋ถ„๊ธฐ
develop ๋ธŒ๋žœ์น˜๋กœ merge

Create Branch

๋ชจ๋“  ๊ธฐ๋Šฅ์€ ๊ตฌํ˜„ ์ด์ „ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ด€๋ฆฌํ•ด์š”.

- ๋ธŒ๋žœ์น˜ ๋„ค์ด๋ฐ: ๊ตฌํ˜„๊ธฐ๋Šฅ ์ข…๋ฅ˜/๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ๋ช…/#์ด์Šˆ๋ฒˆํ˜ธ
style/main-page/#43
refactor/edit-modal/#75

Commit Convention

๋ชจ๋“  ์ž‘์—…์€ develop ์—์„œ ๋ถ„๊ธฐ๋œ feature ๋ธŒ๋žœ์น˜์—์„œ ์ง„ํ–‰ํ•ด์š”.
์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋Š” ์ปค๋ฐ‹์œ ํ˜•: ๊ฐœ๋ฐœํ•œ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€
ex) `feat: ํƒ€์ž„ํ…Œ์ด๋ธ” ๊ธฐ๋Šฅ ์ถ”๊ฐ€`
์ปค๋ฐ‹์œ ํ˜• ์˜๋ฏธ
feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
refactor ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
fix ๋ฒ„๊ทธ ์ˆ˜์ •
chore ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €, ์„ค์ • ์„ธํŒ…
init ์ดˆ๊ธฐ ์„ธํŒ… ๋ฐ ์ข…์†์„ฑ ์ถ”๊ฐ€ ๊ด€๋ จ
docs ๋ฌธ์„œ ์ˆ˜์ •
design CSS ๋ฐ UI ๋ณ€๊ฒฝ
style ์ฝ”๋“œ ํฌ๋งทํŒ…, ์„ธ๋ฏธ์ฝœ๋ก  ๋ˆ„๋ฝ ๋“ฑ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†์Œ
test ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋ฆฌํŒฉํ† ๋ง ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

๐Ÿ“š ISSUE + PR Convention

Issue - [๊ตฌํ˜„๊ธฐ๋Šฅ ์ข…๋ฅ˜]: ์ž‘์—…๋ช…

  • [Feature]: ๋ฉ”์ธํŽ˜์ด์ง€ API ์—ฐ๋™

Pull Request - ๊ตฌํ˜„๊ธฐ๋Šฅ ์ข…๋ฅ˜(ํŒจํ‚ค์ง€๋ช…): ์ž‘์—…๋ช…

  • Feature(design-system): ๊ณตํ†ต ๋ฒ„ํŠผ์ปดํฌ๋„ŒํŠธ ์ œ์ž‘
  • Feature(client): ๋ฉ”์ธํŽ˜์ด์ง€ API ์—ฐ๋™
  • ๋ฃจํŠธ์—์„œ ์„ค์ •ํ•œ๋‹ค๋ฉด ํŒจํ‚ค์ง€๋ช…์€ ์ƒ๋žต ๊ฐ€๋Šฅ
    • Chore: ํด๋”๊ตฌ์กฐ ์„ธํŒ…

์œ„์˜ ํ˜•์‹ ์™ธ์—๋Š” ํƒฌํ”Œ๋ฆฟ ํ˜•์‹์„ ๋”ฐ๋ผ ์ž‘์„ฑ

๐Ÿ—‚๏ธ Foldering

๐Ÿ“ฆ apps
โ””โ”€โ”€ ๐Ÿ“‚ client
    โ”œโ”€โ”€ ๐Ÿ“‚ node_modules
    โ”œโ”€โ”€ ๐Ÿ“‚ public
    โ”‚   โ””โ”€โ”€ ๐Ÿ“œ favicon.svg
    โ”œโ”€โ”€ ๐Ÿ“‚ src
    โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ pages
    โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ home
    โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ components
    โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ constants
    โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ hooks
    โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ page
    โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“œ home.tsx
    โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“œ home.css.ts
    โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ types
    โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ my
    โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ components
    โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ hooks
    โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ page
    โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ types
    โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ search
    โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ components
    โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ hooks
    โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ page
    โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ types
    โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ time-table
    โ”‚   โ”‚       โ”œโ”€โ”€ ๐Ÿ“‚ components
    โ”‚   โ”‚       โ”œโ”€โ”€ ๐Ÿ“‚ hooks
    โ”‚   โ”‚       โ”œโ”€โ”€ ๐Ÿ“‚ page
    โ”‚   โ”‚       โ””โ”€โ”€ ๐Ÿ“‚ types
    โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ shared
    โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ apis
    โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“œ api.ts
    โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ assets
    โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ images
    โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ components
    โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ button
    โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“œ button.tsx
    โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“œ Button.stories.ts
    โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“œ button.tsx
    โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ constants
    โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ hooks
    โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ pages
    โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ router
    โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ styles
    โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ utils
    โ”‚   โ”‚       โ””โ”€โ”€ ๐Ÿ“œ query-client.ts
    โ”‚   โ”œโ”€โ”€ ๐Ÿ“œ App.tsx
    โ”‚   โ”œโ”€โ”€ ๐Ÿ“œ main.tsx
    โ”‚   โ””โ”€โ”€ ๐Ÿ“œ vite-env.d.ts
    โ”œโ”€โ”€ ๐Ÿ“œ .eslintrc.cjs
    โ”œโ”€โ”€ ๐Ÿ“œ .gitignore
    โ”œโ”€โ”€ ๐Ÿ“œ index.html
    โ”œโ”€โ”€ ๐Ÿ“œ package.json
    โ”œโ”€โ”€ ๐Ÿ“œ tsconfig.json
    โ””โ”€โ”€ ๐Ÿ“œ vite.config.ts

Component 1