[REFAC#198] crawler/* → processor/fetcher/* 이동, 메타 이슈 #195 완료 - #203
Conversation
|
Warning Rate limit exceeded
To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (140)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Review rate limit: 0/1 reviews remaining, refill in 17 minutes and 16 seconds.Comment |
There was a problem hiding this comment.
Code Review
This pull request performs a major refactoring by moving the internal/crawler package to internal/processor/fetcher. The changes include updating import paths, documentation, and test references across the entire repository to align with the new directory structure. The review feedback correctly identifies several instances in the documentation and rule files where the old test directory paths were still being referenced, providing suggestions to ensure consistency with the new architecture.
…#198, 메타 #195 완료) 이동: - internal/crawler/core → internal/processor/fetcher/core - internal/crawler/handler → internal/processor/fetcher/handler - internal/crawler/implementation → internal/processor/fetcher/implementation - internal/crawler/domain → internal/processor/fetcher/domain - internal/crawler/rate_limiter → internal/processor/fetcher/rate_limiter - internal/crawler/worker → internal/processor/fetcher/worker - internal/crawler/ 디렉토리 자체 제거 (메타 이슈 #195 의 최종 정렬 완성) 내부 동작 / 패키지명 / DB 스키마 / Kafka topic / Redis 동작 변경 없음 — 단순 path prefix 교체. 89개 .go 파일 import sed 일괄 갱신 (issuetracker/internal/crawler/ → issuetracker/internal/processor/fetcher/). git mv 로 history 보존. 테스트 mirror 도 동일 정렬 — test/internal/{crawler_core, chromedp, domain, worker, rate_limiter} → test/internal/processor/fetcher/{core, chromedp, domain, worker, rate_limiter} (단, chromedp 는 implementation/ 미반영 — 기존 test 디렉토리가 implementation 단계 없이 chromedp 평면 구조였음). Sub-issue 본문의 flatten 안 (예: implementation/chromedp → chromedp) 대신 단순 prefix 교체 채택 — package 명·sub-tree·test mirror 모두 그대로 보존하여 reviewable diff 최소화 + 의미 보존. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- docs/architecture/internal/crawler/ → docs/architecture/internal/processor/fetcher/ (디렉토리 이동) - 모든 .md 파일의 path 참조 갱신 (internal/crawler/X → internal/processor/fetcher/X) - 이동된 docs 의 상대 path 깊이 +1 보정 (../parser/ → ../../parser/, ../locks/ → ../../locks/, ...) - 다른 docs 의 cross-link 갱신 ((crawler/X.md) → (processor/fetcher/X.md)) - docs/architecture/README.md 디렉토리 트리 갱신 - .claude/rules/01-architecture.md 디렉토리 트리 갱신 (cmd/ 도 현 상태로) - .cursor/rules/, .github/copilot-instructions.md, .claude/rules/06-code-style.md 의 import 예시 갱신 - CLAUDE.md cmd/ 줄 갱신 (실제 바이너리 목록 반영) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… 정리 (PR #203 gemini) - .claude/rules/05-testing.md 의 디렉토리 트리 crawler_core → processor/fetcher/core - .cursor/rules/project-structure.md 의 트리 + 매핑 예시 동일 갱신 - docs/architecture/internal/processor/fetcher/handler.md 의 test path fetcher_handler → processor/fetcher/handler Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
연관 이슈
구현 내용
메타 이슈 #195 의 단계 3 (마지막) — 잔여 fetcher 영역을
internal/processor/fetcher/...로 이동. 본 PR 머지 시internal/crawler/디렉토리는 완전 제거됩니다. (메타 이슈 #195 자체는 추가 단계 4 — sub-issue #204 — 이 진행되므로 본 PR 만으로는 close 되지 않음.)코드 변경 (commit 1)
디렉토리 이동:
internal/crawler/core→internal/processor/fetcher/coreinternal/crawler/handler→internal/processor/fetcher/handlerinternal/crawler/implementation→internal/processor/fetcher/implementationinternal/crawler/domain→internal/processor/fetcher/domaininternal/crawler/rate_limiter→internal/processor/fetcher/rate_limiterinternal/crawler/worker→internal/processor/fetcher/workerinternal/crawler/자체 제거 — 메타 이슈 [REFAC] crawler → processor 정렬 — 파이프라인 단계별 디렉토리 재배치 (메타 이슈) #195 의 최종 정렬 완성Import 갱신: 89개 .go 파일 (
issuetracker/internal/crawler/→issuetracker/internal/processor/fetcher/) sed 일괄 치환테스트 mirror 동일 정렬:
test/internal/crawler_core/→test/internal/processor/fetcher/core/test/internal/chromedp/→test/internal/processor/fetcher/chromedp/test/internal/domain/→test/internal/processor/fetcher/domain/(빈 디렉토리만 있어 rmdir)test/internal/worker/→test/internal/processor/fetcher/worker/test/internal/rate_limiter/→test/internal/processor/fetcher/rate_limiter/Sub-issue brief 와의 차이 (의도적): sub-issue 본문은
implementation/chromedp→chromedp같은 flatten 안을 제시했으나, 단순 prefix 교체 채택. 이유:domain/general/fetcher가processor/fetcher/fetcher로 awkward 중첩되는 문제 회피domain/general/sources/{kr,us}) semantic 보존문서 변경 (commit 2)
docs/architecture/internal/crawler/→docs/architecture/internal/processor/fetcher/(디렉토리 이동)internal/crawler/X→internal/processor/fetcher/X)../parser/→../../parser/,../locks/→../../locks/, ...)(crawler/X.md)→(processor/fetcher/X.md))docs/architecture/README.md디렉토리 트리 갱신.claude/rules/01-architecture.md디렉토리 트리 갱신 (cmd/ 도 현 상태로 정리).cursor/rules/,.github/copilot-instructions.md,.claude/rules/06-code-style.md의 import 예시 갱신CLAUDE.mdcmd/ 줄 갱신 (실제 바이너리 목록 반영)변경 후 구조
internal/crawler/완전 제거. 모든 파이프라인 단계가internal/processor/<stage>/로 정렬됨.CI / 머지 게이트 점검
변경 영향 범위
internal/crawler/*(전체 제거),internal/processor/fetcher/*(전체 신규),cmd/{issuetracker,processor,api}/main.go(import), 다수 docsMediumgit mv로 git history 보존 (renamed: 표시)go build ./... && go test -race ./...28 패키지 모두 통과 (failure 0)Required Status Checks
Commit LintPR Title LintLinked Issue CheckFormat CheckBuildTestLint롤백 계획
git revert2개 commit (코드 / 문서). DB / Redis / Kafka 영향 없음.TODO
internal/processor/fetcher/implementation/{chromedp,goquery}flatten /domain/general/단순화 등은 별도 PR 로 (이번 PR 의 reviewable diff 최소화 우선)논의 사항
domain/general/{fetcher,sources}의general네이밍은 historical artifact — 현재 single domain group 만 있어 의미 약함. 추후domain/news//domain/community/등 다중 도메인 도입 시 의미 회복. 본 PR 은 정렬만 (rename out of scope).cmd/crawler/가 더 이상 없으므로 (오래 전 통합됨), Makefile / docs 의 모든 잔존 reference 도 함께 정리됨.🤖 Generated with Claude Code