-
-
Notifications
You must be signed in to change notification settings - Fork 3
Conventions
hyoseong edited this page Feb 22, 2026
·
74 revisions
์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํ๋ฉด์ ํ์ ๊ฐ์ ํฉ์ํ ๊ฐ๋ฐ ๊ด์ต์ ๋ฌธ์ํํฉ๋๋ค. ํญ์ ์ต์ ์ ์ํ๋ฅผ ์ ์งํ๊ธฐ ์ํด์ ํ์ ๋ชจ๋ ๋ ธ๋ ฅํด์ฃผ์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
- ๋ฌด๋ฃ ํ๋ก์ ํธ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ธ ๊นํ๋ธ ํ๋ก์ ํธ๋ฅผ ํตํด์ ์ด์(Jira์ ํฐ์ผ ๊ฐ๋ )๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- ์ด์๋ฅผ ์์ฑํ ๋๋ ์ด์ ์ ํ(Type)์ ๋ฐ๋์ ์ ํํด์ฃผ์๊ณ , ํ๋ก์ ํธ์ ์ถ๊ฐ ํ ์ฐ์ ์์(Priority)์ ์์ ์์ ์๊ฐ(Est)๋ฅผ ํจ๊ป ๋ฃ์ด์ฃผ์ธ์.
- ์ด์๋ฅผ ์์ฑํ ๋๋ ์คํ๋ฆฐํธ(Sprint)์ ์ํ(Status)๋ ๋น์๋์ด ์ผ๋จ ๋ฐฑ๋ก๊ทธ(Backlog)์ ๋๋๋ก ํฉ๋๋ค.
- ์ด์๋ ํ ํ์ ๋ Grooming, Triage, Planning ๊ณผ์ ์ ๊ฑฐ์น ํ์ ์คํ๋ฆฐํธ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์์น์ ๋๋ค.
- ๊ธด๊ธ ์ด์๊ฐ ์๊ฑฐ๋ ์คํ๋ฆฐํธ์ To Do ์ด์๊ฐ ์์ง๋์์ ๋๋ ๋์ค์ฝ๋์์ ์ํต ํ์ ํ์ฌ ์คํ๋ฆฐํธ์ ์ถ๊ฐํด์ฃผ์ธ์.
- ์์จ์ ์ธ ํ์ ๊ณผ ์๋ฐ์ ์ธ ๊ธฐ์ฌ๋ฅผ ์ํด์ ํน๋ณํ ์ฌ์ ๊ฐ ์๋ค๋ฉด ์ด์๋ฅผ ์์ฑํ ๋ ๋ด๋น์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค.
- ์ด์์ ์ํ๋ ์คํ๋ฆฐํธ์ ์ถ๊ฐ๋์์ ๋ ๋ถํฐ To Do๋ก ์ค์ ํด์ฃผ์ธ์.
- ์์ ์ ์์ํ์๋ฉด ์ด์์ ์ํ๋ฅผ ๋ฐ๋์ In Progress๋ก ์ฎ๊ฒจ์ฃผ์ธ์. (๋ง์ด ๊น๋จน๋ ๋ถ๋ถ์ ๋๋ค.)
- ์ด์๊ฐ ์ฐ๊ฒฐ๋ Pull Request๊ฐ ๋ณํฉ๋๋ฉด ์ด์๋ ์๋์ผ๋ก Done ์ํ๋ก ์ ํ๋ฉ๋๋ค.
- ๋์์ 2๊ฐ ์ด์์ ์ด์๋ฅผ ํ ๋นํ์ง ์๋๋ก ์ฃผ์ํด์ฃผ์ธ์. WIP๊ฐ 2๋ณด๋ค ์ปค์ง๋ฉด ํ์ ๋ฆฌ๋ทฐ ๋ถ๋ด์ด ์ปค์ง๊ฒ ๋ฉ๋๋ค.
- PM์ด ๊ตฌํด์ง ๋ ๊น์ง ๋ชจ๋๊ฐ PM์ด๋ผ๋ ๋ง์๊ฐ์ง์ผ๋ก ํ๋ก์ ํธ์ ์ํด์ฃผ์ธ์. ์ค์ค๋ก ํฐ์ผ์ ์์ฑํ๊ณ ์๊ตฌ ์ฌํญ์ ์์ธํ ์์ฑํด์ฃผ์ธ์.
- ์๋ธ ์ด์๋ Spike ํฐ์ผ์์ ํ์๋ Action ํฐ์ผ์ ํํด ์ฌ์ฉํฉ๋๋ค.
- ์๋ธ ์ด์๊ฐ ์๋ฃ๋์ง ์์๋, ์์ Spike ํฐ์ผ(Parent Issue)์ ์๋ฃ ์ฒ๋ฆฌ๋ ์ ์์ต๋๋ค.
-
ํ๋ก์ ํธ ๋ณด๋์์
To Do์ํ์ ํฐ์ผ์ ์ ํํ๊ณ ๋ณธ์ธ์๊ฒ ํ ๋นํฉ๋๋ค. - ํ๋ก์ ํธ ์ค์
- ๋จผ์ ํ๋ก์ ํธ ์ค์ ๊ฐ์ด๋๋ฅผ ์๋ฃํฉ๋๋ค.
- ๋ธ๋์น ์์ฑ
-
main๋ธ๋์น์์ ์๋ก์ด feature ๋ธ๋์น๋ฅผ ์์ฑํฉ๋๋ค. - ๋ธ๋์น ์ด๋ฆ์๋
-,_์ธ์ ํน์๋ฌธ์ ์ฌ์ฉ์ ์ ํ๋ฉ๋๋ค.
์ฐธ๊ณ ์ด์
- ๊ธฐ๋ฅ ๊ตฌํ ๋ฐ ์ปค๋ฐ
- ๋ธ๋์น ๋ด์์ ์์ค ์ฝ๋๋ฅผ ์์ ํ๊ณ ์ปค๋ฐํฉ๋๋ค.
- ๋ณ๊ฒฝ์ด ๋ชจ๋ ์๋ฃ๋๋ฉด ํฌํฌ๋ฐ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ธ๋์น๋ฅผ ํธ์ํฉ๋๋ค.
- ํ ์คํธ ์์ฑ
- ๊ธฐ์ฌํ ์ฝ๋๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋์ง ํ์ธํ ์ ์๋ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
- PR ์์ฑ
- Pull Requests ํ์ด์ง์์ ์๋ก์ด PR์ ์์ฑํฉ๋๋ค.
- PR์ ์ ๋ชฉ๊ณผ ์ค๋ช ์ ๊ฐ๊ธ์ ํ๊ตญ์ด๋ก ์์ฑํด์ฃผ์ธ์. ์ด์ ์ ๋ชฉ๊ณผ ์ผ์นํด์ฃผ๋ฉด ๋์ค์ ์ฐพ๊ธฐ๊ฐ ํธํฉ๋๋ค.
- PR์ด ๋ฑ๋ก๋ ์ด์์ ์ฐ๊ด๋์ด ์๋ค๋ฉด, PR ์์ฑ ํ ์ค๋ฅธ์ชฝ ์ฌ์ด๋๋ฐ์
Developmentํญ๋ชฉ์์ ํด๋น ์ด์๋ฅผ ์ ํํด ์ฐ๊ฒฐํด์ฃผ์ธ์.
- PR ๋ฆฌ๋ทฐ ๋ฐ ๋ณํฉ
- ์ต์ ํ ๋ช ์ด์์ ๊ด๋ฆฌ์๊ฐ PR์ ๊ฒํ ํ๊ณ ์ฝ๋ฉํธ๋ฅผ ๋จ๊น๋๋ค.
- ๋ณ๊ฒฝ ์์ฒญ์ด ์์ ๊ฒฝ์ฐ, ์์ ์ ๋ฐ์ํ ํ ๋ค์ ํธ์ํ๊ณ ๋ฆฌ๋ทฐ๋ฅผ ์์ฒญํฉ๋๋ค.
- ๋์์ธ ๋ณ๊ฒฝ์ด ์์ ๊ฒฝ์ฐ, PR์ ui ํ๊ทธ๋ฅผ ๋ฌ์์ Chromatic์ ์คํํฉ๋๋ค.
- UI Review ์ฒดํฌ์์ ํด๋น ๋์์ธ์ ๋ด๋นํ ๋์์ด๋์๊ฒ ๋ฆฌ๋ทฐ๋ฅผ ์์ฒญํฉ๋๋ค. (์์ฑ๋ PR์ ํ๋จ Merge ๋ถ๋ถ์์ ํ์ธํ ์ ์์)
[็ปๅ:image]UI Review: ์์ ๋ด์ญ์ ๋์์ธ ๋ด๋น์์๊ฒ ํ์ธ ์์ฒญํ๋ ์์
UI Tests: ์ฝ๋ ๋ณ๊ฒฝ์ผ๋ก ๋ฐ์ํ UI ๋ณ๊ฒฝ์ด ํน์ UI Regression์ ์๋์ง Chromatic์ด ๋ ์ค ์ค๋ ์ท์ ํ๋์ฉ ๋น๊ตํ๋ฉด์ ๊ฐ๋ฐ์๊ฐ ์ค์ค๋ก ํ์ธํด์ฃผ๋ ์์
-
์ต์ 1๊ฐ์ ์น์ธ์ ๋ฐ์ ํ
main๋ธ๋์น์ ๋ณํฉ๋ฉ๋๋ค. - ์ดํ ๋ฆด๋ฆฌ์ฆ๋ฅผ ํตํด ๊ธฐ์ฌํ ๋ด์ฉ์ด ๋ฐฐํฌ๋ฉ๋๋ค.
-
src/components์๋์ ํด๋๋ฅผ ๋ง๋ค๊ณ , ๊ทธ ์์ ์ปดํฌ๋ํธ ํ์ผ, ์คํ ๋ฆฌ ํ์ผ, ํ ์คํธ ํ์ผ์ ์์น์ํต๋๋ค. - ํด๋ ์ด๋ฆ, ํ์ผ ์ด๋ฆ, ์ปดํฌ๋ํธ ์ด๋ฆ์ ๋ชจ๋ PascalCase๋ก letter case๋ฅผ ํต์ผํฉ๋๋ค.
- ๋ณ์ ์ด๋ฆ, ํจ์ ์ด๋ฆ, prop ์ด๋ฆ์ ๋ชจ๋ camelCase๋ก letter case๋ฅผ ํต์ผํฉ๋๋ค.
-
index.tsxํ์ผ์ ํตํด์ re-exportํ์ง ์์ต๋๋ค.
โโโ src
โ โโโ components
โ โ โโโ Checkbox
โ โ โ โโโ Checkbox.stories.tsx
โ โ โ โโโ Checkbox.test.tsx
โ โ โ โโโ Checkbox.tsx
- ํจ์ ์ปดํฌ๋ํธ ์์ฑํ ๋๋
functionํค์๋๋ก ์ ์ธํด์ฃผ์ธ์. - ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์์ฑํ ๋๋ ํ์ดํ ํจ์๋ฅผ ์ ์ธ ํ์ ๋ณ์์ ํ ๋นํด์ฃผ์ธ์.
- Boolean props๋ is, has ์ ๋์ฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํ์ฉ์ฌ ํํ๋ก ์์ฑํด์ฃผ์ธ์. (์: reversed)
- API์ ์ค๋ช ์ ์์ฑํ ๋๋ ๋ช ์ฌํํ๋ก ์์ฑํด์ฃผ์ธ์ (์: /** ๋นํ์ฑํ ์ํ */)
- ์ ๊ท ์ปดํฌ๋ํธ ๊ฐ๋ฐ์
index.ts์ re-export๋ฅผ ํ์ฌ root importimport { button } from "daleui"๊ฐ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ์ธ์
- ์คํ ๋ฆฌ ์ ๋ชฉ์ด ์ปดํฌ๋ํธ ๊ฒฝ๋ก๋ฅผ ํตํด์ ์๋์ผ๋ก ์ ์ถ๋ ์ ์๋๋ก
title์์ฑ์ ๊ฐ์ ์๋ตํด์ฃผ์ธ์. ๋ฌธ์์ด๋ก ์ง์ ๋ช ์ํ๋ฉด ํ์ ์์ ํ์ง ์๊ณ , ์ปดํฌ๋ํธ ์ด๋ฆ์ ๋ฐ๊ฟ ๋ ์ฑํฌ๊ฐ ๊นจ์ง๊ธฐ ์ฝ์ต๋๋ค. - ์ฌ๋ฌ ์คํ ๋ฆฌ์ ๊ฑธ์ณ์ ํ์ํ args๋ ์คํ ๋ฆฌ ์์ค์์ ์ค๋ณตํ์ง ๋ง์๊ณ ์ปดํฌ๋ํธ ์์ค์์ ์ง์ ํด์ฃผ์ธ์.
- ์ปดํฌ๋ํธ์ ๊ธฐ๋ณธ๊ฐ์ args์์ ์ ์ธํ์ฌ, ์คํ ๋ฆฌ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํ๋๋๋ก ์์ฑํด์ฃผ์ธ์.
- ์คํ ๋ฆฌ๋ถ์ ์ปดํฌ๋ํธ ํจ์์ ํ์
์ ๋ฐ๋ผ์ ์์์ ์ต์ ์ arg type์ ์ ์ฉํด์ค๋๋ค. ์คํ ๋ฆฌ๋ถ์ด ๊ธฐ๋ณธ์ผ๋ก ์ค์ ํด์ค arg type์ ๋ฎ์ด์ฐ๋ฉด ์ปดํฌ๋ํธ์ ํ์
์ด ๋ณํ ๋ ๋ง๋ค ๊ฐ๋ฐ์๊ฐ ๊ณ์ ์ ๊ฒฝ์จ์ arg type์ ์กฐ์ ํด์ค์ผํ๋๋ฐ ๋งค์ฐ ๊น๋จน๊ธฐ ์ฌ์ด ๋ถ๋ถ์
๋๋ค. ๋ฐ๋ผ์ ์์ฃผ ํ๋นํ ์ด์ ๊ฐ ์์ง ์๋ํ arg type์ ์ง์ ์ง์ ํ๋ ๊ฒ์ ์ผ๊ฐํด์ฃผ์ธ์.
- ํ๋นํ ์ด์ ์์)
- reactNode Type์ ์ฌ์ฉํด์ story์์ ๋ฐ์ดํ(")๋ฅผ ์ฌ์ฉํด์ผํ ๋ ->
control: 'text'์ฌ์ฉ - ์ปดํฌ๋ํธ๋ฅผ ์ฌ๋ฌ๊ฐ exportํ๋ compound pattern์ ๊ฒฝ์ฐ ->
argType์ฌ์ฉ
- reactNode Type์ ์ฌ์ฉํด์ story์์ ๋ฐ์ดํ(")๋ฅผ ์ฌ์ฉํด์ผํ ๋ ->
- ํ๋นํ ์ด์ ์์)
- ํญ์ ๊ณ ์ ๋์ด์ผ ํ๋ prop์ Story์ argTypes์์ control: false๋ก ์ ์ธํฉ๋๋ค.
- ex) Orientation Story์์ orientation props
- ํ ์คํธ ํ์ผ์ ๋ณ๋์ ๋๋ ํ ๋ฆฌ์ ์ค์ํ ํ์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ํ์ผ ๋ฐ๋ก ์์ ๋ก๋๋ค.
- ๋จ์ํ ํ
์คํธ ๊ตฌ์กฐ๋ฅผ ์ํด์ ํ
์คํธ ๋์ ๋ชจ๋์ ๊ตฌ์กฐ๊ฐ ๋ณต์กํ์ง ์๋ค๋ฉด
describe()-it()๋์ ์test()๋ฅผ ์๋๋ค. - ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํฌ ๋๋
fireEvent๋์ ์@testing-library/user-eventํจํค์ง๋ฅผ ์ฌ์ฉํด ์ฃผ์ธ์. ๋ธ๋ผ์ฐ์ ์ ์ฅ์ด ์๋ ์ฌ์ฉ์ ์ ์ฅ์์ ํ ์คํธ๋ฅผ ์์ฑํ๊ธฐ ์ํจ์ ๋๋ค. - ํ ์คํธ ์ ๋ชฉ์ ํ๊ตญ์ด ์ฌ์ฉ์๊ฐ ์ฝ๊ฒ ๋ช ์ธ๋ฅผ ํ์ ํ๊ธฐ ์ฝ๋๋ก ํ๊ธ๋ก ์์ฑํด์ฃผ์ธ์.
- ์คํ ๋ฆฌ(Storybook) ์ ํ
์คํธ(Unit Test) ๋ ๋ชฉ์ ์ด ๋ค๋ฅด๋ฏ๋ก ๋ถ๋ฆฌ ์์ฑํฉ๋๋ค.
- ์คํ ๋ฆฌ: ๋ฌธ์ํ ๋ฐ ๋ฐ๋ชจ ๋ชฉ์ / ํ ์คํธ: ๋์ ๊ฒ์ฆ ๋ฐ ๋ช ์ธ ๋ชฉ์
- ๋ฐ๋ผ์, ์คํ ๋ฆฌ์ ์์กดํ๋ ํ ์คํธ(composeStories ๋ฑ)๋ ์ฌ์ฉํ์ง ์์ต๋๋ค.
- ํ ์คํธ๋ ์คํ ๋ฆฌ ๋ณ๊ฒฝ์ ์ํฅ๋ฐ์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํด์ผ ํฉ๋๋ค.
- ๊ด๋ จ ๋ ผ์: Github ์ด์, ๊ด๋ จ ๋ ผ์: ๋์ค์ฝ๋ ์ ๋ฆฌ