Skip to content

LC-2856 ADMIN 마그넷 내부화 글 등록#2131

Merged
hyonun321 merged 4 commits intoLC-2838-Sprint-17from
LC-2856-ADMIN-마그넷-내부화-글-등록
Feb 25, 2026

Hidden character warning

The head ref may contain hidden characters: "LC-2856-ADMIN-\ub9c8\uadf8\ub137-\ub0b4\ubd80\ud654-\uae00-\ub4f1\ub85d"
Merged

LC-2856 ADMIN 마그넷 내부화 글 등록#2131
hyonun321 merged 4 commits intoLC-2838-Sprint-17from
LC-2856-ADMIN-마그넷-내부화-글-등록

Conversation

@hyonun321
Copy link
Contributor

@hyonun321 hyonun321 commented Feb 20, 2026

연관 작업

hyonun321 and others added 3 commits February 21, 2026 01:26
MagnetPostContent, MagnetPostDetail, MagnetPostReqBody 타입과
fetchMagnetPost, saveMagnetPost, fetchManageableMagnets mock 함수 추가

Co-Authored-By: Claude Opus 4.6 <[email protected]>
챌린지 프로그램 필터링 + CTA 소제목 자동완성 기능 포함

Co-Authored-By: Claude Opus 4.6 <[email protected]>
MagnetPostPage 메인 컴포넌트, useMagnetPostForm 훅, App page 연결
타입/제목/메타디스크립션/썸네일/프로그램추천/마그넷추천/노출기간/공통신청폼/콘텐츠편집1,2/액션버튼 포함

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@hyonun321 hyonun321 changed the base branch from main to LC-2838-Sprint-17 February 20, 2026 16:28
@github-actions github-actions bot changed the title Lc 2856 admin 마그넷 내부화 글 등록 LC-2856 ADMIN 마그넷 내부화 글 등록 Feb 20, 2026
@gemini-code-assist
Copy link

Summary of Changes

Hello @hyonun321, 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은 어드민 패널에 새로운 '마그넷' 관리 시스템을 도입하여 자료집, VOD 등 다양한 리소스 유형의 생성, 목록화 및 상세 편집을 가능하게 합니다. 동시에, 이러한 새로운 '가이드북' 프로그램에 대한 사용자 대면 상세 페이지를 동적 메타데이터 및 URL 처리와 함께 구현합니다. 또한, 블로그 편집 기능이 유지보수성 향상을 위해 리팩토링되었으며, 새로운 도메인 기반 폴더 구조 및 코딩 원칙을 반영하여 프로젝트 전반의 AI 도구 가이드라인이 업데이트되었습니다.

Highlights

  • 마그넷 관리 기능 추가: 어드민 페이지에 '마그넷 관리/등록' 기능을 추가하여 자료집, VOD, 무료 템플릿 등 다양한 마그넷 콘텐츠를 생성, 목록 조회, 상세 편집할 수 있게 되었습니다.
  • 가이드북 상세 페이지 구현: 새로운 프로그램 타입인 '가이드북'에 대한 사용자 상세 페이지가 구현되었습니다. 동적 메타데이터 생성, URL 슬러그 리디렉션, 그리고 가이드북 전용 UI 컴포넌트가 포함됩니다.
  • 블로그 수정 페이지 리팩토링: 기존 블로그 수정 페이지의 로직을 useBlogEditForm 커스텀 훅으로 분리하여 상태 관리와 코드의 응집도를 개선하고, 서버 컴포넌트에서 초기 데이터를 가져오도록 변경했습니다.
  • AI 도구 규칙 및 폴더 구조 문서 업데이트: Copilot 및 Claude와 같은 AI 도구들이 따라야 할 프로젝트 규칙 문서(AGENTS.md, CLAUDE.md)를 대폭 확장하고, 도메인 기반 폴더 구조에 대한 상세 가이드라인을 추가했습니다.

🧠 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
  • .cursor/rules/domain-folder-structure.mdc
    • 도메인 기반 폴더 구조 규칙을 정의하는 새 파일이 추가되었습니다.
  • .github/copilot-instructions.md
    • Copilot 지침이 도메인 기반 폴더 구조, 코딩 스타일, 품질 원칙, 성능 및 상세 규칙 참조를 포함하도록 업데이트되었습니다.
  • .gitignore
    • .claude/settings.local.json 파일이 .gitignore에 추가되었습니다.
  • AGENTS.md
    • AI 에이전트를 위한 저장소 가이드라인이 도메인 기반 폴더 구조, 파일 배치 규칙, 금지 패턴, 삭제 용이성 원칙, 의존성 방향, 코딩 스타일, 코드 품질, 핵심 패턴, 성능, 테스트, 커밋 및 PR 가이드라인을 포함하도록 대폭 확장되었습니다.
  • CLAUDE.md
    • AI 도구를 위한 프로젝트 규칙을 정의하는 새 파일이 추가되었습니다. 여기에는 기술 스택, 명령어, 핵심 원칙, 폴더 구조, 코딩 스타일, 커밋 메시지, 코드 품질 체크리스트, Vercel React 모범 사례 및 테스트가 포함됩니다.
  • src/api/blog/blog.ts
    • useBlogQuery 훅이 initialData 옵션을 받도록 수정되었습니다.
  • src/api/curation.ts
    • curationTypeSchemaRESOURCE 타입이 추가되었습니다.
  • src/api/guidebook/guidebook.ts
    • 가이드북 데이터를 가져오는 (목업 구현) 새 파일이 추가되었습니다.
  • src/api/guidebook/guidebookSchema.ts
    • 가이드북 가격 및 데이터에 대한 Zod 스키마를 정의하는 새 파일이 추가되었습니다.
  • src/app/(user)/program/guidebook/[id]/[title]/page.tsx
    • 동적 메타데이터 및 슬러그 리디렉션을 포함하는 가이드북 상세 페이지를 위한 새 파일이 추가되었습니다.
  • src/app/(user)/program/guidebook/[id]/loading.tsx
    • 가이드북 상세 페이지를 위한 로딩 컴포넌트가 추가되었습니다.
  • src/app/(user)/program/guidebook/[id]/page.tsx
    • 가이드북 상세 페이지 리디렉션을 위한 새 파일이 추가되었습니다.
  • src/app/(user)/program/old/ProgramDetailLegacyPage.tsx
    • programType prop이 guidebook을 제외하도록 업데이트되었습니다.
  • src/app/admin/AdminSidebar.tsx
    • 어드민 사이드바에 '마그넷 관리/등록' 링크가 추가되었습니다.
  • src/app/admin/blog/banner/create/page.tsx
    • BlogBannerCreatePage의 import 경로가 변경되었습니다.
  • src/app/admin/blog/banner/edit/[id]/page.tsx
    • BlogBannerEditPage의 import 경로가 변경되었습니다.
  • src/app/admin/blog/banner/page.tsx
    • BlogBannerListPage의 import 경로가 변경되었습니다.
  • src/app/admin/blog/create/page.tsx
    • BlogCreatePage의 import 경로가 변경되었습니다.
  • src/app/admin/blog/edit/[id]/loading.tsx
    • 블로그 편집 페이지를 위한 로딩 컴포넌트가 추가되었습니다.
  • src/app/admin/blog/edit/[id]/page.tsx
    • 블로그 편집 페이지가 서버 측 데이터 페칭 및 새로운 BlogEditPage 컴포넌트를 사용하도록 리팩토링되었습니다.
  • src/app/admin/blog/list/page.tsx
    • BlogPostListPage의 import 경로가 변경되었습니다.
  • src/app/admin/blog/magnet/[id]/form/common/page.tsx
    • 공통 마그넷 신청 양식을 위한 플레이스홀더 페이지가 추가되었습니다.
  • src/app/admin/blog/magnet/[id]/form/page.tsx
    • 마그넷 신청 양식을 위한 플레이스홀더 페이지가 추가되었습니다.
  • src/app/admin/blog/magnet/[id]/post/page.tsx
    • 마그넷 게시물 관리를 위한 새 페이지가 추가되었습니다.
  • src/app/admin/blog/magnet/list/page.tsx
    • 마그넷 목록 관리를 위한 새 페이지가 추가되었습니다.
  • src/app/admin/blog/reviews/page.tsx
    • BlogRatingListPage의 import 경로가 변경되었습니다.
  • src/assets/icons/file.svg
    • 파일 아이콘을 위한 새 SVG 파일이 추가되었습니다.
  • src/assets/icons/folder.svg
    • 폴더 아이콘을 위한 새 SVG 파일이 추가되었습니다.
  • src/common/header/BackHeader.tsx
    • BackHeader의 스타일링이 업데이트되었습니다.
  • src/domain/admin/blog/BlogBannerCreatePage.tsx
    • src/domain/admin/pages/blog/BlogBannerCreatePage.tsx에서 이름이 변경되었습니다.
  • src/domain/admin/blog/BlogBannerEditPage.tsx
    • src/domain/admin/pages/blog/BlogBannerEditPage.tsx에서 이름이 변경되었습니다.
  • src/domain/admin/blog/BlogBannerListPage.tsx
    • src/domain/admin/pages/blog/BlogBannerListPage.tsx에서 이름이 변경되었습니다.
  • src/domain/admin/blog/BlogCreatePage.tsx
    • src/domain/admin/pages/blog/BlogCreatePage.tsx에서 이름이 변경되었습니다.
  • src/domain/admin/blog/BlogEditPage.tsx
    • 블로그 편집을 위한 새 컴포넌트가 추가되었습니다.
  • src/domain/admin/blog/BlogPostListPage.tsx
    • src/domain/admin/pages/blog/BlogPostListPage.tsx에서 이름이 변경되었습니다.
  • src/domain/admin/blog/BlogRatingListPage.tsx
    • src/domain/admin/pages/blog/BlogRatingListPage.tsx에서 이름이 변경되었습니다.
  • src/domain/admin/blog/hooks/useBlogEditForm.ts
    • 블로그 편집 폼 로직을 위한 새 커스텀 훅이 추가되었습니다.
  • src/domain/admin/blog/magnet/MagnetCreateModal.tsx
    • 마그넷 생성을 위한 새 모달 컴포넌트가 추가되었습니다.
  • src/domain/admin/blog/magnet/MagnetFilter.tsx
    • 마그넷 필터링을 위한 새 컴포넌트가 추가되었습니다.
  • src/domain/admin/blog/magnet/MagnetListPage.tsx
    • 마그넷 목록을 표시하기 위한 새 컴포넌트가 추가되었습니다.
  • src/domain/admin/blog/magnet/MagnetPostPage.tsx
    • 마그넷 게시물 관리를 위한 새 컴포넌트가 추가되었습니다.
  • src/domain/admin/blog/magnet/MagnetTable.tsx
    • 마그넷 데이터를 테이블 형식으로 표시하기 위한 새 컴포넌트가 추가되었습니다.
  • src/domain/admin/blog/magnet/hooks/useMagnetPostForm.ts
    • 마그넷 게시물 폼 로직을 위한 새 커스텀 훅이 추가되었습니다.
  • src/domain/admin/blog/magnet/mock.ts
    • 마그넷 관리를 위한 새 목업 API가 추가되었습니다.
  • src/domain/admin/blog/magnet/section/MagnetProgramRecommendSection.tsx
    • 마그넷 게시물에서 프로그램 추천을 위한 새 섹션 컴포넌트가 추가되었습니다.
  • src/domain/admin/blog/magnet/section/MagnetRecommendSection.tsx
    • 마그넷 게시물에서 마그넷 추천을 위한 새 섹션 컴포넌트가 추가되었습니다.
  • src/domain/admin/blog/magnet/types.ts
    • 마그넷 관리를 위한 새 타입 정의 파일이 추가되었습니다.
  • src/domain/admin/blog/section/BlogActionButtons.tsx
    • 블로그 액션 버튼을 위한 새 컴포넌트가 추가되었습니다.
  • src/domain/admin/blog/section/BlogBasicInfoSection.tsx
    • 블로그 기본 정보 섹션을 위한 새 컴포넌트가 추가되었습니다.
  • src/domain/admin/blog/section/BlogProgramRecommendSection.tsx
    • 블로그 프로그램 추천 섹션을 위한 새 컴포넌트가 추가되었습니다.
  • src/domain/admin/blog/section/BlogPublishDateSection.tsx
    • 블로그 게시 날짜 섹션을 위한 새 컴포넌트가 추가되었습니다.
  • src/domain/admin/blog/section/BlogRecommendSection.tsx
    • 블로그 추천 섹션을 위한 새 컴포넌트가 추가되었습니다.
  • src/domain/admin/blog/section/BlogTagSection.tsx
    • 블로그 태그 섹션을 위한 새 컴포넌트가 추가되었습니다.
  • src/domain/admin/pages/blog/BlogEditPage.tsx
    • 이전 블로그 편집 페이지가 제거되었습니다.
  • src/domain/home/Intro/IntroSection.tsx
    • Intro9 SVG가 import되었고, '무료 자료집 받기' 링크가 추가되었습니다.
  • src/domain/program/ProgramDetailNavigation.tsx
    • guidebook 프로그램 타입을 위한 새로운 내비게이션 항목과 로직이 추가되었습니다.
  • src/domain/program/guidebook/GuidebookCTAButtons.tsx
    • 가이드북 CTA 버튼을 위한 새 컴포넌트가 추가되었습니다.
  • src/domain/program/guidebook/GuidebookView.tsx
    • 가이드북 상세 정보를 표시하기 위한 새 컴포넌트가 추가되었습니다.
  • src/domain/program/guidebook/ui/GuidebookBasicInfoSection.tsx
    • 가이드북 기본 정보를 표시하기 위한 새 컴포넌트가 추가되었습니다.
  • src/domain/program/program-detail/section/ApplySection.tsx
    • programType prop이 guidebook을 제외하도록 업데이트되었습니다.
  • src/domain/program/program-detail/section/MobileApplySection.tsx
    • programType prop이 guidebook을 제외하도록 업데이트되었습니다.
  • src/types/common.ts
    • ProgramType 유니온 타입에 guidebook이 추가되었습니다.
  • src/utils/convert.ts
    • convertCurationTypeToText 함수에 RESOURCE 케이스가 추가되었습니다.
  • src/utils/url.ts
    • getGuidebookTitle 함수가 추가되었습니다.
Ignored Files
  • Ignored by pattern: .gemini/** (1)
    • .gemini/styleguide.md
Activity
  • 이 PR은 새로운 마그넷 관리 기능과 가이드북 상세 페이지를 구현하고, 기존 블로그 편집 페이지를 리팩토링하는 등 여러 기능을 추가하고 개선했습니다. 현재까지 특별한 코멘트나 리뷰 활동은 기록되지 않았습니다.
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.

@hyonun321 hyonun321 self-assigned this Feb 20, 2026
Copy link

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

Choose a reason for hiding this comment

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

Code Review

이 PR은 어드민 페이지에 마그넷 글을 등록하고 관리하는 새로운 기능을 구현합니다. 전반적으로 컴포넌트, 훅, 타입이 잘 구조화되어 있습니다. 몇 가지 개선 사항과 잠재적인 문제를 발견하여 리뷰에 포함했습니다. 특히, 타입 정의의 정확성, 비동기 처리, 그리고 하드코딩된 값에 대한 부분을 확인해주시면 좋겠습니다.

- 상수화, await추가, key추가
@hyonun321 hyonun321 merged commit e3aee2c into LC-2838-Sprint-17 Feb 25, 2026
3 checks passed
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.

1 participant