๋น์ ์ ํ๋ฒํ ํ๋ฃจ์ ํน๋ณํ ํ๋ง์ ๋ํด๋ณด์ธ์.
โ์ ๋ก๊ฐโ๋ ํ ํ์คํ ์ด๋ฅผ ์์ํ๊ณ ์ถ์ง๋ง, ๋ณต์กํ ํ์์ ์ด๋ ค์์ ๋๋ผ๋ ๋ถ๋ค์ ์ํ ์๋น์ค์ ๋๋ค.
๊ฐ์ธ์ ์ทจํฅ๊ณผ ๋ชฉ์ ์ ๋ง๋ ํ ํ์คํ ์ด๋ฅผ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋ฐ๊ฒฌํ ์ ์๋๋ก ์๋ดํฉ๋๋ค.
์ฑํฌ |
ํ์ฑ |
์๊ฒฝ |
๊ฐํ |
@seong-hui | @Taew00k | @bykbyk0401 | @maylh |
๋ก๊ทธ์ธ/์จ๋ณด๋ฉ ๋ทฐ
โข ์นด์นด์ค ์์
๋ก๊ทธ์ธ ํ ์จ๋ณด๋ฉ ๊ณผ์ ์งํ
โข ์ด 4๊ฐ์ง ๋จ๊ณ
โข ๋์ด, ์ฑ๋ณ ๋จ๊ณ๋ ํ์ ํด๋ฆญ
โข ์ข
๊ต, ์ด์ฉ๊ฒฝํ ๋จ๊ณ๋ ํจ์ค ๊ฐ๋ฅ
โข ์๋ก๊ณ ์นจ ์ ํ์ฌ ๋จ๊ณ์ ์ ๋ณด ์๋ก๊ณ ์นจ
โข ์ด์ , ์ดํ ๋จ๊ณ์ ์ ํ๊ฐ ๊ธฐ์ต
ํํ์ด์ง ๋ทฐ
โข ๊ฒ์ ์์ด์ฝ ํด๋ฆญ ์ ๊ฒ์ ํ์ด์ง๋ก ์ด๋
โข ๋ง์ด ์์ด์ฝ ํด๋ฆญ ์ ๋ง์ดํ์ด์ง๋ก ์ด๋
โข ์์ ์์ด์ฝ ํด๋ฆญ ์ ์์๋ฆฌ์คํธ ํ์ด์ง๋ก ์ด๋
โข ๋๋ฌ๋ณด๊ธฐ : ์ ์ฒด๊ฒ์ ํํฐ ๊ฒ์ํ์ด์ง๋ก ์ด๋
โข ์ง์ญ ์ ํ ์ ์ง์ญ ํํฐ๋ง ํ์ด์ง๋ก ์ด๋
โข ํ ํ์คํ ์ด ์๊ฐ ํ๋ ์ด์
โข ์ธ๊ธฐ ํ ํ์คํ ์ด ์บ๋ฌ์
โข ๋ก๊ทธ์ธํ์ง ์์ ํ์์ด ์บ๋ฌ์ ๋ด ์ฐํ๊ธฐ ๋ฒํผ ํด๋ฆญ ์ ๋ก๊ทธ์ธ ์๋ด ๋ชจ๋ฌ์ฐฝ ์์ฑ
โข ๋ก๊ทธ์ธ ํ์์ด ์ฐํ๊ธฐ ๋ฒํผ ํด๋ฆญ ์ ์์์ ์ถ๊ฐ
๊ฒ์ ๋ทฐ
โข ๊ฒ์ ์ฐฝ์ ๊ฒ์์ด ์ ๋ ฅ ์ ๊ฒ์ ๊ฒฐ๊ณผ ๋ฆฌ์คํธ
ย ย ย ย โฆ ํด๋น๋๋ ๊ฒ์ ๊ฒฐ๊ณผ ์์ผ๋ฉด empty๋ทฐ
โข ํํฐ๋ง ์ฌ๋ผ์ด๋ ํด๋ฆญ ์ ํํฐ๋ง ํ์ด์ง๋ก ์ฐ๊ฒฐ
โข ๊ฒ์ ์์ด์ฝ ๋๋ฅด๋ฉด ๊ฒ์ ํ์ด์ง๋ก ์ด๋
ย ย ย ย โฆ ์ต๊ทผ ๊ฒ์์ด ๋์ด(10๊ฐ)
ย ย ย ย โฆ ์ ์ฒด ์ญ์ ๊ฐ๋ฅ
ย ย ย ย โฆ ์ด์ ๊ณผ ๋์ผํ ๊ฒ์์ด ์ ๋ ฅ ์ ์ต๊ทผ ๊ฒ์์ด๋ก ๋๊ธฐํ
ย ย ย ย โฆ ์ต๊ทผ ๊ฒ์์ด ๋ฒํผ ๋๋ฅด๋ฉด ํด๋น ๊ฒ์์ด ๊ฒ์ ๊ฒฐ๊ณผ ๋ฆฌ์คํธ๋ก ์ฐ๊ฒฐ
โข ๋ก๊ทธ์ธํ์ง ์์ ํ์์ด ๊ฒฐ๊ณผ ๋ฆฌ์คํธ ๋ด ์ฐํ๊ธฐ ๋ฒํผ ํด๋ฆญ ์ ๋ก๊ทธ์ธ ์๋ด ๋ชจ๋ฌ์ฐฝ ์์ฑ
โข ๋ก๊ทธ์ธ ํ์์ด ์ฐํ๊ธฐ ๋ฒํผ ํด๋ฆญ ์ ์์์ ์ถ๊ฐ
ํํฐ๋ง ๋ทฐ
โข ์๋จ์ ํํฐํ์ ํด๋ฆญ ์ ํด๋น ํ์ ์ผ๋ก ํ๋ฉด ์ด๋
โข ๊ฐ๊ฒฉ ๋ฒ์ ์ ์ ๋ฐ ๊ตฌํ
โข ๋ฒํผ ํด๋ฆญ ์ ํด๋น ํํฐ ์ ์ฉ๋ ๊ฒ์ ๊ฒฐ๊ณผ ํ์ด์ง๋ก ์ด๋
์์ธํ์ด์ง ๋ทฐ
โข ํ ํ์คํ ์ด ์นด๋ ํด๋ฆญ ์ ์์ธ ์ ๋ณด ํ์ด์ง๋ก ์ด๋
โข ๋ชฉ๋ก ํญ๋ฐ ์ฌ๋ผ์ง๋ฉด ์๋จ์ ๊ณ ์ ๋๋๋ก ๊ตฌํ
โข ๋ชฉ๋ก ๋๋ฅด๋ฉด ํด๋น ์นดํ ๊ณ ๋ฆฌ๋ก ์ด๋
โข ๋ชฉ๋ก ๊ฒฐ๊ณผ๊ฐ ์์ ๊ฒฝ์ฐ ์ ๋ณด ์์ ๋์ฐ๊ธฐ
โข ์ธ๋ค์ผ ์ด๋ฏธ์ง ์์ ๊ฒฝ์ฐ empty ์ด๋ฏธ์ง
โข ๋ฆฌ๋ทฐ ์คํฌ๋กค
โข ํ ํ์คํ ์ด ์ ๋ณด ๋๋ณด๊ธฐ, ์ ์ด๋๊ธฐ ๊ตฌํ
โข ๋ค์ด๋ฒ ์ง๋ ์ฐ๊ฒฐ
โข ๋ก๊ทธ์ธํ์ง ์์ ํ์์ด ํด๋น ํ ํ์คํ ์ด ์ฐํ๊ธฐ ๋ฒํผ ํด๋ฆญ ์ ๋ก๊ทธ์ธ ์๋ด ๋ชจ๋ฌ์ฐฝ ์์ฑ
โข ๋ก๊ทธ์ธ ํ์์ด ์ฐํ๊ธฐ ๋ฒํผ ํด๋ฆญ ์ ์์์ ์ถ๊ฐ
์์๋ฆฌ์คํธ ๋ทฐ
โข ํํ์ด์ง ํค๋ ์์ ์์ด์ฝ ํด๋ฆญ ์ ์์๋ฆฌ์คํธ๋ก ์ด๋
โข ๋ก๊ทธ์ธํ์ง ์์ ํ์์ด ์์ ์์ด์ฝ ํด๋ฆญ ์ ๋ก๊ทธ์ธ ์๋ด ํ์ด์ง๋ก ์ด๋
โข ์์๋ฆฌ์คํธ๊ฐ ์๋ ๊ฒฝ์ฐ empty ๋ทฐ ๋์ฐ๊ธฐ
โข ์์ ์ทจ์ ์ ๋ฐ๋ก ๋ฐ์๋์ง ์๊ณ ๋ค๋ฅธ ํ์ด์ง๋ ์๋ก๊ณ ์นจ ์ ๋ฐ์
ย ย ย ย โฆ ์์๋ฆฌ์คํธ ํ์ด์ง ๋ด์์ ์์ ์ทจ์, ์ฌ์ ํ ๊ฐ๋ฅ
๋ง์ดํ์ด์ง ๋ทฐ
โข ํํ์ด์ง ํค๋ ๋ง์ด ์์ด์ฝ ํด๋ฆญ ์ ๋ง์ดํ์ด์ง๋ก ์ด๋
โข ๋ก๊ทธ์ธํ์ง ์์ ํ์์ด ๋ง์ด ์์ด์ฝ ํด๋ฆญ ์ ๋ก๊ทธ์ธ ์๋ด ํ์ด์ง๋ก ์ด๋
โข ๋ก๊ทธ์์ ํด๋ฆญ ์ ๋ชจ๋ฌ์ฐฝ ์์ฑ
โข ํํด ํด๋ฆญ ์ ๋ชจ๋ฌ์ฐฝ ์์ฑ
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