Skip to content

[#26]Refactor: 미사용 코드 정리 및 pages 구조 개편#27

Merged
BaeSeong-min merged 7 commits into
developfrom
refactor/#26
May 19, 2026
Merged

[#26]Refactor: 미사용 코드 정리 및 pages 구조 개편#27
BaeSeong-min merged 7 commits into
developfrom
refactor/#26

Conversation

@BaeSeong-min

@BaeSeong-min BaeSeong-min commented May 19, 2026

Copy link
Copy Markdown
Contributor

🔍 PR 요약

어떤 변경을 했는지 간단히 설명해주세요.

  • pages/에 누적된 미접근 페이지·라우트·종속 코드를 일괄 제거하고, 잘못된 위치의 sub-view 파일을 components/ 하위로 이동
  • 총 ~5,500줄 제거, 39개 파일 삭제 + 6개 파일 이동

🧾 관련 이슈

이 PR이 관련된 이슈 번호를 명시해주세요.

🛠️ 주요 변경 사항

핵심 변경사항을 bullet point로 나열해주세요.

  • 페이지 13종 제거: AdminPayments/Matches/Stats, Overview, About, Partners, PartnerSearch, BuyerForm, CompanyList, CompanyInputForm, ContactPage, PaymentCheckout, PaymentStatus + 관련 라우트
  • hooks 9종 제거: useAnalytics, useConsultations, useCountdown, useDatePreset, useMatches, usePayments, useBuyers, useCompanies, payments/useMyPartners(중복)
  • API 모듈 7종 제거: admin, analytics, buyers, companies, consultations, matches, payments (apis/index.ts, endpoints.ts 정리 포함)
  • 컴포넌트 10종 제거: Badge, Button, Card, CompanyCard, CurrencySelect, Input, IssuedCurrencyGuide, Modal(페이지 전용) / CompanyResultCard, FeedbackButton(사용처 0건)
  • sub-view 이동: pages/payment/components/payment/ (PaymentDetail, PaymentRequestForm, PaymentVerifyInfo, PaymentComplete), pages/myBusiness/components/myBusiness/ (MyInfo, MyPartnerList)
  • 잔여 링크 정리: Footer의 /overview, /partners 링크를 /my-business 탭 라벨로 교체

🧠 의도 및 배경

왜 이 변경이 필요한지, 어떤 문제를 해결하는지 작성해주세요.

  • 라우터에 등록되어 있지만 어디서도 접근되지 않는 페이지가 다수 누적되어 코드 탐색 비용이 컸음
  • pages/ 디렉토리에 라우트가 아닌 sub-view 컴포넌트(스텝/탭/사이드 패널)가 섞여 있어 "이 파일이 페이지인가 컴포넌트인가" 판단이 어려웠음
  • 페이지가 삭제되면 자동으로 dead가 되는 hooks/API/컴포넌트가 함께 남아 있어 같은 PR 안에서 묶어 정리

- AdminPayments/Matches/Stats, Overview, About, Partners 등 13개 페이지 삭제
- router.jsx에서 미사용 import 및 Route 정의 일괄 제거
- useAnalytics, useConsultations, useCountdown, useDatePreset, useMatches, usePayments 등 삭제된 페이지 전용 hook 제거
- useBuyers, useCompanies (단건 hook 포함 미사용) 제거
- payments/useMyPartners 중복본 제거 (myBusiness/useMyPartners 유지)
- admin, analytics, buyers, companies, consultations, matches, payments 모듈 제거
- apis/index.ts에서 re-export 제거
- apis/endpoints.ts에서 관련 엔드포인트 정의 제거 (auth/partners/myBusiness/escrowPayments만 유지)
- 삭제된 페이지 전용: Badge, Button, Card, CompanyCard, CurrencySelect, Input, IssuedCurrencyGuide, Modal
- 사용처 0건 dead 컴포넌트: CompanyResultCard, FeedbackButton
- PaymentDetail, PaymentRequestForm, PaymentVerifyInfo, PaymentComplete를 components/payment 하위로 이동
- pages/payment에는 라우팅되는 PaymentsPage, CreatePayment만 남김
- CreatePayment, PaymentsPage의 import 경로 업데이트
- MyInfo, MyPartnerList를 components/myBusiness 하위로 이동
- pages/myBusiness에는 라우팅되는 MyBusiness만 남김
- MyBusiness의 import 경로 업데이트
- /overview, /partners 링크를 /my-business 탭 라벨로 교체
@vercel

vercel Bot commented May 19, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
k-statra-frontend Ready Ready Preview, Comment May 19, 2026 7:28am

@coderabbitai

coderabbitai Bot commented May 19, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

지불, 회사, 바이어, 상담, 관리자, 분석, 매치 API 모듈과 관련 훅, 페이지 컴포넌트, UI 컴포넌트를 제거하고 API 재내보내기를 partnersApi/myBusinessApi/escrowPaymentsApi로 업데이트하며 컴포넌트 import 경로를 pages에서 components로 이동하고 라우팅을 새로운 흐름으로 재구성합니다.

Changes

레거시 아키텍처 제거 및 새로운 구조로 마이그레이션

Layer / File(s) Summary
API 모듈 및 재내보내기 정리
src/apis/endpoints.ts, src/apis/index.ts, src/apis/modules/companies.ts
payments, companies, buyers, consultations, admin, analytics, matches의 API 재내보내기가 제거되고 partnersApi, myBusinessApi, escrowPaymentsApi로 업데이트됩니다. 파트너 검색 엔드포인트 정의가 auth 블록 다음으로 재배치됩니다.
컴포넌트 import 경로 이동 및 라우팅 갱신
src/pages/myBusiness/MyBusiness.jsx, src/pages/payment/CreatePayment.jsx, src/pages/payment/PaymentsPage.jsx, src/router.jsx
MyBusiness, CreatePayment, PaymentsPage의 서브컴포넌트 import 경로가 @/pages/*에서 @/components/*로 변경되고, 라우터에서 /schedule, /payments, /payments/create, /matches 경로가 추가되며 기존의 여러 라우트가 제거됩니다.
네비게이션 및 기타 UI 갱신
src/components/Footer.jsx
푸터의 nav_my_business 섹션 링크가 /overview와 /partners에서 /my-business으로 통합됩니다.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • K-Statra/frontend#13: 메인 PR의 /matches 라우팅 추가 및 myBusinessApi 재내보내기와 PR #13의 매칭 구현이 직접적으로 연결되어 있습니다.
  • K-Strata/frontend#16: 메인 PR이 escrowPaymentsApi를 유지하며 기존 paymentsApi를 제거하고, PR #16에서 escrow 결제 흐름 구현이 이루어져 escrow 결제 API 표면에서 직접 연관됩니다.
  • K-Strata/frontend#4: PR #4에서 메인 PR이 제거하는 API 모듈, 훅, 컴포넌트들을 새로 추가하여 구조를 정립했기 때문에 동일 코드 영역의 역방향 변경입니다.

Poem

옛것을 정리하고 새것을 맞이하네 🐰
레거시는 안녕, 깔끔한 구조 반가워요
경로는 옮겨지고, 라우트는 새로워졌으니
미래의 기능들이 여기 자리 잡을 거예요 ✨

🚥 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
Title check ✅ Passed PR 제목은 주요 변경사항인 미사용 코드 정리와 pages 구조 개편을 명확하고 간결하게 요약하고 있습니다.
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.
Description check ✅ Passed PR 설명이 template의 모든 필수 섹션을 포함하고 있으며, 변경 사항이 명확하게 설명되어 있습니다.

✏️ 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 refactor/#26

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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 `@src/components/Footer.jsx`:
- Around line 25-26: nav_my_business's second entry (labelKey
"my_business_tab_partner_list") currently points to the same path as the first
entry, causing the partner tab to never open; update the second entry's
destination so it deep-links to the partner tab (e.g., change the "to" value for
the object with labelKey "my_business_tab_partner_list" to the proper deep link
such as "/my-business?tab=partner-list" or "/my-business#partner-list" so the UI
opens the partner-list tab).
🪄 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: 6bdafa09-62b8-44a6-a20e-bae15038c92a

📥 Commits

Reviewing files that changed from the base of the PR and between 87584b4 and 342d8f7.

📒 Files selected for processing (52)
  • src/apis/endpoints.ts
  • src/apis/index.ts
  • src/apis/modules/admin.ts
  • src/apis/modules/analytics.ts
  • src/apis/modules/buyers.ts
  • src/apis/modules/companies.ts
  • src/apis/modules/consultations.ts
  • src/apis/modules/matches.ts
  • src/apis/modules/payments.ts
  • src/components/Badge.jsx
  • src/components/Button.jsx
  • src/components/Card.jsx
  • src/components/CompanyCard.jsx
  • src/components/CompanyResultCard.jsx
  • src/components/CurrencySelect.jsx
  • src/components/FeedbackButton.jsx
  • src/components/Footer.jsx
  • src/components/Input.jsx
  • src/components/IssuedCurrencyGuide.jsx
  • src/components/Modal.jsx
  • src/components/myBusiness/MyInfo.jsx
  • src/components/myBusiness/MyPartnerList.jsx
  • src/components/payment/PaymentComplete.jsx
  • src/components/payment/PaymentDetail.jsx
  • src/components/payment/PaymentRequestForm.jsx
  • src/components/payment/PaymentVerifyInfo.jsx
  • src/hooks/payments/useMyPartners.js
  • src/hooks/useAnalytics.js
  • src/hooks/useBuyers.js
  • src/hooks/useCompanies.js
  • src/hooks/useConsultations.js
  • src/hooks/useCountdown.js
  • src/hooks/useDatePreset.js
  • src/hooks/useMatches.js
  • src/hooks/usePayments.js
  • src/pages/About.jsx
  • src/pages/AdminMatches.jsx
  • src/pages/AdminPayments.jsx
  • src/pages/AdminStats.jsx
  • src/pages/BuyerForm.jsx
  • src/pages/CompanyInputForm.jsx
  • src/pages/CompanyList.jsx
  • src/pages/ContactPage.jsx
  • src/pages/Overview.jsx
  • src/pages/PartnerSearch.jsx
  • src/pages/Partners.jsx
  • src/pages/PaymentCheckout.jsx
  • src/pages/PaymentStatus.jsx
  • src/pages/myBusiness/MyBusiness.jsx
  • src/pages/payment/CreatePayment.jsx
  • src/pages/payment/PaymentsPage.jsx
  • src/router.jsx
💤 Files with no reviewable changes (41)
  • src/components/Card.jsx
  • src/components/CurrencySelect.jsx
  • src/apis/index.ts
  • src/apis/modules/payments.ts
  • src/hooks/useConsultations.js
  • src/hooks/useCountdown.js
  • src/components/Input.jsx
  • src/hooks/useCompanies.js
  • src/pages/AdminMatches.jsx
  • src/apis/modules/buyers.ts
  • src/hooks/useAnalytics.js
  • src/apis/modules/matches.ts
  • src/components/CompanyCard.jsx
  • src/apis/modules/analytics.ts
  • src/apis/modules/admin.ts
  • src/hooks/usePayments.js
  • src/components/Button.jsx
  • src/pages/Partners.jsx
  • src/apis/modules/companies.ts
  • src/apis/modules/consultations.ts
  • src/components/Modal.jsx
  • src/hooks/useMatches.js
  • src/components/CompanyResultCard.jsx
  • src/apis/endpoints.ts
  • src/pages/CompanyList.jsx
  • src/pages/Overview.jsx
  • src/pages/PaymentCheckout.jsx
  • src/pages/AdminPayments.jsx
  • src/pages/About.jsx
  • src/pages/AdminStats.jsx
  • src/components/Badge.jsx
  • src/hooks/useDatePreset.js
  • src/components/IssuedCurrencyGuide.jsx
  • src/pages/PartnerSearch.jsx
  • src/pages/CompanyInputForm.jsx
  • src/pages/BuyerForm.jsx
  • src/hooks/useBuyers.js
  • src/pages/ContactPage.jsx
  • src/components/FeedbackButton.jsx
  • src/pages/PaymentStatus.jsx
  • src/hooks/payments/useMyPartners.js

Comment thread src/components/Footer.jsx
Comment on lines +25 to +26
{ labelKey: "my_business_tab_my_info", to: "/my-business" },
{ labelKey: "my_business_tab_partner_list", to: "/my-business" },

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

nav_my_business의 두 번째 링크가 의도 탭으로 직행하지 않습니다.

Line 26의 my_business_tab_partner_list가 Line 25와 동일하게 /my-business로 이동해, 현재 구현상 항상 기본 탭(my-info)으로 열립니다. 라벨 의미와 실제 도착 상태가 달라 UX 혼선이 생깁니다.

제안 패치 (탭 딥링크)
--- a/src/components/Footer.jsx
+++ b/src/components/Footer.jsx
@@
-      { labelKey: "my_business_tab_my_info", to: "/my-business" },
-      { labelKey: "my_business_tab_partner_list", to: "/my-business" },
+      { labelKey: "my_business_tab_my_info", to: "/my-business?tab=my-info" },
+      { labelKey: "my_business_tab_partner_list", to: "/my-business?tab=partner-list" },
--- a/src/pages/myBusiness/MyBusiness.jsx
+++ b/src/pages/myBusiness/MyBusiness.jsx
@@
-import { useState } from "react";
+import { useEffect, useState } from "react";
+import { useLocation } from "react-router-dom";
@@
 export default function MyBusiness() {
   const { t } = useI18n();
-  const [activeTab, setActiveTab] = useState("my-info");
+  const location = useLocation();
+  const getTab = (search) =>
+    new URLSearchParams(search).get("tab") === "partner-list"
+      ? "partner-list"
+      : "my-info";
+  const [activeTab, setActiveTab] = useState(() => getTab(location.search));
+
+  useEffect(() => {
+    setActiveTab(getTab(location.search));
+  }, [location.search]);
🤖 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 `@src/components/Footer.jsx` around lines 25 - 26, nav_my_business's second
entry (labelKey "my_business_tab_partner_list") currently points to the same
path as the first entry, causing the partner tab to never open; update the
second entry's destination so it deep-links to the partner tab (e.g., change the
"to" value for the object with labelKey "my_business_tab_partner_list" to the
proper deep link such as "/my-business?tab=partner-list" or
"/my-business#partner-list" so the UI opens the partner-list tab).

@BaeSeong-min BaeSeong-min merged commit 95c6b96 into develop May 19, 2026
4 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.

[Refactor] 미사용 페이지·컴포넌트·훅·API 모듈 제거 및 pages 구조 정리

1 participant