-
-
Notifications
You must be signed in to change notification settings - Fork 3
Conventions
Yunsup Sim(์ฌ์ค์ญ) edited this page Mar 21, 2026
·
74 revisions
์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํ๋ฉด์ ํ์ ๊ฐ์ ํฉ์ํ ๊ฐ๋ฐ ๊ด์ต์ ๋ฌธ์ํํด ๋์์ต๋๋ค. ํญ์ ์ต์ ์ํ๋ฅผ ์ ์งํ๋๋ก ํ์ ๋ชจ๋ ๋ ธ๋ ฅํด์ฃผ์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
-
src/components์๋์ ํด๋๋ฅผ ๋ง๋ค๊ณ , ๊ทธ ์์ ์ปดํฌ๋ํธ ํ์ผ, ์คํ ๋ฆฌ ํ์ผ, ํ ์คํธ ํ์ผ์ ์์น์์ผ ์ฃผ์ธ์. -
ํด๋ ์ด๋ฆ, ํ์ผ ์ด๋ฆ, ์ปดํฌ๋ํธ ์ด๋ฆ์ ๋ชจ๋ PascalCase๋ก letter case๋ฅผ ํต์ผํด ์ฃผ์ธ์.
-
๋ณ์ ์ด๋ฆ, ํจ์ ์ด๋ฆ, prop ์ด๋ฆ์ ๋ชจ๋ camelCase๋ก letter case๋ฅผ ํต์ผํด ์ฃผ์ธ์.
-
index.tsxํ์ผ์ ํตํด re-exportํ์ง ๋ง์ธ์.โโโ src โ โโโ components โ โ โโโ Checkbox โ โ โ โโโ Checkbox.stories.tsx โ โ โ โโโ Checkbox.test.tsx โ โ โ โโโ Checkbox.tsx -
Compound pattern์ ๊ฒฝ์ฐ
Object.assign์ ํตํ ๋ค์ dot-notation ํ์์ export๊ณผ RSC ์ง์์ ์ํ named-export๋ฅผ ์ ๊ณตํด ์ฃผ์ธ์.- ์ต์๋จ Root๋ ๋ฌด์กฐ๊ฑด dot-notation์์ด ์ ๊ณต
- named-export๋ฅผ ๋ฐ๋ก ์ ๊ณต
<Card> {/* ์ต์๋จ Root๋ ๋ฌด์กฐ๊ฑด dot-notation์์ด ์ ๊ณต */} <Card.Header /> <Card.Body /> <Card.Footer /> </Card>
- ๊ด๋ จ ๋ ผ์: https://github.com/DaleStudy/daleui/issues/830
- ํจ์ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ ๋๋
functionํค์๋๋ก ์ ์ธํด์ฃผ์ธ์. - ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ ํ์ดํ ํจ์๋ก ์์ฑํ์ฌ ๋ณ์์ ํ ๋นํด์ฃผ์ธ์.
- Boolean props๋ is, has ์ ๋์ฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํ์ฉ์ฌ ํํ๋ก ์์ฑํด์ฃผ์ธ์. (์: reversed)
- API ์ค๋ช ์ ์์ฑํ ๋๋ ๋ช ์ฌ ํํ๋ก ์์ฑํด์ฃผ์ธ์ (์: /*_ ๋นํ์ฑํ ์ํ _/)
- ์ ๊ท ์ปดํฌ๋ํธ ๊ฐ๋ฐ์
index.ts์ re-exportํ์ฌ root importimport { Button } from "daleui"๊ฐ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ์ธ์
- ์คํ ๋ฆฌ ์ ๋ชฉ์ด ์ปดํฌ๋ํธ ๊ฒฝ๋ก๋ฅผ ํตํด ์๋ ์ ์ถ๋๋๋ก
title์์ฑ ๊ฐ์ ์๋ตํด์ฃผ์ธ์. ๋ฌธ์์ด๋ก ์ง์ ๋ช ์ํ๋ฉด ํ์ ์์ (type-safe)ํ์ง ์๊ณ , ์ปดํฌ๋ํธ ์ด๋ฆ์ ๋ฐ๊ฟ ๋ ์ฑํฌ๊ฐ ๊นจ์ง๊ธฐ ์ฌ์ฐ๋ ์ฐธ๊ณ ํด ์ฃผ์ธ์. - ์ฌ๋ฌ ์คํ ๋ฆฌ์ ๊ฑธ์ณ ํ์ํ args๋ ์คํ ๋ฆฌ ์์ค์์ ์ค๋ณตํ์ง ๋ง์๊ณ ์ปดํฌ๋ํธ ์์ค์์ ์ง์ ํด์ฃผ์ธ์.
- ์ปดํฌ๋ํธ์ ๊ธฐ๋ณธ๊ฐ์ args์์ ์ ์ธํ์ฌ, ์คํ ๋ฆฌ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํ๋๋๋ก ์์ฑํด์ฃผ์ธ์.
- ์คํ ๋ฆฌ๋ถ์ด ๊ธฐ๋ณธ ์ค์ ํด ์ค 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
- Docs ์ค๋ช ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ปดํฌ๋ํธ ์ฃผ์์ ์์ฑํฉ๋๋ค. ๋ค๋ง, Compound Pattern์ ๊ฒฝ์ฐ ๊ฐ๋ณ ์ปดํฌ๋ํธ๊ฐ ์ง์ export๋์ง ์์ผ๋ฏ๋ก Docs ์ค๋ช ์ ์คํ ๋ฆฌ์ ์์ฑํฉ๋๋ค.
- ํ ์คํธ ํ์ผ์ ๋ณ๋ ๋๋ ํ ๋ฆฌ์ ์ค์ํํ์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ํ์ผ ๋ฐ๋ก ์์ ๋์ธ์.
- ๋จ์ํ ํ
์คํธ ๊ตฌ์กฐ๋ฅผ ์ํด ํ
์คํธ ๋์ ๋ชจ๋ ๊ตฌ์กฐ๊ฐ ๋ณต์กํ์ง ์๋ค๋ฉด
describe()-it()๋์ ์test()๋ฅผ ์ฌ์ฉํด ์ฃผ์ธ์. - ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํฌ ๋๋
fireEvent๋์@testing-library/user-eventํจํค์ง๋ฅผ ์ฌ์ฉํด ์ฃผ์ธ์. ๋ธ๋ผ์ฐ์ ์ ์ฅ์ด ์๋ ์ฌ์ฉ์ ์ ์ฅ์์ ํ ์คํธ๋ฅผ ์์ฑํ๊ธฐ ์ํจ์ ๋๋ค. - ํ ์คํธ ์ ๋ชฉ์ ํ๊ตญ์ด ์ฌ์ฉ์๊ฐ ๋ช ์ธ๋ฅผ ํ์ ํ๊ธฐ ์ฝ๋๋ก ํ๊ธ๋ก ์์ฑํด์ฃผ์ธ์.
- ์คํ ๋ฆฌ(Storybook)์ ํ
์คํธ(Unit Test)๋ ๋ชฉ์ ์ด ๋ค๋ฅด๋ฏ๋ก ๋ถ๋ฆฌ ์์ฑํด ์ฃผ์ธ์.
- ์คํ ๋ฆฌ: ๋ฌธ์ํ ๋ฐ ๋ฐ๋ชจ ๋ชฉ์ / ํ ์คํธ: ๋์ ๊ฒ์ฆ ๋ฐ ๋ช ์ธ ๋ชฉ์
- ๋ฐ๋ผ์, ์คํ ๋ฆฌ์ ์์กดํ๋ ํ ์คํธ(composeStories ๋ฑ)๋ ์ฌ์ฉํ์ง ๋ง์ธ์.
- ํ ์คํธ๋ ์คํ ๋ฆฌ ๋ณ๊ฒฝ์ ์ํฅ๋ฐ์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํ๋๋ก ์์ฑํด ์ฃผ์ธ์.
- ๊ด๋ จ ๋ ผ์: Github ์ด์, ๊ด๋ จ ๋ ผ์: ๋์ค์ฝ๋ ์ ๋ฆฌ