Skip to Content
Nextra 4.0 is released πŸŽ‰

πŸ“š Storybook ν…ŒμŠ€νŠΈ

이 ν”„λ‘œμ νŠΈμ—μ„œλŠ” Storybook ν…ŒμŠ€νŠΈλ₯Ό CI ν™˜κ²½μ—μ„œ μžλ™μœΌλ‘œ μ‹€ν–‰ν•©λ‹ˆλ‹€.
μ•„λž˜λŠ” .github/workflows/test.yml μ›Œν¬ν”Œλ‘œμš°μ˜ storybook-test job μ—μ„œ μˆ˜ν–‰ν•˜λŠ” μ£Όμš” λ‹¨κ³„μž…λ‹ˆλ‹€.

πŸ’» ν…ŒμŠ€νŠΈ ν™˜κ²½

🐳 Docker 기반 Storybook ν…ŒμŠ€νŠΈ

이 μ›Œν¬ν”Œλ‘œμš°λŠ” Dockerλ₯Ό μ‚¬μš©ν•˜μ—¬ Storybook ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€. Docker Composeλ₯Ό μ‚¬μš©ν•˜μ—¬ μ•„λž˜μ™€ 같이 Storybook μ„œλ²„μ™€ ν…ŒμŠ€νŠΈ λŸ¬λ„ˆ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•˜κ³ , ν…ŒμŠ€νŠΈ κ²°κ³Όλ₯Ό GitHub Actions μ•„ν‹°νŒ©νŠΈλ‘œ μ—…λ‘œλ“œν•©λ‹ˆλ‹€.

πŸ”„ ν…ŒμŠ€νŠΈ μ›Œν¬ν”Œλ‘œμš°

단계별 μ„€λͺ…

  1. μ½”λ“œ 체크아웃 및 μΊμ‹œ 볡원

    • μ†ŒμŠ€ μ½”λ“œλ₯Ό μ²΄ν¬μ•„μ›ƒν•˜κ³ , λ³€ν™˜λœ docker-compose 파일 μΊμ‹œλ₯Ό λ³΅μ›ν•©λ‹ˆλ‹€.
  2. GitHub Container Registry 둜그인

    • Storybook κ΄€λ ¨ 이미지λ₯Ό λΉŒλ“œ 및 μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ ghcr.io에 λ‘œκ·ΈμΈν•©λ‹ˆλ‹€.
  3. 도컀 λ„€νŠΈμ›Œν¬ μ€€λΉ„

    • test_networkλΌλŠ” μ™ΈλΆ€ 도컀 λ„€νŠΈμ›Œν¬κ°€ μ—†μœΌλ©΄ μƒμ„±ν•©λ‹ˆλ‹€.
  4. Storybook 이미지 λΉŒλ“œ

    • docker-compose.gha.converted.yaml νŒŒμΌμ„ μ‚¬μš©ν•˜μ—¬ storybook 및 storybook-test-runner 2 개의 이미지λ₯Ό λΉŒλ“œν•©λ‹ˆλ‹€.
  5. Storybook ν…ŒμŠ€νŠΈ μ‹€ν–‰

    • storybookκ³Ό storybook-test-runner μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•˜μ—¬ Storybook ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.
    • storybook-test-runner μ»¨ν…Œμ΄λ„ˆμ—μ„œ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜κ³  κ·Έ κ²°κ³Όλ₯Ό μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ˜ a11y-audit 디렉토리에 μ €μž₯ν•©λ‹ˆλ‹€.
    • storybook-test-runner μ»¨ν…Œμ΄λ„ˆμ˜ λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€κ°€ μ™„λ£Œλ˜λ©΄ storybookκ³Ό storybook-test-runner μ»¨ν…Œμ΄λ„ˆλ₯Ό μ€‘μ§€ν•©λ‹ˆλ‹€.
  6. μ ‘κ·Όμ„±(A11y) 리포트 볡사

    • ν…ŒμŠ€νŠΈκ°€ μ™„λ£Œλœ ν›„, storybook-test-runner μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ˜ μ ‘κ·Όμ„± 감사 κ²°κ³Ό(a11y-audit 폴더)λ₯Ό 호슀트둜 λ³΅μ‚¬ν•©λ‹ˆλ‹€.
  7. 리포트 μ—…λ‘œλ“œ

    • λ³΅μ‚¬ν•œ μ ‘κ·Όμ„± 리포트λ₯Ό GitHub Actions μ•„ν‹°νŒ©νŠΈλ‘œ μ—…λ‘œλ“œν•©λ‹ˆλ‹€.

πŸ§ͺ μ–΄λ–€ ν…ŒμŠ€νŠΈκ°€ μ‹€ν–‰λ˜λ‚˜μš”?

axe-playwright

Storybook ν…ŒμŠ€νŠΈλŠ” apps/frontend-workshop/.storybook/test-runner.ts νŒŒμΌμ— μ •μ˜λœ 섀정에 따라 μ‹€ν–‰λ©λ‹ˆλ‹€.
이 μ„€μ •μ—μ„œλŠ” axe-playwrightλ₯Ό ν™œμš©ν•˜μ—¬ 각 Storybook μŠ€ν† λ¦¬μ— λŒ€ν•΄ μ ‘κ·Όμ„±(A11y) μžλ™ 감사λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.

  • ν…ŒμŠ€νŠΈ λŸ¬λ„ˆλŠ” 각 μŠ€ν† λ¦¬ λ°©λ¬Έ μ „ axe-coreλ₯Ό νŽ˜μ΄μ§€μ— μ£Όμž…ν•˜κ³ , μŠ€ν† λ¦¬μ˜ a11y νŒŒλΌλ―Έν„°μ— 따라 κ·œμΉ™μ„ μ„€μ •ν•©λ‹ˆλ‹€.
  • 각 μŠ€ν† λ¦¬μ˜ νŠΉμ • μš”μ†Œ(κΈ°λ³Έκ°’: body)λ₯Ό λŒ€μƒμœΌλ‘œ μ ‘κ·Όμ„± 감사λ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.
  • 감사 κ²°κ³ΌλŠ” JUnit XML ν˜•μ‹μœΌλ‘œ μƒμ„±λ˜μ–΄, μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ˜ test-results/a11y-audit 폴더에 μ €μž₯λ©λ‹ˆλ‹€.
  • ν…ŒμŠ€νŠΈ μ‹€νŒ¨ μ‹œμ—λ„ μ›Œν¬ν”Œλ‘œμš°κ°€ μ€‘λ‹¨λ˜μ§€ μ•Šλ„λ‘ μ˜ˆμ™Έλ₯Ό μ²˜λ¦¬ν•©λ‹ˆλ‹€.

즉, λͺ¨λ“  Storybook μ»΄ν¬λ„ŒνŠΈμ— λŒ€ν•΄ axe 기반 μ ‘κ·Όμ„± μžλ™ ν…ŒμŠ€νŠΈκ°€ μ‹€ν–‰λ˜κ³ , κ·Έ κ²°κ³Όκ°€ 리포트둜 λ‚¨μŠ΅λ‹ˆλ‹€.

πŸ“¦ ν…ŒμŠ€νŠΈ μ•„ν‹°νŒ©νŠΈ

μ ‘κ·Όμ„±(A11y) μžλ™ 감사 κ²°κ³Ό

ν…ŒμŠ€νŠΈκ°€ μ™„λ£Œλ˜λ©΄ storybook-test-runner μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ˜ a11y-audit 폴더에 μ ‘κ·Όμ„± 감사 κ²°κ³Όκ°€ μ €μž₯λ©λ‹ˆλ‹€. 이 κ²°κ³ΌλŠ” GitHub Actions μ•„ν‹°νŒ©νŠΈλ‘œ μ—…λ‘œλ“œλ˜μ–΄, λ‚˜μ€‘μ— λ‹€μš΄λ‘œλ“œν•˜μ—¬ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ©μ 

이 λ¦¬ν¬νŠΈλŠ” Storybook μ»΄ν¬λ„ŒνŠΈμ˜ μ ‘κ·Όμ„± 문제λ₯Ό μžλ™μœΌλ‘œ κ°μ§€ν•˜κ³ , κ°œμ„ ν•  수 μžˆλŠ” 정보λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

πŸ“Œ μ°Έκ³ 

μžμ„Έν•œ μ›Œν¬ν”Œλ‘œμš°λŠ” .github/workflows/test.yml 파일의 storybook-test μž‘μ„ μ°Έκ³ ν•˜μ„Έμš”.


Last updated on