Skip to content

파일 변경을 감시하며 다시 묶는 모습을 상징하는 이미지

AI와 긴 호흡으로 협업하다 보면 가장 번거로운 일이 바로 "현재 내 코드 상태"를 업데이트하는 것입니다. 코드를 고칠 때마다 매번 명령어를 실행해 다시 묶고, 결과물을 복사해서 AI에게 올리는 과정은 흐름을 끊습니다. Repomix의 워치 모드는 이 과정을 자동화하여 AI에게 항상 최신 스냅샷을 공급합니다.

실시간 컨텍스트 동기화가 필요한 이유 ​

워치 모드는 단순히 "편리한 기능"을 넘어, AI와의 협업 워크플로를 완전히 바꿉니다.

  • 연속적인 리팩터링: 코드를 수정하면 즉시 파일이 갱신되므로, AI에게 "지금 고친 부분의 영향도를 다시 봐줘"라고 바로 요청할 수 있습니다.
  • 컨텍스트 누락 방지: 수정을 마친 뒤 다시 묶는 것을 깜빡해, AI가 이미 고쳐진 이전 버전의 코드를 보고 엉뚱한 조언을 하는 실수를 원천 차단합니다.
  • 실시간 피드백 루프: AI가 제안한 코드를 적용하고, 그 결과가 다시 반영된 파일을 AI가 읽게 함으로써 훨씬 빠른 반복 개선이 가능합니다.

실행 방법과 옵션 조합 ​

-w 또는 --watch 플래그 하나만 추가하면 됩니다.

bash
repomix --watch

Repomix는 실행 즉시 저장소를 한 번 묶고, 이후 파일 변경이 감지될 때마다 자동으로 다시 패킹합니다. 기존의 다른 옵션들과도 자유롭게 조합할 수 있습니다.

bash
# 특정 경로만 감시하여 가볍게 유지
repomix -w --include "src/**/*.ts"

# 출력 파일명과 포맷을 지정하여 자동 갱신
repomix --watch -o live-context.md --style markdown

작업을 마쳤다면 Ctrl+C를 눌러 종료하세요.

내부 동작: 변경 감지와 디바운스 ​

워치 모드는 다음의 4단계 프로세스로 동작합니다.

단계동작상세 내용
최초 묶기초기 스캔실행 즉시 전체 저장소를 묶고, 현재 감시 중인 파일 수를 보고합니다.
변경 감지실시간 모니터링파일의 생성, 수정, 삭제를 모두 감지하여 재패킹 트리거를 발생시킵니다.
디바운스중복 실행 방지변경이 감지된 후 300ms를 기다립니다. 짧은 시간 내에 일어난 여러 번의 저장을 하나로 합쳐 CPU 낭비를 막습니다.
타임스탬프갱신 시점 기록결과 파일에 Rebuilt at HH:MM:SS 표시를 남겨, AI가 현재 컨텍스트가 언제 갱신되었는지 알 수 있게 합니다.

특히 디바운스(Debounce) 기능은 매우 중요합니다. IDE의 자동 저장 기능이나 브랜치 전환 등으로 수백 개의 파일이 동시에 바뀔 때, 매번 재패킹을 시도하면 시스템 부하가 극심해집니다. 300ms의 대기 시간이 이러한 폭주를 효과적으로 막아 줍니다.

무시 규칙과 성능 최적화 ​

워치 모드는 일반 실행과 동일한 무시 규칙(.gitignore, .repomixignore, 내장 기본 패턴 등)을 따릅니다.

여기서 핵심은 무시된 디렉터리는 감시 대상에서 아예 제외된다는 점입니다. 예를 들어 node_modules나 dist 폴더가 무시 규칙에 들어 있다면, 그 안에서 수천 개의 파일이 바뀌어도 Repomix는 전혀 반응하지 않습니다. 따라서 무시 규칙을 정교하게 설정할수록 워치 모드의 성능은 더욱 가벼워집니다.

함께 사용할 수 없는 옵션 ​

워치 모드는 "로컬 파일의 지속적인 변경"을 전제로 하므로, 다음 옵션들과는 논리적으로 충돌하여 함께 사용할 수 없습니다.

충돌 옵션이유
--remote, 원격 URL원격 저장소는 로컬처럼 실시간 파일 변경을 감지할 수 없음
--stdout, --stdin스트리밍 방식에는 갱신하며 덮어쓸 영구 저장 파일이 없음
--split-output번호가 붙은 여러 파일 구조는 자동 재패킹 모델과 맞지 않음
--skill-generate결과물이 파일이 아닌 디렉터리 구조이므로 실시간 갱신이 무의미함
--copy파일이 바뀔 때마다 클립보드를 계속 덮어쓰면 사용자가 불편함

위 옵션 중 하나라도 포함되면 Repomix는 충돌 이유를 설명하고 종료됩니다.

실무 활용 패턴 ​

워치 모드를 가장 효율적으로 사용하는 세 가지 팁입니다.

  1. 감시 범위 좁히기: repomix -w --include "src/features/auth/**" 처럼 현재 작업 중인 하위 시스템만 지정하세요. 재패킹 속도가 훨씬 빨라집니다.
  2. 무시 규칙 최적화: .repomixignore에 로그 파일과 빌드 산출물을 명확히 적어 두세요. 불필요한 트리거를 줄여 CPU 부하를 낮출 수 있습니다.
  3. 결과 파일 Git 제외: 결과 파일이 계속 덮어씌워지므로 .gitignore에 repomix-output.*를 추가하세요. 깃 이력에 불필요한 갱신 기록이 남는 것을 방지할 수 있습니다.

이제 저장소를 묶고 유지하는 방법까지 모두 알아보았습니다. 다음 편에서는 가장 현실적인 문제인 "컨텍스트 창을 넘어서는 대용량 저장소"를 어떻게 효율적으로 다룰지, 토큰 절감 전략을 살펴봅니다.

오픈소스를 한국어로 읽고 배웁니다.