Skip to content

[FEAT] API 연동을 위한 코드 정리 - #18

Merged
suwonthugger merged 1 commit into
mainfrom
feat/17-arrange-structure
Jul 28, 2026
Merged

[FEAT] API 연동을 위한 코드 정리#18
suwonthugger merged 1 commit into
mainfrom
feat/17-arrange-structure

Conversation

@suwonthugger

@suwonthugger suwonthugger commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

👥 작업 배경 및 목적

🛠️ 주요 변경 사항

  • lib/ 캐치올 폴더와 단일 types/index.ts에 흩어져 있던 코드를 hooks/utils/constants/types/apis/store/mocks 카테고리별로 나누고, 각 카테고리 안을 다시 news/graph/analysis/verify/scrap/cover 도메인으로 분리

  • 2개 이상 도메인이 함께 쓰는 코드는 src/shared/ 아래 동일한 카테고리 구조로 모았다.

🧪 테스트 결과 (선택)

  • 로컬 환경 테스트 결과나 실행 화면 스크린샷이 있다면 첨부해 주세요.

Summary by CodeRabbit

  • 새로운 기능

    • 뉴스 목록, 뉴스 영향 분석, 그래프, 검증 데이터를 API 방식으로 조회할 수 있습니다.
    • 뉴스 목록과 검증 결과에서 커서 기반 무한 스크롤을 지원합니다.
    • 뉴스 영향 분석에서 관련 종목, 전파 경로, 그래프 정보를 확인할 수 있습니다.
    • 그래프와 검증 화면에 새로운 목 데이터 및 API 모킹을 추가했습니다.
  • 개선 사항

    • 그래프 레이아웃과 엣지 애니메이션 표시가 정리되었습니다.
    • 뉴스·그래프·검증 관련 데이터와 화면 상태 관리가 영역별로 분리되었습니다.
    • 저장된 뉴스와 새로 추가된 뉴스 상태를 안정적으로 관리합니다.

lib/ 캐치올 폴더와 단일 types/index.ts에 흩어져 있던 코드를
hooks/utils/constants/types/apis/store/mocks 카테고리별로 나누고,
각 카테고리 안을 다시 news/graph/analysis/verify/scrap/cover 도메인으로
분리했다. 2개 이상 도메인이 함께 쓰는 코드는 src/shared/ 아래 동일한
카테고리 구조로 모았다.
@suwonthugger suwonthugger self-assigned this Jul 28, 2026
@suwonthugger suwonthugger linked an issue Jul 28, 2026 that may be closed by this pull request
1 task
@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 852ac3a6-9e34-4f0c-90bc-b94daaa01057

📥 Commits

Reviewing files that changed from the base of the PR and between 0dbdfad and 9a7100d.

📒 Files selected for processing (70)
  • CLAUDE.md
  • src/apis/analysis/mappers.ts
  • src/apis/analysis/mock.ts
  • src/apis/analysis/queries.ts
  • src/apis/graph/mock.ts
  • src/apis/graph/queries.ts
  • src/apis/news/mappers.ts
  • src/apis/news/mock.ts
  • src/apis/news/queries.ts
  • src/apis/verify/mock.ts
  • src/apis/verify/queries.ts
  • src/components/analysis/AnalysisPanel.tsx
  • src/components/analysis/MainStockCard.tsx
  • src/components/analysis/RelatedList.tsx
  • src/components/graph/GraphPanel.tsx
  • src/components/graph/NetworkView.tsx
  • src/components/graph/RelEdge.tsx
  • src/components/graph/StockNode.tsx
  • src/components/graph/types.ts
  • src/components/news/MobileNewsBar.tsx
  • src/components/news/NewsCard.tsx
  • src/components/news/NewsList.tsx
  • src/components/news/NewsPanel.tsx
  • src/components/scrap/ScrapSheet.tsx
  • src/components/ui/badge.tsx
  • src/components/ui/button.tsx
  • src/components/ui/scroll-area.tsx
  • src/components/ui/separator.tsx
  • src/components/ui/sheet.tsx
  • src/components/verify/VerifyDetail.tsx
  • src/components/verify/VerifyList.tsx
  • src/components/verify/VerifyView.tsx
  • src/constants/graph/edge.ts
  • src/constants/graph/layout.ts
  • src/constants/verify/sectors.ts
  • src/hooks/graph/usePropagation.ts
  • src/lib/atoms.ts
  • src/lib/queries.ts
  • src/main.tsx
  • src/mocks/analysis/handlers.ts
  • src/mocks/graph/data.ts
  • src/mocks/graph/handlers.ts
  • src/mocks/handlers.ts
  • src/mocks/news/data.ts
  • src/mocks/news/handlers.ts
  • src/mocks/verify/data.ts
  • src/mocks/verify/handlers.ts
  • src/routes/app.tsx
  • src/shared/apis/http.ts
  • src/shared/apis/paginate.ts
  • src/shared/components/Header.tsx
  • src/shared/constants/tabs.ts
  • src/shared/hooks/useInfiniteScrollTrigger.ts
  • src/shared/mocks/browser.ts
  • src/shared/mocks/handlers.ts
  • src/shared/store/atoms.ts
  • src/shared/types/index.ts
  • src/shared/utils/cn.ts
  • src/shared/utils/format.ts
  • src/shared/utils/graphIndex.ts
  • src/store/graph/atoms.ts
  • src/store/news/atoms.ts
  • src/store/scrap/atoms.ts
  • src/store/verify/atoms.ts
  • src/types/analysis/index.ts
  • src/types/graph/index.ts
  • src/types/index.ts
  • src/types/news/index.ts
  • src/types/verify/index.ts
  • src/utils/graph/layout.ts

📝 Walkthrough

Walkthrough

기존 lib 중심 구조를 도메인별 타입·API·쿼리·상태 모듈로 재구성하고, 뉴스·분석·그래프·검증용 mock API와 MSW 핸들러를 추가했다. 화면 컴포넌트와 문서의 import 경로도 새 구조에 맞게 갱신했다.

Changes

도메인 API 및 모듈 구조

Layer / File(s) Summary
도메인 계약과 공용 기반
src/types/*, src/shared/apis/*, src/shared/store/*, src/shared/utils/*, src/constants/*, src/store/*
뉴스·분석·그래프·검증 타입, 공용 HTTP/페이지네이션 유틸, 상태 atom, 그래프·검증 상수를 도메인별 모듈로 추가했다.
도메인 mock·쿼리 흐름
src/apis/analysis/*, src/apis/news/*, src/apis/graph/*, src/apis/verify/*
wire 응답 매핑과 뉴스·영향·그래프·검증 조회용 React Query 훅 및 커서 기반 페이지네이션 mock을 추가했다.
MSW 데이터와 엔드포인트 연결
src/mocks/*, src/shared/mocks/*, src/main.tsx
온톨로지·뉴스·검증 목데이터를 분리하고 /api/news, /api/news/:id/impact, /api/graph, /api/verify 핸들러를 구성했다.
화면과 그래프 구현 참조 갱신
src/components/*, src/routes/app.tsx, src/utils/graph/layout.ts, src/hooks/graph/*
화면 컴포넌트와 그래프 레이아웃이 새 타입·쿼리·상태·유틸 모듈을 참조하도록 import와 쿼리 키를 갱신했다.
구조 가이드 경로 갱신
CLAUDE.md
저장소 구조와 그래프·API·무한 스크롤 관련 경로 설명을 새 디렉터리 구조로 변경했다.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

Suggested labels: feature

✨ 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 feat/17-arrange-structure

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

@suwonthugger
suwonthugger merged commit 980656a into main Jul 28, 2026
1 of 2 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.

[FEAT] API 연동을 위한 코드 정리

1 participant