프로젝트 소개

Tach는 Python 프로젝트에서 모듈화된 모노리스 아키텍처를 유지하는 데 도움을 주는 도구로, 의존성 규칙과 인터페이스를 강제합니다. Rust로 작성되었으며 런타임 영향 없이 작동하고 기존 시스템에 점진적으로 도입할 수 있습니다. 주요 기능: - 의존성 강제: 선언된 의존성에서만 임포트가 발생하도록 하고 의존성 그래프의 순환을 방지합니다. - 인터페이스 관리: 모듈 간 호출이 정의된 공용 인터페이스를 사용하도록 강제합니다. - 시각화: 웹 인터페이스 또는 GraphViz DOT 형식을 통해 의존성 그래프를 생성합니다. - 분석 도구: 특정 경로의 의존성과 사용량에 대한 보고서를 제공하고 JSON 의존성 맵을 생성할 수 있습니다. - 통합: CI/CD 파이프라인, pre-commit 훅, VS Code 통합을 지원합니다. - 고급 구성: 계층형 아키텍처, 도메인 소유권, 모노레포를 위한 네임스페이스 패키지를 지원하며 개별 의존성을 더 이상 사용하지 않음으로 표시하는 기능도 제공합니다.