Skip to content

[feature] 네이버 맵 클릭 이벤트 트래킹 및 누락 이벤트 전반 추가, /jira-task 대화형 커맨드 신규 생성#1563

Merged
seongwon030 merged 14 commits into
develop-fefrom
feature/#1562-add-naver-map-event-tracking-MOA-868
May 18, 2026
Merged

[feature] 네이버 맵 클릭 이벤트 트래킹 및 누락 이벤트 전반 추가, /jira-task 대화형 커맨드 신규 생성#1563
seongwon030 merged 14 commits into
develop-fefrom
feature/#1562-add-naver-map-event-tracking-MOA-868

Conversation

@seongwon030
Copy link
Copy Markdown
Member

@seongwon030 seongwon030 commented May 18, 2026

#️⃣ 연관된 이슈

#1562

📝작업 내용

Summary

1) 네이버 맵 클릭 이벤트 트래킹 및 누락 이벤트 추가 (기존)

  • 동아리 상세 페이지 네이버 맵 클릭(지도 카드, 프로필 카드 내 버튼) 두 진입점에 Club Map Clicked Mixpanel 이벤트 추가
  • /check-tracking 커맨드로 전체 이벤트 누락 감사 후 발견된 항목 일괄 수정
    • SearchBox: 하드코딩 문자열 → USER_EVENT.SEARCH_BOX_CLICKED
    • ClubCard: mixpanel.track() 직접 호출 → useMixpanelTrack 훅으로 통일
    • ClubDetailTopBar, PromotionDetailTopBar: 뒤로가기 버튼 BACK_BUTTON_CLICKED 추가
    • Header + useHeaderNavigation: 모바일 메뉴 열기 MOBILE_MENU_BUTTON_CLICKED 추가
  • scripts/jira-task.sh: Jira 스토리 하위 작업 + 브랜치를 GitHub Actions으로 자동 생성하는 스크립트 추가
  • .claude/commands/check-tracking.md: 이벤트 트래킹 감사 Claude 커맨드 추가

2) /jira-task 대화형 커맨드 신규 생성 (추가)

  • .claude/commands/jira-task.md: Jira 스토리 키를 입력하면 GitHub 이슈를 자동 생성하는 대화형 커맨드 추가
    • Jira API로 스토리 제목/인수 조건 자동 조회
    • 인수 조건 분석하여 태스크 체크리스트 자동 생성
    • 브랜치 접두사를 라벨에 맞게 자동 결정 (GitHub Actions가 이슈번호/MOA키 자동 부여)
    • 분기 브랜치에 따라 FE/BE 영역 라벨 자동 추가
    • 마감일 입력 지원 (미입력 시 오늘 날짜)
  • scripts/jira-task.sh 개선
    • --assignee 옵션 추가로 GitHub 이슈 담당자 자동 지정
    • 복수 라벨 지원 (쉼표 구분)
    • 마감일 인자 추가

Test plan

  • 동아리 상세 페이지에서 지도 카드 클릭 → Mixpanel에서 Club Map Clicked 이벤트 확인
  • 동아리 상세 페이지에서 프로필 카드 내 지도 버튼 클릭 → Club Map Clicked 이벤트 확인
  • 검색창에서 검색 실행 → SearchBox Clicked 이벤트 확인
  • 동아리 카드 클릭 → ClubCard Clicked 이벤트 확인 (훅 방식으로 동작)
  • 동아리 상세 / 프로모션 상세 뒤로가기 버튼 클릭 → Back Button Clicked 이벤트 확인
  • 모바일에서 햄버거 메뉴 열기 → Mobile Menu Button Clicked 이벤트 확인
  • npm run typecheck 통과 확인

Summary by CodeRabbit

  • Documentation
    • 이벤트 트래킹 감사 절차 문서 추가, 동아리 지도 클릭 트래킹 문서 확장, PRD 및 Jira/작업 생성 워크플로우 문서 추가/갱신
  • Chores
    • GitHub 이슈 자동 생성 스크립트 추가(jira-task.sh, jira-story.sh) 및 사용 가이드 보강
  • Refactor
    • 메뉴·검색·클럽 카드·탑바·프로모션 등 사용자 상호작용 트래킹 호출 통합 및 네비게이션 토글 처리 개선

Review Change Stack

- CLUB_MAP_CLICKED 이벤트명 추가
- 지도 카드 및 프로필 카드 내 지도 버튼 두 진입점 트래킹 적용
- jira-task.sh: gh issue create로 GitHub 이슈 생성 → Actions가 Jira 하위 작업 + 브랜치 자동 생성
- /jira-story 스킬에 GitHub 이슈 연동 플로우 추가
- SearchBox: 하드코딩 문자열 → USER_EVENT.SEARCH_BOX_CLICKED 교체
- ClubCard: mixpanel.track() 직접 호출 → useMixpanelTrack 훅으로 통일
- ClubDetailTopBar, PromotionDetailTopBar: 뒤로가기 버튼 BACK_BUTTON_CLICKED 추가
- useHeaderNavigation: handleMenuOpen 추가 (MOBILE_MENU_BUTTON_CLICKED)
- Header: 모바일 메뉴 열 때 handleMenuOpen 호출
- /check-tracking: 정의된 USER_EVENT와 실제 trackEvent 호출 현황 비교
- 트래킹 중인 이벤트 / 누락 의심 인터랙션 / 미사용 이벤트 표 형식 출력
@vercel
Copy link
Copy Markdown

vercel Bot commented May 18, 2026

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

Project Deployment Actions Updated (UTC)
moadong Ready Ready Preview, Comment May 18, 2026 1:05pm

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 18, 2026

Caution

Review failed

Pull request was closed or merged during review

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Warning

.coderabbit.yaml has a parsing error

The CodeRabbit configuration file in this repository has a parsing error and default settings were used instead. Please fix the error(s) in the configuration file. You can initialize chat with CodeRabbit to get help with the configuration file.

💥 Parsing errors (1)
Validation error: Invalid regex pattern for base branch. Received: "**" at "reviews.auto_review.base_branches[0]"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Walkthrough

USER_EVENT에 이벤트 추가/수정, 여러 컴포넌트의 Mixpanel 트래킹 통일 적용, 이벤트 트래킹 감사 문서와 Jira→GitHub 자동화 스크립트 및 운영 문서가 추가/확장되었습니다.

Changes

Mixpanel 이벤트 트래킹 통합 및 인프라 개선

Layer / File(s) Summary
이벤트 상수 정의 및 트래킹 감사·문서
src/constants/eventName.ts, frontend/.claude/commands/check-tracking.md, frontend/docs/features/club-detail/map-event-tracking.md, frontend/.claude/commands/prd.md, frontend/.claude/commands/jira-story.md, frontend/.claude/commands/jira-task.md
USER_EVENTCLUB_MAP_CLICKED 추가, 검색 이벤트 키 교체(SEARCH_EXCUTED), 이벤트 정의 vs 사용 비교를 위한 감사(bash) 절차 문서 및 동아리 지도 트래킹 문서와 PRD/명령 문서들 추가·수정.
Jira 스토리/태스크 스크립트
frontend/scripts/jira-story.sh, frontend/scripts/jira-task.sh
jira-story.sh의 EPIC/Sprint 자동 조회, jq 의존성 체크 및 payload 확장(assignee/epic/sprint) 적용. jira-task.sh는 GitHub CLI(gh) 기반 이슈 생성, 본문 템플릿 및 라벨 처리 로직을 추가.
헤더 모바일 메뉴 트래킹
src/hooks/Header/useHeaderNavigation.ts, src/components/common/Header/Header.tsx
useHeaderNavigationhandleMenuOpen 추가 및 Header의 toggle 로직을 열림/닫힘에 따라 적절한 핸들러 호출로 변경해 모바일 메뉴 오픈을 트래킹합니다.
클럽 상세 페이지 지도·TopBar 트래킹
src/pages/ClubDetailPage/ClubDetailPage.tsx, src/pages/ClubDetailPage/components/ClubDetailTopBar/ClubDetailTopBar.tsx
지도 카드 및 프로필 카드의 지도 클릭 핸들러가 모달 오픈과 함께 trackEvent(USER_EVENT.CLUB_MAP_CLICKED)를 호출하도록 변경되었고, TopBar의 뒤로가기 클릭에서 USER_EVENT.BACK_BUTTON_CLICKED를 트래킹합니다.
컴포넌트 트래킹 통일 및 확장
src/pages/MainPage/components/ClubCard/ClubCard.tsx, src/pages/MainPage/components/SearchBox/SearchBox.tsx, src/pages/PromotionPage/components/detail/PromotionDetailTopBar/PromotionDetailTopBar.tsx
ClubCard의 직접 mixpanel 호출을 useMixpanelTrack로 교체하고, SearchBox와 PromotionDetailTopBar에서 USER_EVENT 상수를 사용하도록 트래킹 호출을 통일했습니다.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related issues

Possibly related PRs

Suggested labels

💻 FE, 🚁AI

Suggested reviewers

  • oesnuj
  • lepitaaar
  • suhyun113
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목이 변경사항의 주요 내용을 명확하고 구체적으로 요약하고 있습니다. 네이버 맵 클릭 이벤트 트래킹, 누락 이벤트 추가, jira-task 대화형 커맨드 생성이라는 세 가지 핵심 변경사항이 간결하게 표현되어 있습니다.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ 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 feature/#1562-add-naver-map-event-tracking-MOA-868

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

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

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 18, 2026

✅ UI 변경사항 없음

구분 링크
📖 Storybook https://67904e61c16daa99a63b44a7-qgzwpnywvr.chromatic.com/

전체 57개 스토리 · 22개 컴포넌트

Copy link
Copy Markdown
Contributor

@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: 3

🧹 Nitpick comments (1)
frontend/scripts/jira-task.sh (1)

68-68: 💤 Low value

레이블이 하드코딩되어 있습니다.

모든 이슈에 "✨ Feature" 레이블을 고정으로 부여하는데, 버그 수정이나 문서 작업 등에는 적합하지 않을 수 있습니다. 필요시 레이블을 인자로 받거나 이슈 타입에 따라 분기하는 것을 고려하세요.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@frontend/scripts/jira-task.sh` at line 68, 현재 jira-task.sh에 하드코딩된 --label "✨
Feature"를 제거하고 --label 값을 커맨드라인 인자 또는 이슈 타입에 따른 매핑으로 받아오도록 변경하세요; 구체적으로
jira-task.sh에서 현재 사용중인 --label "✨ Feature" 토큰을 대체할 새 옵션(--label|-l) 파싱 로직을 추가하거나
이슈 생성 코드가 참조하는 변수(issue_type 또는 issue_label)를 기준으로 레이블을 결정하는 분기문을 넣어 버그/문서/기타
타입에 맞는 레이블을 할당하도록 구현하세요.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@frontend/scripts/jira-task.sh`:
- Around line 65-69: The script builds ISSUE_URL using gh issue create but never
passes the ASSIGNEE to GitHub, so issues are not actually assigned; update the
gh issue create invocation (the command that sets ISSUE_URL) to include the
--assignee "$ASSIGNEE" flag (and guard it so you only add the flag when ASSIGNEE
is non-empty) so the ASSIGNEE variable results in a real GitHub assignment when
invoking gh issue create.

In `@frontend/src/components/common/Header/Header.tsx`:
- Around line 57-61: The state updater passed to setIsMenuOpen currently calls
handleMenuOpen/handleMenuClose (which run Mixpanel trackEvent) inside the
updater, risking duplicate tracking; change the updater to only compute and
return the next boolean (e.g., setIsMenuOpen(prev => !prev)), then after calling
setIsMenuOpen, call handleMenuOpen or handleMenuClose based on the resulting
value (or move the side effects into a useEffect that watches isMenuOpen) so
that handleMenuOpen and handleMenuClose are invoked outside the state updater
and side effects are not executed during React's internal multiple updater
calls.

In `@frontend/src/pages/MainPage/components/SearchBox/SearchBox.tsx`:
- Around line 25-28: The event name used in the search execution handler is
semantically wrong: inside handleSearch you call trackEvent with
USER_EVENT.SEARCH_BOX_CLICKED even though the function executes a search; change
the reported event to a search-executed name (e.g., USER_EVENT.SEARCH_EXECUTED
or the original 'Search Executed') so Mixpanel records searches rather than
clicks—update the call site in handleSearch where
trackEvent(USER_EVENT.SEARCH_BOX_CLICKED, { inputValue, page: pathname }) is
invoked, or alternatively rename the USER_EVENT constant to reflect execution
semantics and ensure any downstream consumers use the new key.

---

Nitpick comments:
In `@frontend/scripts/jira-task.sh`:
- Line 68: 현재 jira-task.sh에 하드코딩된 --label "✨ Feature"를 제거하고 --label 값을 커맨드라인 인자
또는 이슈 타입에 따른 매핑으로 받아오도록 변경하세요; 구체적으로 jira-task.sh에서 현재 사용중인 --label "✨ Feature"
토큰을 대체할 새 옵션(--label|-l) 파싱 로직을 추가하거나 이슈 생성 코드가 참조하는 변수(issue_type 또는
issue_label)를 기준으로 레이블을 결정하는 분기문을 넣어 버그/문서/기타 타입에 맞는 레이블을 할당하도록 구현하세요.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 40444733-82cc-4c8d-8974-8b15a67a5049

📥 Commits

Reviewing files that changed from the base of the PR and between 3a2b5ac and 0d82196.

📒 Files selected for processing (12)
  • frontend/.claude/commands/check-tracking.md
  • frontend/.claude/commands/jira-story.md
  • frontend/docs/features/club-detail/map-event-tracking.md
  • frontend/scripts/jira-task.sh
  • frontend/src/components/common/Header/Header.tsx
  • frontend/src/constants/eventName.ts
  • frontend/src/hooks/Header/useHeaderNavigation.ts
  • frontend/src/pages/ClubDetailPage/ClubDetailPage.tsx
  • frontend/src/pages/ClubDetailPage/components/ClubDetailTopBar/ClubDetailTopBar.tsx
  • frontend/src/pages/MainPage/components/ClubCard/ClubCard.tsx
  • frontend/src/pages/MainPage/components/SearchBox/SearchBox.tsx
  • frontend/src/pages/PromotionPage/components/detail/PromotionDetailTopBar/PromotionDetailTopBar.tsx

Comment thread frontend/scripts/jira-task.sh
Comment thread frontend/src/components/common/Header/Header.tsx Outdated
Comment thread frontend/src/pages/MainPage/components/SearchBox/SearchBox.tsx Outdated
- /prd: 기능 인터뷰 → 하위 작업 분해 → Jira 스토리 + GitHub 이슈 일괄 생성
- jira-story.sh + jira-task.sh를 연계해 스토리-하위작업 전체 플로우 자동화
Copy link
Copy Markdown
Contributor

@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 current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@frontend/.claude/commands/prd.md`:
- Around line 43-48: Two fenced code blocks in frontend/.claude/commands/prd.md
(the block starting around line 43 and the block around line 86) lack language
identifiers causing markdownlint MD040; update each opening triple-backtick to
include an appropriate language tag (e.g., ```markdown for the table block and
```text or ```none for plain text lists) so that the blocks are explicitly typed
and the linter warning is resolved.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8a89c63d-125c-466e-9636-bf5533eedfc2

📥 Commits

Reviewing files that changed from the base of the PR and between 0d82196 and 17a58fc.

📒 Files selected for processing (1)
  • frontend/.claude/commands/prd.md

Comment thread frontend/.claude/commands/prd.md
Copy link
Copy Markdown
Contributor

@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 current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@frontend/.claude/commands/jira-task.md`:
- Line 29: The fenced code block in the Markdown snippet (the triple-backtick
block containing the "📋 자동 생성 결과:" sample) is missing a language tag which
triggers MD040; update the opening delimiter from ``` to ```text so the block is
explicitly marked as text (i.e., change the three backticks that begin that code
fence to ```text).
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 59cfc949-c180-4c69-b2c8-c86bc201717c

📥 Commits

Reviewing files that changed from the base of the PR and between 17a58fc and 2328a18.

📒 Files selected for processing (2)
  • frontend/.claude/commands/jira-task.md
  • frontend/scripts/jira-task.sh
🚧 Files skipped from review as they are similar to previous changes (1)
  • frontend/scripts/jira-task.sh

Comment thread frontend/.claude/commands/jira-task.md
@suhyun113 suhyun113 changed the title feat: 네이버 맵 클릭 이벤트 트래킹 및 누락 이벤트 전반 추가 [feature] 네이버 맵 클릭 이벤트 트래킹 및 누락 이벤트 전반 추가, /jira-task 대화형 커맨드 신규 생성 May 18, 2026
@suhyun113 suhyun113 added the ✨ Feature 기능 개발 label May 18, 2026
…t-improve-MOA-878

Jira 스토리 생성 스크립트 개선 (Windows 호환성, 자동 스프린트/담당자/에픽 지정)
Copy link
Copy Markdown
Contributor

@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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
frontend/scripts/jira-story.sh (1)

105-141: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

임시 파일 정리를 위한 trap 누락

set -e 모드에서 Line 105와 131 사이에 오류가 발생하면 스크립트가 즉시 종료되어 임시 파일이 정리되지 않습니다.

🛠️ 제안: trap을 사용한 자동 정리
 # payload를 파일로 저장 (Windows 셸 호환)
 PAYLOAD_FILE=$(mktemp)
+TMPFILE=$(mktemp)
+trap 'rm -f "$PAYLOAD_FILE" "$TMPFILE" 2>/dev/null' EXIT
+
 jq -n \
   --arg summary "$SUMMARY" \

그리고 Line 131의 TMPFILE=$(mktemp)는 제거합니다.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@frontend/scripts/jira-story.sh` around lines 105 - 141, Add a trap that
removes the temporary files on EXIT/ERR so PAYLOAD_FILE and TMPFILE are always
cleaned up if the script dies under set -e; create both temp files up front
(using mktemp for PAYLOAD_FILE and TMPFILE), register a trap like trap 'rm -f
"$PAYLOAD_FILE" "$TMPFILE"' EXIT, then proceed to build the payload and call
curl, and remove the now-redundant second TMPFILE=$(mktemp) line (ensure the
variables used by the curl -o and the final BODY=$(cat "$TMPFILE") refer to the
mktemp-created TMPFILE).
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@frontend/scripts/jira-story.sh`:
- Around line 105-141: Add a trap that removes the temporary files on EXIT/ERR
so PAYLOAD_FILE and TMPFILE are always cleaned up if the script dies under set
-e; create both temp files up front (using mktemp for PAYLOAD_FILE and TMPFILE),
register a trap like trap 'rm -f "$PAYLOAD_FILE" "$TMPFILE"' EXIT, then proceed
to build the payload and call curl, and remove the now-redundant second
TMPFILE=$(mktemp) line (ensure the variables used by the curl -o and the final
BODY=$(cat "$TMPFILE") refer to the mktemp-created TMPFILE).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 54366a0d-97dd-4db3-bb85-5d00aebff2c7

📥 Commits

Reviewing files that changed from the base of the PR and between 2328a18 and 6cdc110.

📒 Files selected for processing (3)
  • frontend/.claude/commands/jira-task.md
  • frontend/scripts/jira-story.sh
  • frontend/scripts/jira-task.sh
✅ Files skipped from review due to trivial changes (1)
  • frontend/.claude/commands/jira-task.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • frontend/scripts/jira-task.sh

- Header toggleMenu: handleMenuOpen/Close 호출을 setState 외부로 이동
  (React Strict Mode에서 updater 중복 실행 시 이벤트 중복 발생 방지)
- SEARCH_BOX_CLICKED → SEARCH_EXCUTED 이벤트명 수정
@seongwon030 seongwon030 merged commit 158a9b1 into develop-fe May 18, 2026
4 of 5 checks passed
@seongwon030 seongwon030 deleted the feature/#1562-add-naver-map-event-tracking-MOA-868 branch May 18, 2026 13:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feature 기능 개발

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants