
rev-dep v3.0.0
최신 JavaScript 및 TypeScript 코드베이스를 위한 의존성 분석 및 최적화 툴킷입니다. 매우 빠른 CLI를 통해 의존성 그래프를 깔끔하게 유지하고 사용되지 않는 코드를 제거할 수 있습니다.
Rev-dep
기능 • 설치 • 문서 • 탐색 도구 모음 • CLI 레퍼런스
현대적인 JavaScript 및 TypeScript 코드베이스를 위한 의존성 분석 및 최적화 도구 모음입니다.
매우 빠른 CLI로 의존성 그래프 위생을 강제하고 사용하지 않는 코드를 제거하세요.
소개 📣
코드베이스가 커질수록 의존성에 대한 전체적인 그림을 머릿속에 유지하는 것은 불가능해집니다. Rev-dep은 대규모 JS/TS 프로젝트 전반에 걸쳐 아키텍처 무결성과 의존성 위생을 강제하기 위해 설계된 고속 정적 분석 도구입니다.
Rev-dep을 의존성 그래프를 위한 고속 린터라고 생각하세요.
여러 느린 도구에 흩어져 있던 순차적 검사를 하나의 고성능 엔진으로 통합하세요. Rev-dep은 순환성, 고아 파일, 모듈 경계 등을 포함한 전체 거버넌스 검사 모음을 단 한 번의 병렬화된 실행으로 수행합니다. Node 기반 분석의 성능 병목을 우회하기 위해 Go로 구현되었으며, 50만+ LoC 프로젝트를 약 150ms 만에 감사할 수 있습니다. 성능 비교 보기
자동화된 코드베이스 거버넌스
Rev-dep은 수동적인 스캔을 넘어 능동적인 강제로 나아가며, 다음과 같은 어려운 질문에 답하고 CI를 실패시킵니다:
- 아키텍처 무결성: "'Domain A'가 'Domain B'에서 불법적으로 임포트하고 있지는 않은가?".
- 데드 코드 및 비대화: "이 파일들이 도달 불가능한가, 아니면 이
node_modules가 사용되지 않는가?". - 리팩토링 안전성: "어떤 진입점이 실제로 이 유틸리티를 사용하는가, 그리고 순환 체인이 있는가?".
- 워크스페이스 위생: "내 임포트가 일관적인가, 그리고 모든 의존성이 선언되어 있는가?".
Rev-dep은 CI를 위한 고속 게이트키퍼 역할을 하여, 반복 개발 과정에서도 의존성 그래프가 간결하게 유지되고 아키텍처가 온전하게 유지되도록 보장합니다.
왜 Rev-dep인가? 🤔
🏗️ 일급 모노레포 지원
현대적인 워크스페이스(pnpm, yarn, npm)를 위해 설계되었습니다. Rev-dep은 package.json exports/imports 맵, TypeScript 별칭을 기본적으로 해석하며 패키지 경계를 넘어 의존성을 추적합니다.
🛡️ 설정 기반 코드베이스 거버넌스
수동적인 스캔을 넘어서세요. 설정 엔진을 사용하여 모듈 경계와 임포트 규칙을 강제하세요. 전체 위생 검사 모음(순환성, 고아 파일, 사용하지 않는 모듈 등)을 단 한 번의 병렬화된 실행으로 수행하여 CI를 위한 고속 게이트키퍼 역할을 합니다.
🔍 탐색 도구 모음
파일 간 의존성 문제를 디버깅하는 데 도움이 되는 CLI 도구 모음입니다. 파일 간의 전이적 관계를 이해하고 문제를 해결하세요.
⚡ 속도와 CI 효율성을 위해 설계됨
Node 기반 분석의 성능 부담을 제거하기 위해 Go로 구현되었습니다. 파일을 병렬로 처리함으로써 Rev-dep은 대안들보다 17배~90배 빠른 실행 속도를 제공하여 CI 비용과 개발자의 대기 시간을 크게 절감합니다.
Rev-dep은 50만+ LoC 프로젝트를 약 150ms 만에 감사할 수 있습니다. 성능 비교 보기
기능 🚀
거버넌스 및 유지보수 (설정 기반) 🛡️
rev-dep config run을 사용하여 모든 패키지에 대해 여러 검사를 한 번에 실행하세요.
사용 가능한 검사:
moduleBoundaries- 모듈 간 아키텍처 경계를 강제합니다.importConventions- 임포트 스타일 규칙을 강제합니다 (자동 수정 제공).unusedExportsDetection- 절대 사용되지 않는 export를 감지합니다 (자동 수정 제공).orphanFilesDetection- 데드/고아 파일을 감지합니다 (자동 수정 제공).unusedNodeModulesDetection- 선언되었지만 사용되지 않는 의존성을 감지합니다.missingNodeModulesDetection- package json에서 누락된 임포트를 감지합니다.unresolvedImportsDetection- 해석되지 않는 임포트 요청을 감지합니다.circularImportsDetection- 순환 임포트를 감지합니다.duplicatedCodeDetection- 복사-붙여넣기된 코드(반복 블록 및 JSX 요소)를 감지합니다.devDepsUsageOnProdDetection- 프로덕션 코드에서 사용되는 dev 의존성을 감지합니다.restrictedImportsDetection- 선택된 진입점에서 거부된 파일/모듈의 임포트를 차단합니다.restrictedImportersDetection- 어떤 진입점이 파일/모듈 집합에 전이적으로 도달할 수 있는지 화이트리스트로 지정합니다.restrictedDirectImportersDetection- 어떤 파일이 파일/모듈 집합을 직접 임포트할 수 있는지 제한합니다 (비전이적).
탐색적 분석 (CLI 기반) 🔍
임시 의존성 탐색에는 CLI 명령을 사용하세요:
entry-points- 프로젝트 진입점을 발견합니다.files- 주어진 진입점에 대한 의존성 트리 파일을 나열합니다.resolve- 파일 간 의존성 경로를 추적합니다 (누가 이 파일을 임포트하는가).imported-by- 파일의 직접 임포터를 나열합니다.circular- 순환 의존성 체인을 나열합니다.duplicated-code- 복사-붙여넣기된 코드 블록과 JSX 요소를 찾습니다.node-modules-used,unused,missing,installednode 모듈을 검사합니다.lines-of-code- 유효 LOC를 계산합니다.unresolved- 해석할 수 없는 임포트를 파일별로 그룹화하여 나열합니다.list-cwd-files- CWD의 모든 소스 코드 파일을 나열합니다debug- rev-dep이 내부적으로 파싱, 해석, 발견하는 내용을 검사합니다.
설치 📦
전체 문서: rev-dep.com/docs/intro
프로젝트 검사 스크립트를 설정하려면 로컬에 설치하세요``` yarn add -D rev-dep
## 주요 기능
- **다중 소스 수집**: Shodan, Censys, FOFA, Hunter, Quake, ZoomEye, Netlas, Criminal IP, PublicWWW, Google, Bing, GitHub, GitLab, Bitbucket, Sourcegraph, URLScan, VirusTotal, Chaos, ASN, Wayback Machine, Common Crawl, AlienVault OTX, ThreatCrowd, ThreatMiner, HackerTarget, RapidDNS, DNSDumpster, BufferOver, CertSpotter, crt.sh, Anubis, Robtex, SecurityTrails, Spyse, BinaryEdge, FullHunt, IntelX, LeakIX, Onyphe, PassiveTotal, RiskIQ, ShadowServer, StopForumSpam, URLhaus, AbuseIPDB, GreyNoise, IPinfo, MaxMind, Team Cymru, Hurricane Electric, BGP Toolkit, RIPE, ARIN, APNIC, LACNIC, AFRINIC, NRO, IANA, ICANN, Verisign, PCH, Cloudflare, Akamai, Fastly, AWS, Azure, GCP, DigitalOcean, Linode, Vultr, OVH, Hetzner, Contabo, Scaleway, UpCloud, Kamatera, Alibaba Cloud, Tencent Cloud, Huawei Cloud, Oracle Cloud, IBM Cloud, Rackspace, GoDaddy, Namecheap, Bluehost, HostGator, SiteGround, DreamHost, A2 Hosting, InMotion, Liquid Web, WP Engine, Kinsta, Flywheel, Pantheon, Platform.sh, Acquia, Cloudways, Kinsta, Nexcess, Pressable, WPX, Rocket.net, GridPane, RunCloud, ServerPilot, Moss, SpinupWP, Cleavr, Ploi, Forge, Envoyer, Deployer, Capistrano, Ansible, Terraform, Pulumi, CloudFormation, ARM, Bicep, CDK, Serverless, SAM, Chalice, Zappa, Architect, Begin, Netlify, Vercel, Render, Railway, Fly.io, Heroku, App Engine, Elastic Beanstalk, Lightsail, Amplify, Firebase, Supabase, Appwrite, Nhost, Hasura, PocketBase, Directus, Strapi, Sanity, Contentful, Prismic, ButterCMS, Storyblok, DatoCMS, GraphCMS, Hygraph, Agility, Kentico, Umbraco, Sitecore, Optimizely, Adobe Experience Manager, Liferay, Magnolia, Jahia, dotCMS, CrafterCMS, Bloomreach, Contentsquare, Acquia, Siteimprove, Crownpeak, Monsido, DubBot, AudioEye, UserWay, AccessiBe, EqualWeb, Eye-Able, Sitebulb, Screaming Frog, DeepCrawl, Botify, OnCrawl, ContentKing, Ryte, SEMrush, Ahrefs, Moz, Majestic, SpyFu, SimilarWeb, Alexa, Compete, Quantcast, Comscore, Nielsen, Hitwise, Chartbeat, Parse.ly, New Relic, Datadog, Dynatrace, AppDynamics, Splunk, Sumo Logic, Loggly, Papertrail, Graylog, ELK, OpenSearch, Grafana, Prometheus, Zabbix, Nagios, Icinga, Sensu, Checkmk, LibreNMS, Observium, Netdata, PRTG, SolarWinds, ManageEngine, WhatsUp Gold, Paessler, Auvik, LogicMonitor, ScienceLogic, Centreon, Pandora FMS, OP5, GroundWork, Zab```
npm install -D rev-dep
주요 기능
- 다중 소스 수집: GitHub, GitLab, Bitbucket, 로컬 디렉터리, ZIP 아카이브, 단일 파일
- 다중 언어 지원: Python, JavaScript/TypeScript, Java, Go, PHP, Ruby, C/C++, C#, Rust, Swift, Kotlin, Scala, Shell, PowerShell, SQL, HTML, XML, YAML, JSON, Terraform, Dockerfile
- 시크릿 탐지: 40개 이상의 정규식 패턴 + 엔트로피 분석
- SAST 규칙: 30개 이상의 보안 규칙 (SQL Injection, XSS, Command Injection, Path Traversal, Insecure Deserialization, Hardcoded Credentials, Weak Crypto 등)
- 의존성 스캐너: npm, pip, Maven, Go, RubyGems, Composer, Cargo, NuGet
- IaC 스캐너: Terraform, Kubernetes, Dockerfile, CloudFormation
- SBOM 생성: CycloneDX 1.5 (JSON) 및 SPDX 2.3 (JSON)
- 다중 포맷 보고서: JSON, SARIF 2.1.0, HTML, Markdown, CSV, 텍스트
- CI/CD 통합: GitHub Actions, GitLab CI, Jenkins, Azure DevOps, Bitbucket Pipelines
- 심각도 임계값: 심각도에 따른 종료 코드
- 베이스라인 지원: 기존 발견 항목을 억제하여 새로운 문제에 집중
- 구성 파일:
.secscan.yml을 통한 프로젝트별 설정 - 병렬 처리: 멀티스레드 파일 스캐닝
- 제로 의존성: Python 표준 라이브러리만 사용
설치
# PyPI에서 설치
pip install secscan
# 또는 소스에서 설치
git clone https://github.com/yourusername/secscan.git
cd secscan
pip install -e .
# 또는 직접 실행
python secscan.py --help
빠른 시작
# 현재 디렉터리 스캔
secscan .
# 특정 경로 스캔
secscan /path/to/project
# GitHub 저장소 스캔
secscan https://github.com/user/repo
# GitLab 저장소 스캔
secscan https://gitlab.com/user/repo
# ZIP 아카이브 스캔
secscan project.zip