Skip to content

feat: UI 텍스트 "1:1 스터디"를 "스터디 그룹"으로 변경#570

Open
sungyoony90 wants to merge 1 commit into
developfrom
claude/issue-568-20260502-0208
Open

feat: UI 텍스트 "1:1 스터디"를 "스터디 그룹"으로 변경#570
sungyoony90 wants to merge 1 commit into
developfrom
claude/issue-568-20260502-0208

Conversation

@sungyoony90
Copy link
Copy Markdown

@sungyoony90 sungyoony90 commented May 2, 2026

Summary

  • 코드베이스 전반에 걸쳐 UI 텍스트 "1:1 스터디"를 "스터디 그룹"으로 변경 (17개 파일)
  • 네비게이션, 랜딩 페이지, SEO 키워드, 안내 문구 등 포함

Closes #568

Generated with Claude Code

Summary by CodeRabbit

릴리스 노트

  • Style
    • 애플리케이션 전체에서 "1:1 스터디"를 "스터디 그룹"으로 일관되게 업데이트했습니다. SEO 키워드, 네비게이션 메뉴, 버튼 라벨, 모달 메시지, 페이지 헤더, 요약 텍스트 등이 모두 변경되었습니다.

Co-authored-by: sungyoony90 <sungyoony90@users.noreply.github.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
study-platform-client-dev Error Error May 2, 2026 4:24am

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 2, 2026

📝 Walkthrough

Walkthrough

이 PR은 애플리케이션 전역에서 문자열 "1:1 스터디"를 "스터디 그룹"으로 일관되게 치환합니다. SEO 메타데이터, 네비게이션 레이블, 사용자 안내 메시지, 페이지 헤더, 모달 텍스트를 포함한 16개 파일의 텍스트를 업데이트합니다.

Changes

텍스트 기반 스터디 유형명 변경

Layer / File(s) Summary
SEO & 메타데이터
src/utils/seo.ts, src/app/(landing)/layout.tsx, src/app/(landing)/page.tsx
기본 SEO 키워드와 랜딩 페이지 메타데이터에서 '1:1 스터디''스터디 그룹' 치환
네비게이션 라벨
src/components/common/layout/header-nav.tsx, src/components/common/layout/mobile-menu-drawer.tsx, src/components/group-study/review/study-review-tab-nav.tsx, src/components/home/study-matching-toggle.tsx, src/components/home/tab-navigation.tsx
헤더, 모바일 메뉴 드로어, 탭 네비게이션, 토글 컴포넌트의 항목 레이블을 스터디 그룹으로 통일
사용자 메시지 및 모달
src/components/common/modals/phone-verification-modal.tsx
본인인증 모달의 설명 텍스트를 스터디 그룹 진행을 위한 안내로 업데이트
스터디 히스토리 컴포넌트
src/components/one-to-one/history/study-history-header.tsx, src/components/one-to-one/history/study-history-list-section.tsx, src/components/one-to-one/history/study-history-summary.tsx, src/components/one-to-one/history/study-history-tab-client.tsx
헤더 제목, 빈 상태 메시지, 요약 텍스트, 로딩 메시지를 일관되게 변경
페이지 및 기능 컴포넌트
src/app/(service)/(my)/my-study-review/one-to-one/page.tsx, src/components/one-to-one/hall-of-fame/hall-of-fame-header.tsx, src/components/pages/landing/landing-content.tsx, src/features/admin/matching/ui/admin-matching-page-client.tsx
스터디 유형명 prop, 기능 카드 제목, 페이지 헤더, 관리 페이지 제목을 업데이트

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Poem

깡충깡충 뛰는 토끼 🐰
1:1 스터디에서 스터디 그룹으로
온통 하나로 모이는 글자들
함께 배우는 즐거움 두 배로
텍스트가 춤을 추고 ✨
모두의 마음이 더 커져요 💚

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목이 변경사항의 핵심을 명확하게 설명합니다. 전반적인 UI 텍스트 변경('1:1 스터디' → '스터디 그룹')을 정확히 요약합니다.
Linked Issues check ✅ Passed 17개 파일의 모든 UI 텍스트에서 '1:1 스터디'를 '스터디 그룹'으로 변경하여 이슈 #568의 요구사항을 완전히 충족합니다.
Out of Scope Changes check ✅ Passed 모든 변경사항이 이슈 #568에서 요청한 '1:1 스터디' → '스터디 그룹' 텍스트 변경의 범위 내에 있습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/issue-568-20260502-0208

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 0/1 reviews remaining, refill in 60 minutes.

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/app/`(landing)/layout.tsx:
- Around line 15-18: The SEO metadata uses mixed terms (some entries contain
"1:1" while keywords include "스터디 그룹"); update the metadata in layout.tsx so the
title, description, and keywords use a single consistent term (e.g., change all
occurrences of "1:1" to the chosen term or vice versa) — specifically edit the
title, description and the keywords array (and any other metadata variables in
this file such as the later keyword entries around the same block) to use the
same phrase uniformly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 96e60bd0-4e8f-452e-ac55-91b8a54bff19

📥 Commits

Reviewing files that changed from the base of the PR and between bb2f8a6 and 52b0a2b.

📒 Files selected for processing (17)
  • src/app/(landing)/layout.tsx
  • src/app/(landing)/page.tsx
  • src/app/(service)/(my)/my-study-review/one-to-one/page.tsx
  • src/components/common/layout/header-nav.tsx
  • src/components/common/layout/mobile-menu-drawer.tsx
  • src/components/common/modals/phone-verification-modal.tsx
  • src/components/group-study/review/study-review-tab-nav.tsx
  • src/components/home/study-matching-toggle.tsx
  • src/components/home/tab-navigation.tsx
  • src/components/one-to-one/hall-of-fame/hall-of-fame-header.tsx
  • src/components/one-to-one/history/study-history-header.tsx
  • src/components/one-to-one/history/study-history-list-section.tsx
  • src/components/one-to-one/history/study-history-summary.tsx
  • src/components/one-to-one/history/study-history-tab-client.tsx
  • src/components/pages/landing/landing-content.tsx
  • src/features/admin/matching/ui/admin-matching-page-client.tsx
  • src/utils/seo.ts

Comment on lines 15 to +18
title: 'ZERO-ONE - 1:1 기상 스터디 플랫폼',
description:
'매일 아침을 함께 시작하는 1:1 기상 스터디 플랫폼. 현직 멘토와 함께 성장하세요.',
keywords: ['스터디', '기상', '멘토링', '1:1 스터디', '개발자', '면접 준비'],
keywords: ['스터디', '기상', '멘토링', '스터디 그룹', '개발자', '면접 준비'],
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

SEO 메타데이터 용어 변경이 부분 적용되어 일관성이 깨집니다.

Line [18]은 "스터디 그룹"으로 바뀌었지만, Line [15], Line [17], Line [34], Line [35]에는 여전히 1:1 문구가 남아 있어 검색/공유 메타 메시지가 혼재됩니다. 이 PR 목표(용어 통일)에 맞게 같은 블록에서 함께 맞추는 편이 안전합니다.

제안 수정안
 export const metadata: Metadata = {
-  title: 'ZERO-ONE - 1:1 기상 스터디 플랫폼',
+  title: 'ZERO-ONE - 기상 스터디 그룹 플랫폼',
   description:
-    '매일 아침을 함께 시작하는 1:1 기상 스터디 플랫폼. 현직 멘토와 함께 성장하세요.',
+    '매일 아침을 함께 시작하는 기상 스터디 그룹 플랫폼. 현직 멘토와 함께 성장하세요.',
   keywords: ['스터디', '기상', '멘토링', '스터디 그룹', '개발자', '면접 준비'],
@@
-    title: 'ZERO-ONE - 1:1 기상 스터디 플랫폼',
-    description: '매일 아침을 함께 시작하는 1:1 기상 스터디 플랫폼',
+    title: 'ZERO-ONE - 기상 스터디 그룹 플랫폼',
+    description: '매일 아침을 함께 시작하는 기상 스터디 그룹 플랫폼',

Also applies to: 34-35

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/app/`(landing)/layout.tsx around lines 15 - 18, The SEO metadata uses
mixed terms (some entries contain "1:1" while keywords include "스터디 그룹"); update
the metadata in layout.tsx so the title, description, and keywords use a single
consistent term (e.g., change all occurrences of "1:1" to the chosen term or
vice versa) — specifically edit the title, description and the keywords array
(and any other metadata variables in this file such as the later keyword entries
around the same block) to use the same phrase uniformly.

@seong-jin-jo
Copy link
Copy Markdown
Contributor

@claude 현재 dev 브렌치 머지될때 storybook 서버가 최신화 안되는 것 같은데 원인 분석.

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented May 5, 2026

Claude finished @seong-jin-jo's task in 2m 3s —— View job


Storybook 서버 미업데이트 원인 분석

  • CI/CD 워크플로우 파일 확인
  • Storybook 배포 관련 설정 분석
  • CI 실행 이력 확인
  • 원인 파악 및 정리

핵심 원인

deploy-dev.yml (dev 서버 배포 워크플로우)에 Storybook 빌드/배포 단계가 전혀 없습니다.

현재 dev 브랜치 머지 시 동작하는 파이프라인은 아래와 같습니다.

워크플로우 트리거 실제 동작
deploy-dev.yml push: develop Next.js 앱만 Docker 빌드 후 서버 배포
chromatic.yml push: develop + PR Chromatic(클라우드)에만 Storybook 배포
ci.yml PR only Storybook 빌드 검증만 (배포 없음)

상세 분석

1. Dockerfile.dev — Storybook 스텝 없음

RUN yarn install && yarn build --no-lint  # Next.js 빌드만 실행
# yarn build-storybook 없음

2. deploy-dev.yml docker-compose — Storybook 컨테이너 없음

services:
  frontend:          # Next.js 앱 (port 14855)만 존재
    image: zerooneitkr/frontend:develop
# Storybook 서비스 없음

3. chromatic.yml — Chromatic 클라우드 전용

on:
  push:
    branches: ['develop']   # develop 머지 시 실행은 됨

develop 머지 시 Chromatic 배포는 실행되고 있으나, 이는 Chromatic SaaS 서비스로 올라가는 것이지 test.zeroone.it.kr 같은 자체 호스팅 서버가 아닙니다. 현재 CI 로그 기준으로 Storybook Chromatic Deploymentsuccess 상태로 확인됩니다.

결론

  • 자체 dev 서버(test.zeroone.it.kr)에는 Storybook이 배포되는 파이프라인이 존재하지 않습니다
  • Storybook은 오직 Chromatic 클라우드에만 배포됩니다
  • "Storybook 서버가 최신화 안된다"는 증상이 Chromatic이 아닌 별도 자체 호스팅 URL을 의미한다면, 해당 배포 파이프라인이 애초에 구성되어 있지 않은 것입니다

해결 방향 (구현이 필요한 경우)

deploy-dev.yml에 Storybook 빌드 + 서버 배포 스텝을 추가해야 합니다.

# deploy-dev.yml에 추가할 job 예시
build-storybook:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4
    - run: yarn install
    - run: yarn build-storybook
    - name: Upload to server
      # scp 또는 rsync로 storybook-static/ 를 서버의 nginx 디렉토리로 복사

단, 서버 측에 nginx 설정 및 별도 포트/서브도메인 구성도 필요합니다.

혹시 "Storybook 서버"가 Chromatic 링크를 의미하신다면, 현재 develop push 시 정상 배포되고 있으므로 Chromatic 대시보드에서 최신 빌드 확인을 권장합니다.

@seong-jin-jo
Copy link
Copy Markdown
Contributor

@claude Chromatic 클라우드에 배포되는 코드가 뭐고 언제 트리거 되서 어떻게 배포되는지? 별도 컨테이너에 뜨나?

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented May 5, 2026

Claude finished @seong-jin-jo's task in 34s —— View job


Chromatic 배포 분석

  • CI 워크플로우 파일 확인 (chromatic.yml)
  • Chromatic 배포 방식 분석
  • 결과 정리

Chromatic에 배포되는 것

Storybook 정적 빌드물 (storybook-static/ 디렉토리)이 Chromatic SaaS 플랫폼으로 업로드됩니다.

chromaui/action@latest GitHub Action이 내부적으로:

  1. yarn build-storybook 실행 → 정적 파일 생성
  2. 생성된 정적 파일을 Chromatic 서버로 HTTP 업로드

트리거 조건

.github/workflows/chromatic.yml 기준:

이벤트 조건
push develop 브랜치에 push될 때 (머지 포함)
pull_request develop 브랜치 대상 PR 생성/업데이트 시

즉, PR 열릴 때마다 + develop에 머지될 때마다 실행됩니다.


배포 방식 — 별도 컨테이너가 뜨나?

아니요, 별도 컨테이너는 뜨지 않습니다.

동작 구조:

GitHub Actions Runner (ubuntu-latest, 임시 VM)
└── chromaui/action@latest
    ├── yarn build-storybook  ← Storybook 정적 빌드
    └── HTTP POST → Chromatic 서버 (chromatic.com)
                                └── 정적 파일 호스팅
                                    비주얼 리그레션 테스트 실행
  • GitHub Actions의 임시 Runner VM에서 빌드 후 Chromatic SaaS로 파일을 업로드하는 방식
  • 자체 서버(test.zeroone.it.kr)에는 아무것도 배포되지 않음
  • Chromatic이 자체 인프라에서 Storybook을 정적으로 서빙 + 스냅샷 비교

결론

Chromatic은 컨테이너 기반 자체 호스팅이 아닌 SaaS 정적 호스팅 서비스입니다. CHROMATIC_PROJECT_TOKEN secret으로 인증하고, 빌드된 Storybook 파일을 Chromatic의 CDN에 올리는 방식이라 별도 서버나 포트는 필요 없습니다. 배포 결과는 PR 코멘트에 달리는 Chromatic 링크로 확인할 수 있습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

하잇

2 participants