ripgrep 사용법: 코드 검색을 더 빠르고 정확하게

Gitignore를 존중하는 고속 검색 도구 ripgrep의 설치, 파일·문맥 필터링, 숨김 규칙과 자동화 시 주의점을 실전 명령으로 안내합니다.

ripgrep 사용법: 코드 검색을 더 빠르고 정확하게

ripgrep(rg)은 디렉터리를 재귀적으로 검색하면서 기본적으로 .gitignore를 존중하고 숨김 파일과 바이너리를 건너뛰는 명령줄 검색 도구입니다. grep보다 화려한 도구라기보다 개발 저장소에서 ‘원하는 텍스트를 좁혀 찾는’ 기본 동작을 안전하고 빠르게 만든 소프트웨어입니다.

프로젝트 현황

2026년 9월 13일 GitHub API 확인 기준 BurntSushi/ripgrep은 68,218개의 스타를 받았고 archived 상태가 아닙니다. 최신 공개 릴리스 목록에는 15.1.0이 표시되며 저장소는 MIT 또는 Unlicense의 이중 라이선스를 안내합니다. 스타 수는 인기도 지표일 뿐 품질이나 보안의 보증은 아닙니다.

설치

macOS에서는 Homebrew, Windows에서는 winget, Linux에서는 배포판 패키지 관리자를 사용할 수 있습니다. 배포판 저장소 버전은 최신 릴리스보다 늦을 수 있습니다.

brew install ripgrep
rg --version

공식 GitHub README에는 플랫폼별 바이너리와 패키지 설치법이 정리되어 있습니다. 회사 환경에서는 검증된 패키지 저장소나 릴리스 체크섬을 우선합니다.

첫 검색

현재 저장소에서 TODO를 찾으려면 다음 한 줄이면 됩니다.

rg 'TODO'

특정 확장자만 찾거나 줄 번호와 앞뒤 문맥을 함께 보려면 옵션을 조합합니다.

rg -n -C 2 'deprecated|legacy' -g '*.ts' -g '*.tsx'

-n은 줄 번호, -C 2는 앞뒤 두 줄, -g는 glob 필터입니다. 정규식이 아니라 문자열 그대로 찾고 싶다면 -F를 씁니다.

저장소 파일이 기본 제외와 범위 필터를 거쳐 검색 결과로 좁혀지는 흐름
저장소 파일이 기본 제외와 범위 필터를 거쳐 검색 결과로 좁혀지는 흐름

실전 패턴

파일 이름만 필요하면 -l, 일치 건수는 -c, 대소문자 자동 판단은 -S가 유용합니다.

rg -l -S 'apiKey' src tests
rg -c 'console\.log' -g '*.js'
rg --files -g '!vendor/**' -g '*.md'

마지막 명령은 텍스트가 아니라 파일 목록을 빠르게 만듭니다. 편집기, fzf, 자동화 스크립트의 입력으로 연결하기 좋습니다.

숨김과 제외 규칙

기본 동작이 결과를 일부러 줄인다는 점을 알아야 합니다. .gitignore에 있는 파일, 숨김 파일, 바이너리는 일반 검색에서 빠집니다. 숨김 파일까지 보려면 --hidden, ignore 규칙도 무시하려면 --no-ignore를 명시하세요. -uuu는 여러 자동 필터를 한꺼번에 끄므로 대형 저장소에서 출력과 시간이 급증할 수 있습니다.

rg --hidden --glob '!.git/**' 'setting'

설정과 자동화

자주 쓰는 옵션은 셸 alias로 시작하는 것이 명확합니다. 전역 설정 파일을 사용할 경우 팀원이 같은 결과를 재현하지 못할 수 있으므로 CI 스크립트에는 필요한 옵션을 모두 명시하세요. 검색 결과를 다른 명령에 넘길 때 파일명에 공백과 개행이 있을 수 있으므로 --null 계열과 xargs -0을 검토합니다.

한계와 주의

ripgrep은 텍스트 검색기이지 AST나 타입 시스템을 이해하는 리팩터링 도구가 아닙니다. 함수 이름 변경처럼 의미 보존이 필요한 작업에는 언어 서버나 구조적 검색을 사용해야 합니다. 압축 파일 내부, 원격 저장소, 생성되지 않은 빌드 산출물도 기본 검색 대상이 아닙니다. 비밀값을 찾는 용도로 쓸 때는 결과를 로그나 채팅에 그대로 붙이지 마세요.

문제 해결

  • 예상 파일이 안 보이면 .gitignore, 숨김 파일, glob 조건을 순서대로 확인합니다.
  • 정규식 오류가 나면 -F로 고정 문자열 검색을 먼저 시험합니다.
  • 출력이 너무 많으면 디렉터리와 확장자를 먼저 좁히고 --stats로 범위를 확인합니다.
  • 바이너리로 판단된 파일을 검색해야 하면 파일 형식과 인코딩을 먼저 확인합니다.

제거와 복구

Homebrew 설치라면 brew uninstall ripgrep, 해당 배포판 패키지라면 그 패키지 관리자의 제거 명령을 사용합니다. alias나 도구 설정에 rg 경로를 넣었다면 함께 되돌립니다. 제거 전에 grep 또는 IDE 검색으로 대체 가능한지 자동화 스크립트를 확인하세요.

이 글의 명령은 공식 README와 릴리스 문서 기준이며 이 환경에서 직접 실행하지 않았습니다.

출처