안녕하세요. 주식 관련 프로그램을 제작하는 인천고래입니다.
요즘 Codex를 잘 사용하고 있는데 코덱스에서 로컬 파일을 검색할 때 파워셀 대신에 rg를 우선 실행을 하려고 하더라고요.
그래서 오늘은 왜? rg를 먼저 실행하려고 하는지에 대해서 알아보려 합니다.
만약 Codex가 아래처럼 메시지를 보낸다면
"rg가 이 환경에서 접근 거부로 실행되지 않아 PowerShell 파일 탐색으로 넘어갑니다"
아래처럼 파워셀을 열어서 설치를 하시면 됩니다.


그럼 본론으로 들어가겠습니다.
목차
1. rg 검색이란?
rg는 ripgrep이라는 코드/텍스트 검색 전용 도구입니다.
예를 들어 프로젝트 안에서 signal_workspace라는 문자열을 찾는다면:
rg "signal_workspace" D:\PycharmProjects\_App\Trader\bot_V8_Client
확장자를 제한하면:
rg "signal_workspace" D:\PycharmProjects\_App\Trader\bot_V8_Client -g "*.py" -g "*.html" -g "*.js" -g "*.sql"
2. PowerShell 검색이란?
PowerShell 기본 검색은 보통 이렇게 합니다.
Get-ChildItem -Path "D:\PycharmProjects\_App\Trader\bot_V8_Client" -Recurse -Include *.py,*.html,*.js,*.sql -File |
Select-String -Pattern "signal_workspace"
즉,
Get-ChildItem = 파일 목록 찾기
Select-String = 파일 안의 문자열 검색
입니다.
3. rg와 PowerShell 검색의 차이
| 구분 | rg | PowerShell |
| 속도 | 매우 빠름 | 상대적으로 느림 |
| 목적 | 코드 검색 전용 | 범용 PowerShell 기능 |
| 대용량 프로젝트 | 유리 | 느려질 수 있음 |
| .gitignore 반영 | 기본적으로 반영 | 직접 제외 조건을 줘야 함 |
| 숨김/바이너리 파일 처리 | 코드 검색에 맞게 자동 처리 | 직접 제어 필요 |
| 출력 가독성 | 코드 검색에 최적화 | 다소 길고 복잡 |
| Codex/AI 도구와 궁합 | 좋음 | 대체 수단으로 적합 |
| Windows 기본 포함 | 아님, 설치 필요 | 기본 포함 |
4. 왜 Codex는 rg를 최우선으로 쓰려고 할까?
Codex 같은 코딩 에이전트는 프로젝트 전체에서 다음 작업을 자주 합니다.
이 함수가 어디서 정의됐는가?
이 API를 어디서 호출하는가?
이 테이블명을 참조하는 파일은 어디인가?
이 JS 함수가 중복 선언되어 있는가?
이 SQL query_key가 어느 파일에 있는가?
이런 작업은 대량의 코드 검색이기 때문에 rg가 훨씬 유리합니다.
특히 제가 만드는 트레이더 서버 프로젝트처럼 파일이 많고, .py, .html, .js, .sql이 섞여 있는 구조에서는 rg가 빠릅니다.

예를 들어 Codex가 아래를 찾는다고 해보겠습니다.
signal_state_result
rg는 이렇게 짧게 됩니다.
rg "signal_state_result" D:\PycharmProjects\_App\Trader
PowerShell은 이렇게 길어집니다.
Get-ChildItem -Path "D:\PycharmProjects\_App\Trader" -Recurse -Include *.py,*.html,*.js,*.sql -File |
Select-String -Pattern "signal_state_result"
Codex 입장에서는 rg가:
짧고,
빠르고,
결과가 보기 좋고,
코드 검색에 특화되어 있고,
불필요한 파일을 자동으로 덜 봄
이기 때문에 최우선으로 쓰려고 하는 것입니다.
5. 중요한 차이: rg는 .gitignore를 자동 반영함
이 부분이 꽤 중요합니다.
저는 깃을 사용하지는 않지만 rg는 기본적으로 .gitignore에 등록된 폴더나 파일을 검색에서 제외합니다.
예를 들어 보통 이런 폴더는 자동으로 덜 검색합니다.
.venv
__pycache__
node_modules
dist
build
.git
그래서 검색 속도가 빠르고 결과가 깔끔합니다.
반면 PowerShell은 기본적으로 이런 것까지 다 뒤질 수 있습니다.
그래서 큰 프로젝트에서는 느려질 수 있습니다.
PowerShell에서 비슷하게 제외하려면 조건을 직접 넣어야 합니다.
Get-ChildItem -Path "D:\PycharmProjects\_App\Trader" -Recurse -File |
Where-Object {
$_.FullName -notmatch "\\\.venv\\" -and
$_.FullName -notmatch "\\__pycache__\\" -and
$_.FullName -notmatch "\\node_modules\\" -and
$_.FullName -notmatch "\\dist\\" -and
$_.FullName -notmatch "\\build\\"
} |
Select-String -Pattern "signal_state_result"
확실히 rg보다 복잡합니다.
6. bot_V8_Client가 git 루트가 아니어도 rg는 사용 가능
Codex가 말한:
bot_V8_Client 쪽은 별도 git 루트가 아니고
이 말은 git status, git diff, git grep 같은 명령에서는 문제가 될 수 있습니다.
하지만 rg는 git 루트가 아니어도 됩니다.
예를 들어 그냥 폴더 경로를 직접 지정하면 됩니다.
rg "검색어" "D:\PycharmProjects\_App\Trader\bot_V8_Client"
다만 bot_V8_Client 내부에 .gitignore가 없으면, 상위 폴더의 .gitignore 반영 여부가 상황에 따라 달라질 수 있습니다.
그래도 일반적인 문자열 검색 자체는 문제 없습니다.
7. Codex에게 권장하는 검색 방식
이제 사용자 PC에는 rg가 설치되어 있으니, Codex에게는 이렇게 지시하면 됩니다.
rg가 설치되어 있으니 우선 rg로 검색해줘.
다만 bot_V8_Client는 별도 git root가 아니므로 git 명령에 의존하지 말고,
명확한 폴더 경로를 지정해서 rg로 검색해줘.
예:
rg "검색어" "D:\PycharmProjects\_App\Trader\bot_V8_Client" -g "*.py" -g "*.html" -g "*.js" -g "*.sql"
만약 Codex 실행 환경에서 rg 실행 권한이 막히면,
PowerShell의 Get-ChildItem + Select-String 방식으로 대체해줘.
8. 실무적으로는 이렇게 쓰면 좋습니다
전체 프로젝트에서 검색
rg "signal_state_result" "D:\PycharmProjects\_App\Trader"
V8 서버만 검색
rg "signal_state_result" "D:\PycharmProjects\_App\Trader\bot_V8_Signal_Analysis"
V8 클라이언트만 검색
rg "signal_state_result" "D:\PycharmProjects\_App\Trader\bot_V8_Client"
특정 확장자만 검색
rg "signal_state_result" "D:\PycharmProjects\_App\Trader\bot_V8_Client" -g "*.py" -g "*.html" -g "*.js" -g "*.sql"
함수 정의 찾기
rg "function requestWorkspaceV8Chart|def request_workspace|requestWorkspaceV8Chart" "D:\PycharmProjects\_App\Trader"
특정 테이블명을 참조하는 SQL/Python 찾기
rg "signal_atomic_result|signal_state_result|signal_combo_result" "D:\PycharmProjects\_App\Trader" -g "*.py" -g "*.sql"
결론
Codex가 rg를 우선 쓰려는 이유는 타당합니다.
rg는 코드 검색 전용이라서:
빠르고,
결과가 깔끔하고,
대용량 프로젝트에 강하고,
.gitignore를 반영하고,
AI가 코드 위치를 파악하기 좋습니다.
반면 PowerShell 검색은:
기본 내장이라 안정적이지만,
검색식이 길고,
느릴 수 있고,
제외 조건을 직접 넣어야 합니다.
따라서 현재 상황에서는 이렇게 정리하면 됩니다.
1순위: rg 검색
2순위: rg가 막힐 때 PowerShell 검색
git root 여부는 rg 사용에는 큰 문제 아님
이상 코덱스가 rg를 먼저 사용하려고 하는 이유에 대해서 알아보았습니다.
오늘도 행복한 하루 보내시기를 바라겠습니다. ^^
제 글을 읽어 주셔서 감사의 말씀을 드립니다.
감사합니다. ^^
'인천고래 프로그램' 카테고리의 다른 글
| 계좌정보를 찾을 수 없습니다. 계좌번호 10자리 입력을 확인해주시기 바랍니다.(00) (0) | 2026.05.03 |
|---|---|
| KRX API를 걷어 냈습니다. (0) | 2026.05.02 |
| 일봉 + 5분봉(분봉) 데이터 수집/리포트 프로그램 안내 (0) | 2026.02.18 |
| KRX 시세 데이터, 이제 로그인 & API를 신청 해야 쓸 수 있네요. ㅜ (0) | 2026.01.06 |