rg(ripgrep) 설치·사용 가이드 (공용 / Windows / PowerShell)
0) rg란?
rg(ripgrep)는 프로젝트 내 텍스트/소스코드에서 문자열을 매우 빠르게 검색하는 CLI 도구다.- IDE의 Find in Files와 동일 목적이지만, 터미널에서 재현 가능한 커맨드로 남길 수 있어 리팩토링/영향범위 파악에 특히 유용하다.
1) 설치 (winget 권장)
1.1 패키지 검색 (ID 확인)
PowerShell에서:
winget search ripgrep
예시로 보일 수 있는 항목:
- RipGrep MSVC
BurntSushi.ripgrep.MSVC - RipGrep GNU
BurntSushi.ripgrep.GNU
1.2 설치 (MSVC 권장)
PowerShell에서:
winget install -e --id BurntSushi.ripgrep.MSVC
설치 로그에 아래 문구가 나오면 정상:
"rg" 명령줄 별칭이 추가되었습니다.경로 환경 변수 수정됨; 셸을 다시 시작하여 새 값을 사용합니다.
2) 설치 후 확인 (버전 체크)
2.1 새 PowerShell 창을 열어서 확인 (권장)
PowerShell에서:
rg --version
정상 예:
ripgrep 15.x.x ...
2.2 (옵션) 재시작 없이 PATH 반영하기
설치 직후 같은 세션에서 rg가 인식되지 않으면 아래로 PATH를 재로드할 수 있다.
PowerShell에서:
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
rg --version
3) 기본 사용법 (실무에서 자주 쓰는 패턴)
3.1 특정 폴더 “안에서만” 검색 (핵심 예시)
lib폴더 안에서만 검색:
rg -n "search text" libsrc폴더 안에서만 검색:
rg -n "search text" srcpackages/hushdsp_flutter안에서만 검색(예시):
rg -n "search text" .\packages\hushdsp_flutter- 여러 폴더를 동시에 제한해서 검색:
rg -n "search text" lib test
3.2 프로젝트 전체에서 검색 (현재 폴더 기준)
rg -n "search text" .
3.3 라인 번호 포함
rg -n "search text" .
3.4 여러 패턴을 OR로 한 번에 검색 (정규식)
rg -n "patternA|patternB|patternC" lib
3.5 “작업 태그” 모아보기 (예: TODO/FIXME)
rg -n "TODO|FIXME|HACK" lib
3.6 특정 파일(들)만 대상으로 제한
rg -n "search text" path\to\file.dart
4) 실사용 예시 (어떤 프로젝트든 그대로 복붙 가능)
4.1 “특정 API/심볼이 실제로 쓰이는지” 확인
(예: 어떤 래퍼/유틸이 코드에서 실제로 호출되는지)
rg -n "MyWrapperClass|myWrapperFunction|as myalias|myalias\." lib
해석:
- 결과 0건이면: 대체로 미사용(또는 이름이 다름 / 생성 코드만 있고 호출이 없음)
- import만 있고 호출이 없으면: “유령 import” 가능 → 정리 후보
4.2 “리팩토링 영향범위” 확인 (클래스/함수/파일명)
rg -n "OldClassName|oldFunctionName|old_file_name" lib
4.3 “플랫폼 분기/조건문” 모아보기 (예시)
rg -n "kIsWeb|Platform\.isAndroid|Platform\.isIOS|defaultTargetPlatform" lib
5) 트러블슈팅
5.1 rg : 'rg' 용어가 cmdlet... 에러가 뜰 때
원인:
- 설치는 되었지만 현재 PowerShell 세션이 PATH 변경을 아직 반영하지 못한 경우가 많다.
해결(권장 순서):
1) PowerShell 창을 닫고 새로 열기 → rg --version
2) 재시작이 어려우면 PATH 재로드:
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
5.2 winget 설치가 안 될 때 (ID 문제)
- 정확한 ID가 아닌 값으로 설치를 시도하면 실패할 수 있다.
- 반드시 아래처럼 검색으로 ID를 확인하고 설치한다.
- winget search ripgrep
winget install -e --id BurntSushi.ripgrep.MSVC
6) 운영 팁 (권장)
- 리팩토링 전에
rg로 “등장 위치(usage)”를 먼저 확보하고, 변경 후 다시rg로 “남은 참조”가 없는지 확인한다. - 커맨드는 작업 로그/문서에 그대로 붙여서 재현 가능한 형태로 남긴다.
'프로젝트 > IT 이야기' 카테고리의 다른 글
| [Tip] Flutter 개발 - Android Studio + Widgetbook로 UI만 빠르게 보는 개발환경 만들기 (0) | 2026.01.20 |
|---|---|
| [Tip] Unity 개발 중 스크립트 인코딩 문제 (CP949 → UTF-8) 해결 기록 (0) | 2025.05.31 |