๋๋ง์ ์ํ ์ค๋ต๋ ธํธ
Team Delta Front
ํ์์ด ๋ง๋ ์ค๋ต์ ๋ชจ์ ํ์ต ํ๋ฆ์ ๋๊น ์์ด ์ด์ด์ฃผ๋ ๋๋ง์ ์ํ ์ค๋ต๋ ธํธ ํ๋ซํผ
์ธ๋ชจ๋ ์ค๋ต์ ๋จ์ํ โ์ ์ฅโํ๋ ์๋น์ค๊ฐ ์๋๋ผ, ์ค๋ต์ ๋ค์ ํ๊ณ ์ ๋ฆฌํ๋ ๊ณผ์ ์ ์ต๊ด์ผ๋ก ๋ง๋ค ์ ์๊ฒ ๋๋ ํ์ต ๊ณต๊ฐ์
๋๋ค.
๋ฑ๋ก โ ํ์ธ โ ๋ณต์ต โ ์๊ฐํ๊น์ง ํ ํ๋ฆ์ผ๋ก ์ฐ๊ฒฐํด, ์ค๋ต ์ ๋ฆฌ๊ฐ ์ค์ ์ค๋ ฅ ํฅ์์ผ๋ก ์ด์ด์ง๋๋ก ์ค๊ณํ์ต๋๋ค.
์ค๋ต์ด ์์ด๋ฉด, ๋ค์ ํ๊ณ ์ ๋ฆฌํ ์ด์ ๊ฐ ์๊ธฐ๊ณ
๊ทธ ๊ณผ์ ์ด ๋ฐ๋ณต๋๋ฉด ๊ณต๋ถ๊ฐ โ์ง์๋๋โ ๊ฒฝํ์ผ๋ก ๋ฐ๋๋๋ค.
- ์ค๋ต์ ์ ํ์ด ์๋๋ผ ์ ํ๋ ธ๋์ง๊น์ง ํํค์ณ์ ๋ณด์ฌ์ค์.
- ํ์ํ ์ค๋ต๋ง ์์! ์ํ์ง PDF๋ก ๋ง๋ค์ด์.
- ์ค๋ต์ด ์๋ ํ๋ฆฐ ์ด์ ๋ฅผ ๋ช
ํํ ์๋ ค์ค์.
- ์ ์ฌ ๋ฌธ์ ๋ก ์์ ํ ์ต์ํด์ง ๋๊น์ง ํ์ด์.
- ํ์ฌ ๊ธฐ์ค ์์ ์ ์์ ๋ค์ ํ์ต ๋ชฉํ๋ฅผ ์๋ ค์ค์.
| ๋ฐฅ๋น | ๋น๋น |
|---|---|
![]() |
![]() |
| ์ค์์ | ๊น์คํ |
| ์ญํ | ์ข ๋ฅ |
|---|---|
| Monorepo / Workspace | |
| Framework | |
| Library | |
| Programming Language | |
| Data Fetching / HTTP | |
| Styling | |
| UI Docs / Visual Testing | |
| Testing | |
| Linting / Formatting | |
| CI / Deployment (CD) |
ํ ์์ฐ์ฑ์ ์ํด โ์์ธก ๊ฐ๋ฅํ ๊ท์นโ์ ์ฐ์ ํฉ๋๋ค. ์์ ์ ์ด์ ๊ธฐ๋ฐ์ผ๋ก ๋ถ๋ฆฌํ๊ณ , PR ๋จ์๋ก ๊ณต์ /๋ฆฌ๋ทฐ/๋จธ์งํฉ๋๋ค.
์ฐ๋ฆฌ ๋ธ๋์น ์ ๋ต์ GitHub Flow ๊ธฐ๋ฐ + develop ํตํฉ ๋ธ๋์น ๋ฐฉ์์ ๋๋ค.
- develop: ๊ฐ๋ฐ์ฉ(ํตํฉ ๋ธ๋์น) โ ๋ชจ๋ ์์ ๋ธ๋์น๋ develop๋ก PR ํ ๋จธ์ง
- main: ๋ฐฐํฌ์ฉ(๋ฆด๋ฆฌ์ฆ ๋ธ๋์น) โ ๋ฐฐํฌ ์์ ์๋ง develop โ main ๋จธ์ง
์ด์ ๊ธฐ๋ฐ์ผ๋ก ๋ธ๋์น๋ฅผ ์์ฑํ๋ฉฐ, ๋ธ๋์น๋ช ์ ์๋ ๊ท์น์ ๋ฐ๋ฆ ๋๋ค.
| ๋ธ๋์น | ์ฉ๋ | ๊ท์น / ์์ |
|---|---|---|
develop |
๊ฐ๋ฐ์ฉ(ํตํฉ) | ๋ชจ๋ ์์ ๋ธ๋์น๋ develop๋ก PR |
main |
๋ฐฐํฌ์ฉ(๋ฆด๋ฆฌ์ฆ) | ๋ฐฐํฌ ์์ ์๋ง develop โ main |
feat/#<issue>/<name> |
๊ธฐ๋ฅ ์์ | feat/#1/card |
fix/#<issue>/<name> |
๋ฒ๊ทธ ์์ | fix/#12/splash-redirect |
refactor/#<issue>/<name> |
๋ฆฌํฉํ ๋ง | refactor/#2/my-page |
style/#<issue>/<name> |
์คํ์ผ/ํฌ๋งท | style/#31/import-order |
test/#<issue>/<name> |
ํ ์คํธ | test/#18/bar-graph-utils |
chore/#<issue>/<name> |
์ค์ /์ก๋ฌด | chore/#7/commitlint |
PR ์ ๋ชฉ์ ์๋ ํ์์ผ๋ก ์์ฑํฉ๋๋ค.
Type: ์์ ๋ด์ฉType์ ์ ๊ธ์ ๋๋ฌธ์๋ก ํต์ผํฉ๋๋ค. ์)Feat: ํ ๊ทธ๋ํ ๋ชจ์ ์ถ๊ฐ,Fix: ์คํ๋์ ์ฌ๋ ธ์ถ ๋ฌธ์ ํด๊ฒฐ
PR์ ์๋ ํ ํ๋ฆฟ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฅํ ์์ธํ๊ฒ ์์ฑํฉ๋๋ค.
<!---- 'Closes #'๋ค์์ ์๋ฃํ ์ด์ ๋๋ฒ๋ฅผ ์์ฑํด ์ฃผ์ธ์. ex) Closes #4 !-->
## ๐ ๊ด๋ จ ์ด์
Closes #
## ๐ก ์์
๋ด์ฉ
## ๐ฌ ์ํ๋ ๋ฆฌ๋ทฐ ๋ฐฉ์(์ ํ)
## ๐ธ Screenshots or Video(์ ํ)- UI ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ ์คํฌ๋ฆฐ์ท ํ์
- ์ธํฐ๋ ์ /ํ๋ฆ์ด ์ค์ํ ๊ฒฝ์ฐ ์์ ๋๋ GIF ๊ถ์ฅ
- ๋ฆฌ๋ทฐ์ด์๊ฒ ๋ถํํ๊ณ ์ถ์ ์ /ํ์ธ์ด ํ์ํ ๋ถ๋ถ/๋์์ด ํ์ํ ๋ถ๋ถ์ โ์ํ๋ ๋ฆฌ๋ทฐ ๋ฐฉ์โ์ ์ฃผ์ ํ์ง ๋ง๊ณ ์์ฑํฉ๋๋ค.
- ๋ฆฌ๋ทฐ/๋จธ์ง ์ ์ ๋ผ๋ฒจ์ ๊ผญ ๋ฌ์ ์ฃผ์ธ์.
- ์์ ๋ด๋น์์ ์์ ์ฑ๊ฒฉ์ ์ถํ ํํฐ๋งํ ์ ์์ด์.
์ต์ 1๋ช ์น์ธ(Approve) ํ merge ๊ฐ๋ฅํฉ๋๋ค. ๊ฐ๋ฅํ ํ PR ๋จ์๋ฅผ ์๊ฒ ์ ์งํด ๋ฆฌ๋ทฐ ๋ถ๋ด์ ๋ฎ์ถฅ๋๋ค. merge๋ ๋ธ๋์น๋ ๋ฐ๋ก ์ญ์ ํ์ฌ ๋ถํ์ํ ๋ธ๋์น๊ฐ ๋์ ๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
์๋ ํฌ๋งท์ ์ฌ์ฉํฉ๋๋ค.
type: ์์ ๋ด์ฉ- ์:
fix: ~~ ๋ฒ๊ทธ ์์ ,feat: ~~ ๊ธฐ๋ฅ ๊ตฌํ
| Type | ์ค๋ช | ์์ |
|---|---|---|
โจ feat |
๊ธฐ๋ฅ ๊ตฌํ / ์ ๊ท ๊ธฐ๋ฅ ์ถ๊ฐ | feat: ํ ๊ทธ๋ํ ๋ชจ์
์ถ๊ฐ |
๐ fix |
๋ฒ๊ทธ ์์ | fix: ์คํ๋์๊ฐ ๋ก๊ทธ์ธ ๋ฆฌ๋ค์ด๋ ํธ ํ ๋ค์ ๋จ๋ ๋ฌธ์ ์์ |
๐ docs |
๋ฌธ์ ์์ (README/Wiki/๊ฐ์ด๋ ๋ฑ) | docs: PR ํ
ํ๋ฆฟ ์ถ๊ฐ |
๐จ style |
ํฌ๋งท/์คํ์ผ ๋ณ๊ฒฝ(๋์ ๋ณํ ์์) | style: import ์ ๋ ฌ ๋ฐ ํฌ๋งท ์ ๋ฆฌ |
๐งช test |
ํ ์คํธ ์ถ๊ฐ/์์ | test: ๊ทธ๋ํ ์ ํธ ํ
์คํธ ์ถ๊ฐ |
๐งน chore |
์ค์ /์ก๋ฌด(๊ธฐ๋ฅ๊ณผ ์ง์ ๊ด๋ จ ์์) | chore: husky ์ค์ ์ถ๊ฐ |
๐๏ธ build |
๋น๋/๋ฒ๋ค/๋ฐฐํฌ ๊ด๋ จ ๋ณ๊ฒฝ | build: next ๋น๋ ์ค์ ์์ |
๐งฉ refactor |
๋ฆฌํฉํ ๋ง(๋์ ๋ณํ ์์ด ๊ตฌ์กฐ ๊ฐ์ ) | refactor: bar graph ๋ชจ์
๋ก์ง ํ
์ผ๋ก ๋ถ๋ฆฌ |
์ฐ๋ฆฌ ํ์ ์ฝ๋ ํ์ง๊ณผ ์ ์ง๋ณด์์ฑ์ ๋์ด๊ธฐ ์ํด ๊ธฐ๋ณธ ์ฝ๋ฉ ์ปจ๋ฒค์ ์ ์ ๋ฆฌํฉ๋๋ค. ๋ชจ๋ ์ ๊ท/์์ ์ฝ๋๋ ๋ณธ ๊ท์น์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐ๋ฅด๋ฉฐ, ์์ธ๊ฐ ํ์ํ ๊ฒฝ์ฐ PR์์ ๊ทผ๊ฑฐ๋ฅผ ํจ๊ป ๋จ๊น๋๋ค.
TypeScript ๊ธฐ๋ฐ์ผ๋ก ์์ฑํ๊ณ , ์คํ์ผ์ Vanilla Extract(.css.ts)๋ง ์ฌ์ฉํฉ๋๋ค.
์ ๋ ๊ฒฝ๋ก import๋ฅผ ์ฌ์ฉํ๋ฉฐ, index๋ฅผ key๋ก ์ฐ์ง ์์ต๋๋ค. var ํค์๋๋ ๊ธ์งํฉ๋๋ค.
๋ํ ๊ณตํต(shared) ์ฝ๋๋ ํน์ ํ์ด์ง/๋๋ฉ์ธ์ ๊ฐํ๊ฒ ์์กดํ์ง ์๋๋ก ์ค๊ณํ์ฌ ๊ฒฐํฉ๋๋ฅผ ๋ฎ๊ฒ ์ ์งํฉ๋๋ค. ์ ์ญ ์ํ ์ ๊ทผ์ด๋ ์ฌ์ด๋ ์ดํํธ๋ ์ต์ํํ๊ณ , ํ์ ์ props/์ธํฐํ์ด์ค๋ก ์ฃผ์ ํด ๊ต์ฒด ๊ฐ๋ฅ์ฑ์ ํ๋ณดํฉ๋๋ค.
๐ท๏ธ ๋ค์ด๋ฐ ์ปจ๋ฒค์
| ๋์ | ๊ท์น | ์์ |
|---|---|---|
| ํด๋/ํ์ผ๋ช | kebab-case | bar-graph-01.tsx, use-bar-graph-motion.ts |
| ์ปดํฌ๋ํธ/ํ์ | PascalCase | BarGraph01, CardGraph01Props |
| ๋ณ์/ํจ์ | camelCase | handleClick, isActive |
| ์์ | BIG_SNAKE_CASE | GRAPH_TABS, STATE_KEY |
| Props ํ์ | ์ปดํฌ๋ํธ๋ช
+ Props |
ButtonProps, AnswerSectionProps |
| API ์๋ต ํ์ | XXXResponse |
GetUserListResponse |
| ํจ์ ์ ๋์ฌ | ์๋ฏธ์ ๋ง๋ ์ ๋์ฌ ์ฌ์ฉ | get/create/check/handle/is/has/can... |
| TanStack Query ํ | use + ํ์ + ๋์ + Query/Mutation |
useGetUserListQuery, usePostCommentMutation |
โ๏ธ React ์ปดํฌ๋ํธ ๊ท์น
์ปดํฌ๋ํธ๋ ์ ๊ทผ์ฑ์ ๊ธฐ๋ณธ์ผ๋ก ๊ณ ๋ คํฉ๋๋ค. ๋ฒํผ/ํญ/๋ค์ด์ผ๋ก๊ทธ ๋ฑ ์ํธ์์ฉ ์์๋ ์ ์ ํ role๊ณผ aria ์์ฑ์ ์ ๊ณตํ๊ณ , ํด๋ฆญ ๊ฐ๋ฅํ ์์๋ ํค๋ณด๋ ์กฐ์ ๊ฐ๋ฅํด์ผ ํฉ๋๋ค.
๋ ๋ ์ฑ๋ฅ์ ์ํด ๋ถํ์ํ ์ฌ๋ ๋๋ฅผ ํผํ๊ณ , useMemo, useCallback, React.memo๋ โํจ๊ณผ๊ฐ ๋ช
ํํ ๊ฒฝ์ฐ์๋งโ ์ ์ฉํฉ๋๋ค.
๋ฆฌ์คํธ ๋ ๋๋ง ์ key๋ ๋ฐ๋์ ์์ ์ ์ธ ์๋ณ์(id)๋ฅผ ์ฌ์ฉํฉ๋๋ค. index key๋ ๊ธ์งํฉ๋๋ค.
๐จ ์คํ์ผ๋ง ๊ท์น (Vanilla Extract)
์คํ์ผ์ ๋ฐ๋์ .css.ts์์ ์ ์ํ๊ณ , ๋์์ธ ํ ํฐ์ ์ฐ์ ์ฌ์ฉํฉ๋๋ค.
์ปดํฌ๋ํธ ์ํ๋ ํ์
๋ณํ๋ recipe์ variant๋ก ํํํ๊ณ , ๋ถํ์ํ๊ฒ ์ค๋ณต๋๋ style ์ ์ธ์ ์ ๊ฑฐํฉ๋๋ค.
๋ฐ์ํ์ @media, @container ๋ฑ์ ์ฌ์ฉํ๋, ๋์ผ ํจํด์ด ๋ฐ๋ณต๋๋ฉด ๊ณตํต ์์/์ ํธ๋ก ์น๊ฒฉํฉ๋๋ค.
๐ช Hooks ๊ท์น
์ปค์คํ
ํ
์ ํ์ผ๋ช
/ํจ์๋ช
์ด ๋ฐ๋์ use*๋ก ์์ํด์ผ ํฉ๋๋ค.
ํ
์ด ๋ก๋ฉ/์๋ฌ ์ํ๋ฅผ ๋ค๋ฃฌ๋ค๋ฉด ํธ์ถ๋ถ์์ ์ํ๋ฅผ ๋ช
ํํ ๊ตฌ๋ถํ ์ ์๋๋ก ์ค๊ณํฉ๋๋ค.
์ ๋ค๋ฆญ ํ
์ ํ์
๋งค๊ฐ๋ณ์ ๊ธฐ๋ณธ๊ฐ์ด ์ ์ ํ์ง ๊ฒํ ํ๊ณ , TanStack Query ํ
์ ๋ค์ด๋ฐ ์ปจ๋ฒค์
(use + ํ์ + ๋์ + Query/Mutation)์ ๋ฐ๋ฆ
๋๋ค.
๐ API ๊ท์น
API ์ฝ๋๋ TanStack Query ํตํฉ์ ์ ์ ๋ก ์์ฑํ๋ฉฐ, QueryKey Factory ์ฌ์ฉ์ ๊ถ์ฅํฉ๋๋ค.
์๋ต ํ์
์ ์ ๋ค๋ฆญ/๋ถ๋ณ ๋ฐ์ดํฐ ๊ธฐ์ค์ผ๋ก ํ์
์์ ์ฑ์ ํ๋ณดํ๊ณ , ๋ค์ด๋ฐ์ HTTP๋ฉ์๋ + ๋ช
์ฌ ํํ๋ฅผ ๋ฐ๋ฆ
๋๋ค(getUserList, postComment ๋ฑ).
async/await ํจํด์ ํ๋ก์ ํธ ๋ด์์ ์ผ๊ด๋๊ฒ ์ ์งํฉ๋๋ค.
๐งญ ๋ผ์ฐํ ๊ท์น
๋ผ์ฐํ ๊ตฌ์กฐ๋ ์ค์ฒฉ ๋ ์ด์์๊ณผ ์๋ฌ ๊ฒฝ๊ณ๋ฅผ ์ ์ ํ ํ์ฉํฉ๋๋ค. ๋์ import ๊ธฐ๋ฐ ์ฝ๋ ์คํ๋ฆฌํ ์ ๊ณ ๋ คํด chunk ๋ถ๋ฆฌ๋ฅผ ๊ฒํ ํ๊ณ , ๋ผ์ฐํธ ์ ํ ์ ์ํ ๋ณด์กด์ด ํ์ํ ๊ฒฝ์ฐ ์ ๋ต์ ๋ช ํํ ํฉ๋๋ค.
๐ง ์์ ๊ท์น
์์๋ BIG_SNAKE_CASE๋ก ์์ฑํ๊ณ export const๋ก ๋ด๋ณด๋
๋๋ค.
์๋ฏธ ์๋ ์ด๋ฆ์ ์ฌ์ฉํ๋ฉฐ, ๋ฆฌํฐ๋ด์ as const๋ก ํ์
์ ์ขํ ์์ ์ฑ์ ํ๋ณดํฉ๋๋ค.
๐ก๏ธ ๋ณด์/์ฑ๋ฅ ์ฒดํฌ
๋ฏผ๊ฐํ ๊ฐ(API ํค/์ํฌ๋ฆฟ ๋ฑ)์ ํ๋์ฝ๋ฉํ์ง ์๊ณ ํ๊ฒฝ ๋ณ์๋ก ๊ด๋ฆฌํฉ๋๋ค.
์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ ๋๋ โ์ ํ์ํ์งโ์ โ๋์ฒด ๊ฐ๋ฅ์ฑ/๊ต์ฒด ์ฉ์ด์ฑโ์ PR์ ๋จ๊น๋๋ค.
์ฑ๋ฅ ์ต์ ํ ๋๊ตฌ(memo, useMemo, useCallback)๋ ๊ทผ๊ฑฐ๊ฐ ์๋ ๊ณณ์๋ง ์ ์ฉํฉ๋๋ค.
๐ Storybook ๊ท์น
์คํ ๋ฆฌ ํ์ผ์ ๊ฐ๋ฅํ ํ props ๋ณํ์ ์ถฉ๋ถํ ์ปค๋ฒํ๋๋ก ์์ฑํฉ๋๋ค. ์ฃผ์ variant, disabled/active ์ํ, edge case ๊ฐ(๋น ๊ฐ/์ต๋์น/์ต์์น ๋ฑ)์ ํฌํจํด ์ปดํฌ๋ํธ ์ฌ์ฉ ๋ฒ์๋ฅผ ๋ฌธ์ํํฉ๋๋ค.
PR์ด develop, main์ ์ฌ๋ผ์ค๋ฉด ์๋ ์ฒดํฌ๊ฐ ์๋ ์ํ๋ฉ๋๋ค.
linttypechecktestbuild
๋ฐฐํฌ๋ Vercel๋ก ์ด์ํฉ๋๋ค.
(๋ฐฐํฌ ํ๋ก์ฐ๋ ํ ์ ์ฑ
์ ๋ง๊ฒ develop/main ๊ธฐ์ค์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค.)
Delta-front Wiki ์ธ๋ชจ ยท ๋๋ง์ ์ํ ์ค๋ต๋ ธํธ
Home ยท CI/CD ยท Convention ยท Troubleshooting


