본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

Recur

0

recur는 점(dot)이나 밑줄(underscore) 같은 구분자를 사용하여 파일, 모듈, 식별자 등의 구조를 계층적으로 인코딩하는 현대적인 코드베이스를 위한 계층 인식 코드 검색 도구입니다.

CLI도구Windows개발자도구계층탐색코드검색코드분석파일검색

소개

recur는 점(dot)이나 밑줄(underscore) 같은 구분자를 사용하여 파일, 모듈, 식별자 등의 구조를 계층적으로 인코딩하는 현대적인 코드베이스를 위한 계층 인식 코드 검색 도구입니다. Rust로 개발된 커맨드 라인 도구로, grep이나 ripgrep과 달리 이름에 포함된 구조를 이해하여 해당 구조 내에서 검색, 탐색, 분석하는 데 도움을 줍니다.

상세정보

핵심 기능

  • 계층 인식 패턴 매칭: * 및 ** 와일드카드를 사용한 구조적 검색을 지원합니다.
  • 범위 지정 검색: 특정 계층 범위 내에서 텍스트를 검색합니다 (예: recur find "async" --scope "Controller.Api").
  • 트리 시각화: 파일 구조를 유니코드 박스 라인 문자로 트리 형태로 시각화합니다.
  • 관련 파일 발견: 계층 구조 내에서 형제(sibling) 파일을 찾아줍니다.
  • 식별자 검색: 코드 내의 점 표기法(dot-notation) 식별자를 검색하고 추적합니다.
  • 다중 구분자 병합: 점(.)과 밑줄(_)과 같은 서로 다른 명명 규칙의 결과를 통합합니다.
  • 유니코드 파이프 구성 가능: stdin 모드를 지원하여 순수한 파이프 워크플로우를 구성할 수 있습니다.
  • 구조적 평탄화: XML, JSON, TOML, YAML, CSV 파일을 “path = value” 레코드로 변환합니다.

검색 및 탐색 명령어

  • recur find: 지정된 계층 범위 내에서 텍스트를 검색합니다.
  • recur tree: 계층 구조를 트리로 시각화합니다.
  • recur files: 계층 패턴에 맞는 파일을 찾습니다.
  • recur related: 지정된 파일의 형제 파일을 찾습니다.
  • recur id: 코드 내의 계층적 식별자를 검색합니다.
  • recur stats: 계층 구조의 통계를 분석합니다.

코드 분석 명령어

  • recur callers: 특정 함수나 메서드를 호출하는 코드를 찾습니다.
  • recur callees: 특정 함수나 메서드가 호출하는 대상을 찾습니다.
  • recur trace: 여러 수준의 호출 경로를 시각화합니다.
  • recur trace-stats: 호출 그래프 복잡성을 분석합니다.

설치 방법

  • Cargo (crates.io)에서 설치: cargo install recur 명령을 사용합니다.
  • Windows (Chocolatey): choco install recur 명령을 사용합니다.
  • 소스에서 빌드: 저장소를 클론한 후 cargo build --profile release-safe --locked 및 cargo install --path . --profile release-safe --locked --force --offline 명령을 실행합니다.

빠른 시작

recur는 디렉토리를 재귀적으로 검색합니다. 프로젝트 루트(또는 -d <path> 옵션 사용)에서 실행하여 관련 파일만 스캔하는 것이 좋습니다. 시스템 루트(C:, / 등)에서 실행하는 것은 권장하지 않습니다.

  • recur init: 프로젝트별 설정(.recur/config.toml)을 생성합니다.
  • recur find "CreateSection" --scope "LevelController.CreateWizard3": 특정 계층 범위 내에서 텍스트를 검색합니다.
  • recur tree "LevelController": 지정된 이름의 계층 구조를 트리로 시각화합니다.
  • recur related "Service.Module.Feature.cs": 관련 형제 파일을 찾습니다.

이런 경우에 유용합니다

  • 대규모 코드베이스 탐색: 점이나 밑줄로 구조화된 이름을 가진 파일이나 모듈이 많은 프로젝트에서 특정 서브시스템 내부를 검색하거나 구조를 파악할 때 유용합니다.
  • 크로스 도메인 갭 분석: 문서(점 구분자)와 소스 코드(밑줄 구분자) 간의 불일치를 발견하거나, 여러 명명 규칙을 사용하는 프로젝트의 일관성을 확인할 때 활용할 수 있습니다.
  • 코드 호출 관계 분석: 함수나 메서드의 호출자(caller)와 피호출자(callee)를 추적하고, 호출 그래프의 복잡성을 분석하여 코드 구조를 이해하는 데 도움을 줍니다.
  • 설정 파일 관리: XML, JSON, YAML 등 다양한 형식의 설정 파일을 평탄화하여 구조화된 레코드로 변환하고 분석할 수 있습니다.

지원 환경

  • 운영체제: Windows, macOS, Linux
  • 언어: Rust (1.70 이상 필요)
  • 라이선스: MIT (permissive, simple, and broadly compatible)

최신 버전

최신 공개 버전은 v0.2.8입니다. GitHub 저장소에서 최신 릴리스 정보를 확인할 수 있습니다.

제한 사항·확인 사항

  • recur는 grep이나 ripgrep을 대체하는 것이 아니라 보완하는 도구입니다. 빠른 원시 텍스트 검색 성능은 ripgrep이 우수합니다.
  • recur-git을 사용하기 위해서는 시스템에 git 바이너리가 이미 설치되어 있어야 합니다.
  • 설치 후 recur 명령을 사용할 수 없는 경우, Cargo의 bin 폴더(%USERPROFILE%.cargobin 또는 ~/.cargo/bin)를 시스템 PATH에 추가해야 합니다.

시스템 요구사항

Rust 1.70 이상