์ฌํํ๋ก์ ํธ์ ๋ค์ด๊ฐ๋ฉฐ ํ๋ก์ ํธ ์ธํ ํ๋ ๊ณผ์ ์ค์ ๋ด๊ฐ storybook ์ธํ ์ ํ๊ฒ๋์๋ค.
๐จ storybook์ ์ฌ์ฉํ๋ฉด ์ข์ ์ด์
storybook์ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐํ๊ณ ํ ์คํธํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ค.
โ๏ธ ์คํ ๋ฆฌ๋ถ ์ค์น
1. ์ค์น
npm install --save-dev @storybook/react
2. script ํ์ธ
package.json
ํ์ผ์ scripts
์น์
์์ storybook
์คํฌ๋ฆฝํธ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์ด ์๋์ง ํ์ธํด์ผํ๋ค. storybook์ 6006
ํฌํธ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค.
"scripts": {
"storybook": "storybook dev -p 6006"
}
3. ๋ช ๋ น์ด ์คํ
npm run storybook
์ค์น๊ฐ ๋ ํ storybook ๊ด๋ จ ํด๋๊ฐ ์์ฑ๋์๋ค.
๊ธฐ๋ณธ ํด๋ ๊ตฌ์กฐ
ํด๋ ๊ตฌ์กฐ ๋ณ๊ฒฝ
๐ .storybook ํด๋์ ์ญํ
- ์คํ ๋ฆฌ ํ์ผ ๊ฒฝ๋ก ์ค์ : storybook์ด ๋ก๋ํ ์คํ ๋ฆฌ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ ์
- ์ ๋์จ ์ค์ : ๊ธฐ๋ฅ ํ์ฅ ํ๋ฌ๊ทธ์ธ
- framework ์ค์ : React์ Vite๋ฅผ ๊ธฐ๋ฐ์ผ๋ก storybook์ ์ค์
๐ .stories ํด๋์ ์ญํ
- ์ปดํฌ๋ํธ ๋ฌธ์ํ : ๊ฐ ์ปดํฌ๋ํธ์ ์ํ์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ฌธ์ํํ์ฌ ํ์๋ค์ด ์ปดํฌ๋ํธ์ ๋์ ๋ฐฉ์์ ์ฝ๊ฒ ์ดํด
- ์ปดํฌ๋ํธ ํ ์คํธ : ์ปดํฌ๋ํธ์ ๋ค์ํ ์ํ๋ฅผ ์๊ฐ์ ์ผ๋ก ํ ์คํธํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณตํ์ฌ ์์๋๋ก ๋์ํ๋์ง ํ์ธ
- ๊ฐ๋ฐ ์์์ฑ ํฅ์ : ์ปดํฌ๋ํธ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐํ๊ณ ํ ์คํธํ์ฌ ๋ฌธ์ ๋ฅผ ๋น ๋ฅด๊ฒ ๋ฐ๊ฒฌํ๊ณ ์์
- storybook ์ค์ :
export default
์์ ์คํ ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ๋ณด์ฌ์ค์ง ์ค์
โ๏ธ Chromatic ์ค์น ๋ฐ ์ค์
1. ์ค์น
npm install --save-dev chromatic
2. Chromatic ์คํ ์คํฌ๋ฆฝํธ ์ถ๊ฐ
"scripts": {
"chromatic": "chromatic --project-token <your-project-token>"
}
<your-project-token>
์ Chromatic์์ ๋ณต์ฌํ ํ ํฐ์ ์
๋ ฅ
3. ์คํ
npm run chromatic
โ GitHub Actions ์ํฌํ๋ก ์ถ๊ฐ
.github/workflows/chromatic.yml
ํ์ผ์ ์์ฑํ๊ณ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐ
๐ ๋ณต์ฌ
name: Chromatic Deployment
on:
push:
branches:
- main # ๋ฐฐํฌ๋ฅผ ์คํํ ๋ธ๋์น
pull_request: # PR ์์ฑ ์์๋ ํ
์คํธ
branches:
- "**"
jobs:
chromatic:
name: Run Chromatic
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 16 # Node.js ๋ฒ์ ์กฐ์ ๊ฐ๋ฅ
- name: Install dependencies
run: npm install
- name: Run Chromatic
run: npx chromatic --project-token ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
5. ํ๋ก์ ํธ ํ ํฐ ์ค์
Chromatic ํ ํฐ
์ GitHub Secrets
์ ์ ์ฅํด์ผ ํฉ๋๋ค
1) GitHub ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ์ด๋ํฉ๋๋ค.
2) Settings > Secrets and variables > Actions๋ก ์ด๋ํฉ๋๋ค.
3) New repository secret๋ฅผ ํด๋ฆญํฉ๋๋ค.
4) Name์ CHROMATIC\_PROJECT\_TOKEN
์ ์
๋ ฅํ๊ณ , Value
์ Chromatic ํ๋ก์ ํธ ํ ํฐ์ ๋ถ์ฌ๋ฃ์ต๋๋ค.
์ด ๊ณผ์ ์ ์๋ฃํ๋ฉด Chromatic์ด GitHub Actions์ ํตํฉ๋์ด ์๋ํ๋ ์คํ ๋ฆฌ ๋ฐฐํฌ ๋ฐ ํ ์คํธ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ๐