Skip to content

스토리북 도입#21

Merged
Jieunsse merged 2 commits into
mainfrom
feature/story
Feb 3, 2026
Merged

스토리북 도입#21
Jieunsse merged 2 commits into
mainfrom
feature/story

Conversation

@Jieunsse

@Jieunsse Jieunsse commented Feb 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • 스토리를 도입하기

Issue

Scope

  • 포함

    • 변경한 내용
  • 특이사항

@Jieunsse Jieunsse self-assigned this Feb 3, 2026
@Jieunsse Jieunsse added this to workers Feb 3, 2026
@Jieunsse Jieunsse added the 기능추가 기능개발 및 추가할 때 사용해주세요. label Feb 3, 2026
@github-project-automation github-project-automation Bot moved this to 개발 대기중 in workers Feb 3, 2026
@Jieunsse Jieunsse merged commit f6bb11d into main Feb 3, 2026
1 check passed
@github-project-automation github-project-automation Bot moved this from 개발 대기중 to 개발 완료 in workers Feb 3, 2026
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @Jieunsse, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 프로젝트에 Storybook을 성공적으로 통합하여 컴포넌트 기반 개발 워크플로우를 구축하는 것을 목표로 합니다. Storybook을 통해 UI 컴포넌트를 독립적으로 개발, 테스트, 문서화할 수 있는 환경을 제공하며, 이는 개발 효율성을 높이고 디자인 시스템의 일관성을 유지하는 데 기여할 것입니다. 초기 설정과 함께 몇 가지 핵심 컴포넌트에 대한 스토리가 포함되어 있어, 향후 컴포넌트 라이브러리 확장의 기반이 됩니다.

Highlights

  • 스토리북 도입 및 설정: 프로젝트에 Storybook을 도입하고 관련 설정 파일들을 추가했습니다. 이는 컴포넌트 개발 및 문서화를 위한 기반을 마련합니다.
  • 개발 의존성 및 스크립트 추가: Storybook 실행 및 빌드 스크립트와 필요한 개발 의존성(예: @storybook/nextjs-vite, @chromatic-com/storybook, @storybook/addon-vitest, @storybook/addon-a11y, @storybook/addon-docs, eslint-plugin-storybook, vitest, playwright)을 package.json에 추가했습니다.
  • ESLint 및 Vitest 통합: ESLint 설정에 Storybook 플러그인을 추가하여 Storybook 관련 코드에 대한 린팅을 지원하고, Vitest를 Storybook과 통합하여 컴포넌트 테스트 환경을 구축했습니다.
  • 초기 컴포넌트 스토리 및 예제 추가: CheckBox, Dropdown, Button, Header, Page 컴포넌트에 대한 Storybook 스토리를 추가하여 각 컴포넌트의 다양한 상태와 사용법을 시각적으로 확인할 수 있도록 했습니다. 또한, Storybook 자체의 설정 및 사용법을 안내하는 Configure.mdx 문서와 관련 CSS, SVG 에셋도 포함되었습니다.
  • 폰트 정의 및 경로 별칭 추가: Storybook 환경에서 사용될 'Pretendard' 폰트 정의를 추가하고, tsconfig.json@shared/* 경로 별칭을 추가하여 모듈 임포트 편의성을 높였습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • .storybook/main.ts
    • Storybook 메인 설정 파일 추가
    • Next.js 및 Vite 프레임워크 통합
    • Chromatic, Vitest, A11y, Docs 애드온 설정
  • .storybook/preview.css
    • Storybook 미리보기 CSS 파일 추가
    • 'Pretendard' 폰트 정의 및 변수 설정
  • .storybook/preview.ts
    • Storybook 미리보기 설정 파일 추가
    • 전역 CSS (globals.css) 및 preview.css 임포트
    • 컨트롤 및 접근성(a11y) 애드온 파라미터 설정
  • .storybook/vitest.setup.ts
    • Vitest와 Storybook 통합을 위한 설정 파일 추가
    • Storybook 프로젝트 애노테이션 적용
  • eslint.config.mjs
    • ESLint 설정에 eslint-plugin-storybook 플러그인 추가
  • package.json
    • Storybook 실행 (storybook) 및 빌드 (build-storybook) 스크립트 추가
    • Storybook 관련 개발 의존성(예: @storybook/nextjs-vite, @chromatic-com/storybook, @storybook/addon-vitest, @storybook/addon-a11y, @storybook/addon-docs, eslint-plugin-storybook, vitest, playwright, @vitest/browser-playwright, @vitest/coverage-v8) 추가
  • src/components/checkbox/CheckBox.stories.tsx
    • CheckBox 컴포넌트의 Storybook 스토리 파일 추가
    • 다양한 상태(기본, 체크됨, 작게, 비활성화, 레이블 없음)를 보여주는 스토리 정의
  • src/components/dropdown/Dropdown.stories.tsx
    • Dropdown 컴포넌트의 Storybook 스토리 파일 추가
    • 다양한 상태(기본, 기본값 설정, 작게, 반복, 비활성화)를 보여주는 스토리 정의
  • src/stories/Button.stories.ts
    • 예제 Button 컴포넌트의 Storybook 스토리 파일 추가
    • 기본, 보조, 큰, 작은 버튼 상태 스토리 정의
  • src/stories/Button.tsx
    • 예제 Button 컴포넌트 파일 추가
  • src/stories/Configure.mdx
    • Storybook 설정 및 활용 가이드를 담은 MDX 문서 추가
    • 다양한 설정 옵션 및 추가 기능에 대한 정보 제공
  • src/stories/Header.stories.ts
    • 예제 Header 컴포넌트의 Storybook 스토리 파일 추가
    • 로그인 상태 및 로그아웃 상태 스토리 정의
  • src/stories/Header.tsx
    • 예제 Header 컴포넌트 파일 추가
  • src/stories/Page.stories.ts
    • 예제 Page 컴포넌트의 Storybook 스토리 파일 추가
    • 로그인 및 로그아웃 상태 스토리 정의 및 상호작용 테스트 예제 포함
  • src/stories/Page.tsx
    • 예제 Page 컴포넌트 파일 추가
  • src/stories/assets/accessibility.svg
    • 접근성 관련 SVG 에셋 추가
  • src/stories/assets/discord.svg
    • Discord 로고 SVG 에셋 추가
  • src/stories/assets/github.svg
    • GitHub 로고 SVG 에셋 추가
  • src/stories/assets/tutorials.svg
    • 튜토리얼 관련 SVG 에셋 추가
  • src/stories/assets/youtube.svg
    • YouTube 로고 SVG 에셋 추가
  • src/stories/button.css
    • 예제 Button 컴포넌트의 CSS 파일 추가
  • src/stories/header.css
    • 예제 Header 컴포넌트의 CSS 파일 추가
  • src/stories/page.css
    • 예제 Page 컴포넌트의 CSS 파일 추가
  • tsconfig.json
    • 경로 별칭 @shared/* 추가
  • vitest.config.ts
    • Vitest 설정 파일 추가
    • Storybook 스토리 테스트를 위한 Vitest 프로젝트 설정
    • Playwright 브라우저 환경에서 테스트 실행 설정
  • vitest.shims.d.ts
    • Vitest Playwright 브라우저 타입 정의 파일 추가
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

스토리북 도입을 위한 PR 잘 보았습니다. 전반적으로 스토리북 설정이 잘 추가되었지만, 몇 가지 개선점을 제안합니다.

가장 중요한 것은 package.json에 추가된 devDependencies의 버전들이 아직 출시되지 않은 미래 버전이라 의존성 설치가 불가능하다는 점입니다. 이 부분을 현재 안정적인 최신 버전으로 수정해야 합니다. dependencies 블록에 있는 일부 패키지들(next, react 등)도 동일한 문제가 있으니 함께 확인해주세요.

또한, 스토리북 설정을 간소화하고 가독성을 높이는 몇 가지 제안을 추가했습니다. 마지막으로, 프로젝트를 깔끔하게 유지하기 위해 스토리북 초기화 시 생성되는 예제 파일들(src/stories 경로)을 제거하는 것을 고려해보시는 것이 좋겠습니다.

Comment thread package.json
Comment on lines +41 to +52
"storybook": "^10.2.3",
"@storybook/nextjs-vite": "^10.2.3",
"@chromatic-com/storybook": "^5.0.0",
"@storybook/addon-vitest": "^10.2.3",
"@storybook/addon-a11y": "^10.2.3",
"@storybook/addon-docs": "^10.2.3",
"vite": "^7.3.1",
"eslint-plugin-storybook": "^10.2.3",
"vitest": "^4.0.18",
"playwright": "^1.58.1",
"@vitest/browser-playwright": "^4.0.18",
"@vitest/coverage-v8": "^4.0.18"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

추가된 devDependencies의 버전이 대부분 잘못되었습니다. storybook, vite, vitest, playwright 관련 패키지들의 버전이 아직 출시되지 않은 미래 버전으로 설정되어 있어 의존성 설치에 실패하게 됩니다. 현재 안정적인 최신 버전으로 수정해야 합니다. 예를 들어 storybook^8.2.2, vite^5.3.1 입니다.

Suggested change
"storybook": "^10.2.3",
"@storybook/nextjs-vite": "^10.2.3",
"@chromatic-com/storybook": "^5.0.0",
"@storybook/addon-vitest": "^10.2.3",
"@storybook/addon-a11y": "^10.2.3",
"@storybook/addon-docs": "^10.2.3",
"vite": "^7.3.1",
"eslint-plugin-storybook": "^10.2.3",
"vitest": "^4.0.18",
"playwright": "^1.58.1",
"@vitest/browser-playwright": "^4.0.18",
"@vitest/coverage-v8": "^4.0.18"
"storybook": "^8.2.2",
"@storybook/nextjs-vite": "^8.2.2",
"@chromatic-com/storybook": "^1.6.1",
"@storybook/addon-vitest": "^8.2.2",
"@storybook/addon-a11y": "^8.2.2",
"@storybook/addon-docs": "^8.2.2",
"vite": "^5.3.1",
"eslint-plugin-storybook": "^0.8.0",
"vitest": "^1.6.0",
"playwright": "^1.45.0",
"@vitest/browser-playwright": "^1.4.0",
"@vitest/coverage-v8": "^1.6.0"

Comment thread .storybook/main.ts
Comment on lines +5 to +10
addons: [
'@chromatic-com/storybook',
'@storybook/addon-vitest',
'@storybook/addon-a11y',
'@storybook/addon-docs',
],

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

스토리북의 핵심 기능을 모아놓은 @storybook/addon-essentials를 사용하는 것을 권장합니다. 이 애드온은 actions, controls, docs 등 필수적인 애드온들을 포함하고 있어 개별적으로 관리할 필요가 없게 해주고, 더 풍부한 개발 경험을 제공합니다. @storybook/addon-docs@storybook/addon-essentials에 포함되어 있으므로 대체할 수 있습니다. 이 애드온을 사용하려면 devDependencies에 추가해야 합니다.

Suggested change
addons: [
'@chromatic-com/storybook',
'@storybook/addon-vitest',
'@storybook/addon-a11y',
'@storybook/addon-docs',
],
addons: [
'@storybook/addon-essentials',
'@chromatic-com/storybook',
'@storybook/addon-vitest',
'@storybook/addon-a11y',
],

Comment thread eslint.config.mjs
Comment on lines +8 to +14
export default defineConfig([...nextVitals, ...nextTs, {
rules: {
'prefer-const': 'error',

'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
},
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
},

globalIgnores(['.next/**', 'out/**', 'build/**', 'next-env.d.ts']),
]);
}, globalIgnores(['.next/**', 'out/**', 'build/**', 'next-env.d.ts']), ...storybook.configs["flat/recommended"]]);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

ESLint 설정이 한 줄로 길게 작성되어 가독성이 떨어집니다. 각 설정을 별도의 줄로 나누어 작성하면 코드를 이해하고 유지보수하기 더 쉬워집니다.

Suggested change
export default defineConfig([...nextVitals, ...nextTs, {
rules: {
'prefer-const': 'error',
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
},
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
},
globalIgnores(['.next/**', 'out/**', 'build/**', 'next-env.d.ts']),
]);
}, globalIgnores(['.next/**', 'out/**', 'build/**', 'next-env.d.ts']), ...storybook.configs["flat/recommended"]]);
export default defineConfig([
...nextVitals,
...nextTs,
{
rules: {
'prefer-const': 'error',
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
},
},
globalIgnores(['.next/**', 'out/**', 'build/**', 'next-env.d.ts']),
...storybook.configs['flat/recommended'],
]);

@Jieunsse Jieunsse deleted the feature/story branch February 4, 2026 04:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

기능추가 기능개발 및 추가할 때 사용해주세요.

Projects

Status: 개발 완료

Development

Successfully merging this pull request may close these issues.

스토리북 도입

1 participant