Skip to content

Latest commit

Β 

History

History
222 lines (185 loc) Β· 12.2 KB

README.md

File metadata and controls

222 lines (185 loc) Β· 12.2 KB

logo_main
"μ½˜μ„œνŠΈ, νŽ˜μŠ€ν‹°λ²Œ ν‹°μΌ“ 정보λ₯Ό ν•œλˆˆμ—, μ†μ‰½κ²Œ!"

  1. λ‚΄κ°€ μ›ν•˜λŠ” μ½˜μ„œνŠΈ 및 νŽ˜μŠ€ν‹°λ²Œ 정보λ₯Ό λͺ¨μ•„μ„œ

  2. μ°œν•œ 곡연듀을 λ°”νƒ•μœΌλ‘œ λ‚˜λ§Œμ˜ νƒ€μž„ν…Œμ΄λΈ”μ„ λ§Œλ“€μ–΄

  3. μ€‘μš”ν•œ 일정듀을 ν•œλˆˆμ— 확인할 수 μžˆλŠ” κ³³, confeti


πŸ΄β€β˜ οΈ confeti FE Developers

κ°•λ―Όν•˜ κ³½μ§€μš± κΉ€λ‹€ν˜„ 김채은 κΉ€ν•œμ„œ
Component 1
@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