๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ Study/๐Ÿฉบ Testing

Storybook Chromatic ์œผ๋กœ ๋ฐฐํฌํ•ด๋ณด๊ธฐ! + ๋ฒˆ์™ธ Netlify

Storybook์€ ๋‹จ์ˆœํ•œ ํ…Œ์ŠคํŒ… ํˆด์„ ๋„˜์–ด ํ˜‘์—… & ๋ฌธ์„œํ™” ํˆด์ด๋‹ค.

๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„  ๋‹น์—ฐํžˆ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐฐํฌ๋„ ํ•  ์ˆ˜ ์žˆ๊ณ  Storybook์„ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์ „์šฉ ์„œ๋น„์Šค๊นŒ์ง€ ์žˆ๋‹ค.

๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ Chromatic

Chromatic ๊ณผ ํ•จ๊ป˜๋ผ๋ฉด ๋ฐฐํฌ๋Š” ๋ฌผ๋ก  ๊ทธ ์ดํ›„์˜ build ๊ด€๋ฆฌ๊นŒ์ง€ Storybook ๋งž์ถค์œผ๋กœ ์†์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค!

์ค€๋น„๋ฌผ์€ Storybook์„ ์ ์šฉํ•œ ํ”„๋กœ์ ํŠธ Github ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋งŒ ์žˆ์œผ๋ฉด ๋œ๋‹ค!

 

1. ๊ฐ€์ž…

๋จผ์ € Chromatic ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•ด Github ๊ณ„์ •์œผ๋กœ ๊ฐ€์ž…์„ ํ•ด์ฃผ์ž!

 

2. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

์•„๋งˆ ์ตœ์ดˆ ํšŒ์›๊ฐ€์ž…์„ ํ•ด์„œ ๋กœ๊ทธ์ธ์„ ํ•˜๋ฉด ์œ„์˜ ํ™”๋ฉด์ด ๋œฐ ๊ฒƒ์ด๋‹ค.

์—ฌ๊ธฐ์„œ Choose from GitHub์„ ์„ ํƒ!

 

๋งŒ์•ฝ ์•ˆ๋œฌ๋‹ค๋ฉด ํ™”๋ฉด Projects ํƒญ์— ์žˆ๋Š” add project ๋ฅผ ์ฐพ์•„์„œ ํด๋ฆญํ•˜๋ฉด ์ € ํ™”๋ฉด์ด ๋œฌ๋‹ค!

 

๊ทธ๋‹ค์Œ์—” Github ๊ณ„์ •์˜ Storybook์„ ๋ฐฐํฌํ•˜๊ณ  ์‹ถ์€ ์ €์žฅ์†Œ๋ฅผ ์„ ํƒํ•ด์ค€๋‹ค!

(๐Ÿ—ฏ ๋ฐฐํฌํ•˜๋ ค๋ฉด ํ”„๋กœ์ ํŠธ๋ฅผ Github ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋ฏธ๋ฆฌ ์˜ฌ๋ ค๋†”์•ผ ํ•œ๋‹ค!!)

 

๊ทธ๋Ÿฌ๋ฉด ์ด ํŽ˜์ด์ง€๊ฐ€ ๋œจ๋Š”๋ฐ ์ด์ œ ๋‹ค ๋๋‚œ ๊ฑฐ๋‚˜ ๋‹ค๋ฆ„์—†๋‹ค!

์ด์ œ ๊ทธ๋ƒฅ vscode ๋กœ ๊ฐ€์„œ ์ € ํŽ˜์ด์ง€์— ๋– ์žˆ๋Š” ๋ช…๋ น์–ด 2๊ฐœ๋ฅผ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•ด์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋์ด๋‹ค!

 

3. ๋ฐฐํฌํ•ด๋ณด๊ธฐ!

1. ํ”„๋กœ์ ํŠธ์— Chromatic ์„ค์น˜

npm install --save-dev chromatic
yarn add --dev chromatic

์œ„์˜ ๋‘ ๋ช…๋ น์–ด ์ค‘ ํ•˜๋‚˜๋ฅผ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•ด์„œ ํ”„๋กœ์ ํŠธ์— Chromatic ์„ ์„ค์น˜ํ•ด์ค€๋‹ค!

 

2. ์ฐ ๋ฐฐํฌ!

 npx chromatic --project-token=<project ๊ณ ์œ  token>

์ด์ œ ์ € ํŽ˜์ด์ง€ ์•„๋ž˜์— ์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•ด์„œ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•ด์ฃผ์ž!

 

๊ทธ๋Ÿฌ๋ฉด ์ด๋ ‡๊ฒŒ ์ฑก์ฑก์ฑก ๋ญ”๊ฐ€ ์ž‘์—…์ด ์ง„ํ–‰์ด ๋˜๋‹ค๊ฐ€!

 

Storybook์— ์•„๋ฌด ์˜ค๋ฅ˜๊ฐ€ ์—†๋‹ค๋ฉด ์ •์ƒ์ ์œผ๋กœ ๋ฐฐํฌ๊ฐ€ ๋งˆ๋ฌด๋ฆฌ๋œ๋‹ค!!!

์ด๊ฒŒ ๋์ด๋‹ค ๋! ^0^)/

์ € ์•„๋ž˜ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ๋˜์–ด ์žˆ๋Š” ๋งํฌ๋ฅผ ๋“ค์–ด๊ฐ€ ๋ณด์ž!

 

4. ์ถ”๊ฐ€ ์„ค์ • & ํŠœํ† ๋ฆฌ์–ผ?

ํŒŒ๋ž€์ƒ‰์˜ ๋งํฌ๋ฅผ ๋“ค์–ด๊ฐ€๋ฉด ์ถ”๊ฐ€ Setup ํŽ˜์ด์ง€๊ฐ€ ๋œฌ๋‹ค.

๋Œ€์ถฉ ํ•ด๋ณด๋‹ˆ๊นŒ ์ปดํฌ๋„ŒํŠธ ๋ณ„๋กœ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‚˜ work flow ๊ฐ™์€๊ฑธ ์•Œ๋ ค์ฃผ๋Š” ๋‹จ๊ณ„ ๊ฐ™์€๋ฐ

ํŒŒ๋ž€์ƒ‰ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌํ•˜๋ผ๋Š” ๋Œ€๋กœ ๋”ฐ๋ผ์„œ ์ง„ํ–‰ํ•ด๋„ ๋˜๊ณ  ํ•˜๊ธฐ ๊ท€์ฐฎ์œผ๋ฉด ๊ทธ๋ƒฅ ์•„๋ž˜์˜ Go to your project ๋ฅผ ํด๋ฆญํ•ด์ฃผ์ž!

 

5. ๋ฐฐํฌํ•œ ์Šคํ† ๋ฆฌ๋ถ ๊ณต์œ ํ•˜๊ธฐ!

์œ„์—์„œ ์„ค์ •์„ ๋๋‚ด๊ฑฐ๋‚˜ Go to your project ๋ฅผ ๋ˆŒ๋ €๋‹ค๋ฉด build ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค!

๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๊ณ  ๋ฐฐํฌํ•œ ์Šคํ† ๋ฆฌ๋ถ์„ build ๋‹จ๊ณ„๋ณ„๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค!

Builds ์ค‘ ๋‚ด๊ฐ€ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์€ ๋ฒ„์ „์„ ํด๋ฆญํ•˜์ž!

 

๊ทธ๋Ÿฌ๋ฉด Build ๊ด€๋ฆฌ ํŽ˜์ด์ง€๊ฐ€ ๋œจ๋Š”๋ฐ ์—ฌ๊ธฐ์„œ ์šฐ์ธก ์•„๋ž˜์— ์žˆ๋Š” View StoryBook ๋ฒ„ํŠผ์„ ํด๋ฆญ!!

 

์จ˜!!!!!!!!!

๋‚ด๊ฐ€ ๋ฐฐํฌํ•œ ์Šคํ† ๋ฆฌ๋ถ์ด ๋œฌ๋‹ค!!!!!!!!!!!!

์ด์ œ ์ € ์œ„์˜ ๋งํฌ๋ฅผ ๋ณต๋ถ™ ํ•ด์„œ ๊ณต์œ ํ•˜๋ฉด ๋œ๋‹ค!!!!!!

ํŠน์ • ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์ „์ฒด ๋งํฌ๋ฅผ ๋ณต๋ถ™ ํ•˜๋ฉด ๋œ๋‹ค!!!!!!!

 

*.โ˜†โธœ(โ‘‰ห™แ—œห™โ‘‰)โธโ™ก.*

๋ฐฐํฌ ๋!!!!!!!!!!

 

๋ฒˆ์™ธ

1. ๋งŒ์•ฝ Private Repository ๋ผ๋ฉด?

Storybook๋„ Private์œผ๋กœ ๋ฐฐํฌ๊ฐ€ ๋œ๋‹ค.

๊ทธ๋ž˜์„œ ๊ณต์œ ํ•˜๋ ค๋ฉด ๊ณต์œ ํ•˜๊ณ ์ž ํ•˜๋Š” ๋Œ€์ƒ์„ ๋‚ด Storybook์— ์ดˆ๋Œ€๋ฅผ ํ•ด์•ผ ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค

ํ•˜์ง€๋งŒ ๊ทธ๊ฑด ๋„ˆ๋ฌด ๊ท€์ฐฎ๊ณ , ๋ถˆํŠน์ • ๋‹ค์ˆ˜์—๊ฒŒ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๋ผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด Visibility๋ฅผ public์œผ๋กœ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค!

 

์™ผ์ชฝ์˜ Manage ๋ฉ”๋‰ด๋ฅผ ๋ˆŒ๋Ÿฌ Collaborate ํƒญ์œผ๋กœ ๋“ค์–ด์˜จ๋‹ค.

์•„๋ž˜๋กœ ๋‚ด๋ ค๋ณด๋ฉด Collaborator๋ฅผ ์ดˆ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋งํฌ๋„ ์žˆ์ง€๋งŒ ๋„˜์–ด๊ฐ€๊ณ  ๋งจ ์•„๋ž˜๋กœ ์ญ‰์ญ‰ ๋‚ด๋ฆฐ๋‹ค!

๋งจ ์•„๋ž˜๋กœ ๋‚ด๋ฆฌ๋ฉด VISIBILITY ํ•ญ๋ชฉ์ด ์žˆ๋‹ค!

์—ฌ๊ธฐ์„œ Make public์„ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ๋! ( แ› )ูˆ 

2. ๊ณต์œ  ๋งํฌ๋กœ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘์†ํ–ˆ๋Š”๋ฐ 404๊ฐ€ ๋œฌ๋‹ค?!

๋‚ด ๊ฒฝํ—˜์ƒ private ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ public์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋ฐ”๋กœ ๋ฐฐํฌํ–ˆ์„ ๋•Œ 404๊ฐ€ ๋–ด์—ˆ๋‹ค.

์ด๋Ÿฐ ๊ฒฝ์šฐ ๋’ค์˜ ๋งํฌ๊นŒ์ง€ ํ•จ๊ป˜ ๊ณต์œ ํ•ด๋ณด์ž!

๊ทธ๋Ÿผ ์ œ๋Œ€๋กœ ๋œฌ๋‹ค!

โธœ( โ—œเฟโ— )โธ๏ธŽ๏ธŽ ์•ผํ˜ธ!

 

3. ๊ผญ Chromatic ์œผ๋กœ ํ•ด์•ผ ํ•˜๋‚˜!?

๊ผญ ๊ทธ๋Ÿด ํ•„์š” ์—†๋‹ค!

๋ณธ์ธ์ด ์›ํ•˜๋Š” Netlify, Heroku, AWS๋“  ๋ญ๋“  ๊ฐ€๋Šฅํ•˜๋‹ค!

์–ผ๋งˆ ์ „์— ์Šคํ† ๋ฆฌ๋ถ ๋ฐฐํฌ๋ฅผ ํ…Œ์ŠคํŠธํ•ด๋ณด๋ ค๊ณ  Chromatic, Netlify, Heroku ๋กœ ์ „๋ถ€ ๋ฐฐํฌ๋ฅผ ํ•ด๋ดค๋Š”๋ฐ

์ œ์ผ ๋น ๋ฅด๊ณ  ์‰ฌ์› ๋˜ ๊ฑด Netlify CLI ์˜€๋‹ค.

10์ดˆ ์ด๋‚ด๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅ! ใ„ด(ใ…‡0ใ…‡)ใ„ฑ!

Netlify CLI ๋Š” ์ฝ”์ฟผ ๋งˆ์Šคํ„ฐ์ฆˆ์˜ ํŒŒํฌ๊ป˜์„œ ๊ณต์œ ํ•ด์ฃผ์…”์„œ ์•Œ๊ฒŒ ๋œ ๋ฐฐํฌ ํ”Œ๋žซํผ์ธ๋ฐ ๋„˜ ์ž˜ ์“ฐ๊ณ  ์žˆ๋‹ค. ๊ฐ์‚ฌํ•จ๋‹น ^-^)b ํŒคํ!

 

์—ฌํ•˜ํŠผ Netlify CLI ๋กœ 10์ดˆ ์ปท ๋ฐฐํฌ๋ฅผ ํ•ด๋ณด์ž!

 

1. ๋จผ์ € Storybook ์„ build ํ•œ๋‹ค!

yarn build-storybook

์Šคํ† ๋ฆฌ๋ถ build๋Š” Storybook์— ์ด๋ฏธ ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ํ„ฐ๋ฏธ๋„์— ์ € ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด...

 

์ง ! ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์— storybook-static์ด๋ผ๋Š” ํด๋”๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค!

์ €๊ฑธ ๊ทธ๋ƒฅ netlify ๋“  heroku ๋“  ํ†ต์งธ๋กœ ๋ฐฐํฌํ•˜๋ฉด ๋œ๋‹ค!!!!!

 

2. Netlify CLI ์„ค์น˜

npm install netlify-cli -g

์œ„์˜ ๋ช…๋ น์–ด๋กœ Netlify CLI ๋ฅผ ์„ค์น˜ํ•ด์ฃผ์ž!

 

3. Netlify CLI ๋กœ ๋ฐฐํฌํ•˜๊ธฐ

netlify deploy --dir ./storybook-static

์ด์ œ netlify deploy ๋ช…๋ น์–ด์— dir ์˜ต์…˜์„ ์„ค์ •ํ•ด์„œ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•ด์ฃผ๋ฉด!

์ตœ์ดˆ Netlify ์‚ฌ์šฉ์ž ๊ฑฐ๋‚˜, ๋กœ๊ทธ์ธ์ด ์•ˆ๋˜์–ด ์žˆ๋‹ค๋ฉด ๋กœ๊ทธ์ธํ•˜๋ผ๋Š” ์•ˆ๋‚ด๊ฐ€ ๋œฐ ๊ฑฐ๊ณ  ์•„๋‹ˆ๋ผ๋ฉด ์ €๋ ‡๊ฒŒ ๊ธฐ์กด์— ๋ฐฐํฌํ•œ ์‚ฌ์ดํŠธ์— ์—ฐ๊ฒฐํ•  ๊ฑด์ง€ ์•„๋‹ˆ๋ฉด ์ƒˆ๋กœ ๋งŒ๋“ค ๊ฑด์ง€ ์„ ํƒํ•˜๋ผ๊ณ  ํ•œ๋‹ค.

๋‹น์—ฐํžˆ NEW SITE ๋‹ค!

๊ทธ ํ›„ ๊ฐ„๋‹จํ•˜๊ฒŒ Team Name, Site Name์„ ์ž…๋ ฅํ•˜๊ณ  ๋‚˜๋ฉด?!

 

๋ฐฐํฌ ๋!!!!!!!!!!!!!!!!!!!

Website Draft URL ๋งํฌ๋กœ ์ ‘์†ํ•˜๋ฉด ๋นค๋”ฑ๋นค๋”ฑํ•œ ๋‚ด Storybook์ด ๋œฌ๋‹ค!

์•ผํ˜ธ!!!! ๋„ˆ๋ฌด ์‰ฝ๋‹ค!!!!!

โœง*๏ฝกูฉ(หŠ v ห‹*)ูˆโœง*๏ฝก

 

(+) ์ดํ›„ Netlify๋ฅผ product ๋กœ ๋ฐฐํฌํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์œ„์˜ ๋กœ๊ทธ์— ์ ํ˜€์žˆ๋“ฏ์ด netlify deploy --prod ๋ช…๋ น์–ด๋กœ ๋‹ค์‹œ ๋ฐฐํฌํ•˜๋ฉด ๋œ๋‹ค!

 

+ ) Chromatic & Netlify ๋น„๊ต

VM Project Chromatic Link
VM Project Netlify Link

 

๋‘ ์„œ๋น„์Šค๋ฅผ ๋น„๊ต๋ฅผ ํ•ด๋ณด๋ฉด ๋ฐฐํฌ ๋‚œ์ด๋„๋‚˜ ๊ท€์ฐฎ์Œ ์ •๋„๋Š” Netlify CLI ์••์Šน์ด์ง€๋งŒ ์ตœ์ดˆ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ–ˆ์„ ๋•Œ ๋กœ๋”ฉ ์†๋„๋Š” ๊ฐœ์ธ์ ์œผ๋กœ Chromatic ์ด ์กฐ๊ธˆ ๋” ๋น ๋ฅธ ๊ฑฐ ๊ฐ™๋‹ค.

๋‘˜ ์ค‘ ๋ญ๋“  ๋ณธ์ธ์ด ์›ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋ฉด ๋˜์ง€๋งŒ ๋‚˜๋Š” ์•ž์œผ๋กœ๋„ ๊ณ„์† Chromatic์„ ์‚ฌ์šฉํ•  ๊ฑฐ ๊ฐ™๋‹ค.

์™œ๋ƒ๋ฉด ๋‹จ์ˆœํžˆ ๋ฐฐํฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋„˜์–ด Chromatic ์€ Storybook์— ํŠนํ™”๋œ ์ด๋Ÿฐ์ €๋Ÿฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ผ๋‹จ build ๋ฒ„์ „๋ณ„๋กœ ์ปดํฌ๋„ŒํŠธ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”์ ํ•  ์ˆ˜๋„ ์žˆ๊ณ  Collaborator ๋“ค๋ผ๋ฆฌ Review๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๋„ ์žˆ๋‹ค!

๊ทธ๋ž˜์„œ ๊ธ‰ํ•˜๊ฒŒ ๋ฐฐํฌํ•ด์•ผ ํ•  ๋• Netlify๋ฅผ ์“ฐ๊ฒ ์ง€๋งŒ ์ตœ์ข…์ ์œผ๋กœ ๋ฐฐํฌํ•˜๊ณ  ๊ด€๋ฆฌํ•  ๋•Œ๋Š” Chromatic์„ ์“ธ ๊ฑฐ ๊ฐ™๋‹ค!