์ (์ฌ์ฐฐ)๋ก ๋ ๋๊ณ ์ถ๋ค๋ ๋ง์์ด ์ ๋ก ๋ค๊ฒ ๋ง๋๋ ์๋น์ค, ์ ๋ก๊ฐ์ ๋๋ค.
ํ ํ์คํ ์ด๋ฅผ (์ฒ์) ๊ฐ๋ณด๋ ค ํ๋ฉดโฆ
- ์์น๊ฐ ์ด๋์ธ์ง
- ์ด๋ค ํ๋ก๊ทธ๋จ๋ค์ด ์๋์ง
- ํ๊ธฐ๋ ์ด๋ ํ์ง
- ์์ฝ์ ์ด๋ป๊ฒ ํด์ผ ํ๋์ง
๋ฑ๋ฑ ํ์ํ ์ ๋ณด๊ฐ ํ๋ฐ ๋ชจ์ฌ ์์ง ์์, ์ฌ๊ธฐ์ ๊ธฐ ํ๋ซํผ์ ์ฎ๊ฒจ๋ค๋๋ฉฐ ์๋ง์ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ๋ง ํ์ต๋๋ค.
์ ๋ก๊ฐ๋ ๋๋ง์ ํ ํ์คํ ์ด๋ฅผ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋๋ก ๋๋ ์ถ์ฒ ์๋น์ค๋ก
- ์ํ๋ ์กฐ๊ฑด์ ๋ง๊ฒ ์ฌ์ฐฐยทํ๋ก๊ทธ๋จ์ ํ์ํ๊ณ
- ํ๋์ ํ๊ธฐ์ ์ฐธ์ฌ ์ ๋ณด๋ฅผ ํ์ธํ๋ฉฐ
- ์ง๋ ๊ธฐ๋ฐ์ผ๋ก ์์น ์ ๋ณด๋ฅผ ์ป์ด
ํ ๋ฒ์ ์ ์๋ง์ผ๋ก๋ ๋์๊ฒ ๋ฑ ๋ง๋ ํ ํ์คํ ์ด๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค!
์ฑํฌ |
ํ์ฑ |
์๊ฒฝ |
๊ฐํ |
@seong-hui | @Taew00k | @bykbyk0401 | @maylh |
1๏ธโฃ Commit ์ปจ๋ฒค์
ํค์๋: ๋ด์ฉ
- ์์:
init: ์ด๊ธฐ ์ธํ
feat: ๊ธฐ๋ฅ ๊ฐ๋ฐ
Commit ๋ฉ์์ง ์ข ๋ฅ ์ค๋ช
์ ๋ชฉ | ๋ด์ฉ |
---|---|
feat | ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ฒฝ์ฐ |
style | ์ฝ๋ formatting, ์ธ๋ฏธ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ์์ฒด์ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ |
fix | ๋ฒ๊ทธ๋ฅผ ๊ณ ์น ๊ฒฝ์ฐ |
refactor | ์ฝ๋ ๋ฆฌํฉํ ๋ง |
docs | ๋ฌธ์๋ฅผ ์์ ํ ๊ฒฝ์ฐ |
chore | ํจํค์ง ๋งค๋์ ์์ , ๊ทธ ์ธ ๊ธฐํ ์์ ex) .gitignore |
design | CSS ๋ฑ ์ฌ์ฉ์ UI ๋์์ธ ๋ณ๊ฒฝ |
comment | ํ์ํ ์ฃผ์ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ |
rename | ํ์ผ ๋๋ ํด๋ ๋ช ์ ์์ ํ๊ฑฐ๋ ์ฎ๊ธฐ๋ ์์ ๋ง์ธ ๊ฒฝ์ฐ |
remove | ํ์ผ์ ์ญ์ ํ๋ ์์ ๋ง ์ํํ ๊ฒฝ์ฐ |
!BREAKING CHANGE | ์ปค๋ค๋ API ๋ณ๊ฒฝ์ ๊ฒฝ์ฐ |
!HOTFIX | ๊ธํ๊ฒ ์น๋ช ์ ์ธ ๋ฒ๊ทธ๋ฅผ ๊ณ ์ณ์ผ ํ๋ ๊ฒฝ์ฐ |
์ปค๋ฐ ๋ฉ์์ง ์์ฑ ๊ฐ์ด๋๋ผ์ธ
-
์ ๋ชฉ๊ณผ ๋ณธ๋ฌธ์ ๋น ํ์ผ๋ก ๋ถ๋ฆฌ
- ์ปค๋ฐ ์ ํ ์ดํ ์ ๋ชฉ๊ณผ ๋ณธ๋ฌธ์ ํ๊ธ๋ก ์์ฑํ์ฌ ๋ด์ฉ์ด ๋ช ํํ ์ ๋ฌ๋ ์ ์๋๋ก ํ๋ค.
- ๋ณธ๋ฌธ์๋ ๋ณ๊ฒฝํ ๋ด์ฉ๊ณผ ์ด์ ๋ฅผ ์ค๋ช ํ๋ฉฐ, "์ด๋ป๊ฒ"๋ณด๋ค๋ "๋ฌด์"๊ณผ "์"๋ฅผ ์ค์ฌ์ผ๋ก ์์ฑํ๋ค.
-
์ ๋ชฉ ํ์
- ์ ๋ชฉ์ ์ฒซ ๊ธ์๋ ์๋ฌธ์๋ก ์์ํ๋ค.
- ์ ๋ชฉ ๋์ ๋ง์นจํ(
.
)๋ ์ฌ์ฉํ์ง ์๋๋ค. - ์ ๋ชฉ์ ์๋ฌธ ๊ธฐ์ค 50์ ์ด๋ด๋ก ์์ฑํ๋ค.
-
๋ณธ๋ฌธ ์์ฑ
- ๋ณ๊ฒฝํ ๋ด์ฉ๊ณผ ์ด์ ๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ์์ฑํ๋ค.
- "์์ ์ ์ฝ๋๊ฐ ์ง๊ด์ ์ผ๋ก ๋ฐ๋ก ํ์ ํ ์ ์๋ค๊ณ ์๊ฐํ์ง ๋ง์"๋ ์์น์ ๋ฐํ์ผ๋ก ์ค๋ช ์ ๋ช ํํ ํ๋ค.
- ์ฌ๋ฌ ๊ฐ์ง ํญ๋ชฉ์ด ์๋ค๋ฉด ๊ธ๋จธ๋ฆฌ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ ์ฑ์ ๋์ธ๋ค.
2๏ธโฃ Git, Branch ์ ๋ต
feat/#์ด์๋ฒํธ/์ด์์ด๋ฆ
- GitHub-Flow ์ ๋ต + develop
- ๋ธ๋์น ์ด์
feat/#์ด์๋ฒํธ/์ด์์ด๋ฆ
(์ผ๋ฐฅ ์ผ์ด์ค): ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ฉด์ ๊ฐ์๊ฐ ์ฌ์ฉํ ๋ธ๋์นmain
: ์์ ํ ์์ ํ๋ค๊ณ ํ๋จ๋์์ ๋, ์ฆ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ ์ต์ข mergeํ๋ ๋ธ๋์นdevelop
: ๋ฐฐํฌํ๊ธฐ ์ ๊ฐ๋ฐ ์ค์ผ ๋ ๊ฐ์์ ๋ธ๋์น์์ mergeํ๋ ๋ธ๋์น (default ๋ธ๋์น)feat/#์ด์๋ฒํธ/๊ธฐ๋ฅ๋ช
: feature ๋ธ๋์น. ์๋ก์ด ๊ธฐ๋ฅ ๊ฐ๋ฐ. ๊ฐ๋ฐ์ด ์๋ฃ๋๋ฉด develop ๋ธ๋์น๋ก ๋ณํฉfix/#์ด์๋ฒํธ/๊ธฐ๋ฅ๋ช
: feature ๋ธ๋์น ์์ฑ ํ ๋ฒ๊ทธ๊ฐ ์๊ฒผ์ ๋ ์์ ํ๋ ๋ธ๋์น- PR ๋จธ์ง ํ ํก๋ฐฉ ๋ฉ์ธ์ง ๋ณด๋ด๊ธฐ
- approve ์ต์ 2๋ช ์ด์ ๋ฐ์์ผ ๋จธ์ง ๊ฐ๋ฅ
- pull ๋ฐ์์ฌ ๋๋ merge ๋ณด๋ค๋ rebase ์ฌ์ฉ ๊ถ์ฅ
3๏ธโฃ ์ฝ๋ ์ปจ๋ฒค์
-
์ปดํฌ๋ํธ ๋ฐ ํจ์ ๋ค์ด๋ฐ
- ๋ชจ๋ ํ์ดํ ํจ์๋ก ์ ์ธ(rafce)
-
๋ค์ด๋ฐ
- ๋ณ์ ํจ์๋ ์๋ฌธ์ ์นด๋ฉ ์ผ์ด์ค๋ก ์ ์ธ
- ๋ฐฐ์ด์ ๋ณต์ํ์ผ๋ก ์ ์ธ
- ์์๋ ์ค๋ค์ดํฌ ์ผ์ด์ค๋ฅผ ํ์ฉํด ๋๋ฌธ์์ _ ๋ฅผ ์ฌ์ฉํด ์ ์ธ
- ์ปดํฌ๋ํธ๋ ํญ์ ํ์ค์นผ ์ผ์ด์ค๋ก ์ ์ธ
- interface ์ ์ธ: ์ปดํฌ๋ํธ๋ช + props
-
Function
- ํจ์์ ์๋ณ์๋ช ์ ํญ์ ์๋ฉํฑํ๊ฒ ์ ์ธํฉ๋๋ค. (์ด๋ค ๊ธฐ๋ฅ์ ํ๋ ํจ์์ธ์ง ํจ์๋ช ์ ๋ณด๊ณ ์ ์ ์๋๋ก ์ ์ธํฉ๋๋ค.)
- ์ด๋ฒคํธ๋ฅผ ํธ๋ค๋ง ํ๋ ํจ์๋ handle ์ ๋์ฌ๋ฅผ ์ด์ฉํฉ๋๋ค.
- ๋ฐํ๊ฐ์ด boolean ์ธ ํจ์๋ is ์ ๋์ฌ๋ฅผ ํ์ฉํ๋ฉฐ, ์ด๋ค ๊ฐ์ ๋ฆฌํดํ๋ ํจ์๋ get ์ ๋์ฌ๋ฅผ ํ์ฉํฉ๋๋ค.
- ํจ์๋ ํจ์ ํํ์๋ง ์ฌ์ฉํฉ๋๋ค
-
React & TypeScript
-
์ปดํฌ๋ํธ๋ ํญ์ ํ์ค์นผ ์ผ์ด์ค๋ก ์ ์ธํฉ๋๋ค. (์: SmallBanner)
-
Inline Style ์ ํ์ง ์์ต๋๋ค.
-
์คํ์ผ ๋ณ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋จ์ ์์ฑ
-
any ์ฌ์ฉ๊ธ์ง
-
4๏ธโฃ Styling ์ปจ๋ฒค์
- rem ์ฌ์ฉ์ ๊ธฐ๋ณธ์ผ๋ก ํ๋ค.
- border-radius: px๋ก ์ค์
- ๊ธฐ๋ณธ ๊ธ์ ํฌ๊ธฐ 10pt ์ค์
- asset ํ์
- ํ์ํ ์์ด์ฝ ํ์ผ์ Figma์์ svg๋ก export ํ ํ assets/icons (ex. ic_arrow.svg)
- ํ์ํ ์ด๋ฏธ์ง ํ์ผ์ Figma ์์ png๋ก export ํ ํ assets/imagesํด๋์ ๋ฃ๊ธฐ (ex. img_picture.png)
|-- ๐ .github
|-- ๐ node_modules
|-- ๐ public
|-- ๐ src
|-- ๐ apis
|-- ๐ assets
|-- ๐ icons (svgํ์ผ)
|-- ๐ images (pngํ์ผ)
|-- ๐ components
|-- ๐ common
|-- ๐ Button
|-- Button.tsx
|-- Button.css.ts
|-- ๐ constants
|-- ๐ layout
|-- ๐ pages
|-- ๐ route
|-- ๐ styles
|-- ๐ types
|-- App.tsx
|-- main.tsx