개요

Cursor는 프로젝트의 코드베이스를 읽고 인덱싱해 기능을 제공해. 루트 디렉터리의 .cursorignore 파일로 Cursor가 접근할 수 있는 디렉터리와 파일을 제어해. Cursor는 .cursorignore에 포함된 파일에 대한 접근을 다음에서 차단해:
Agent가 실행하는 도구 호출(예: 터미널, MCP 서버)은 .cursorignore 적용 대상 코드에 대한 접근을 차단할 수 없어

왜 파일을 무시할까?

보안: API 키, 자격 증명, 시크릿에 대한 접근을 제한해. Cursor가 무시된 파일을 차단하더라도 LLM의 예측 불가능성 때문에 완전한 보호가 보장되진 않아. 성능: 대규모 코드베이스나 모노레포에선 인덱싱을 더 빠르게 하고 파일 탐색 정확도를 높이기 위해 관련 없는 부분을 제외해.

전역 ignore 파일

프로젝트별 설정 없이 민감한 파일을 제외하려면 사용자 설정에서 모든 프로젝트에 적용될 ignore 패턴을 설정해.
Global Cursor Ignore List
기본 패턴은 다음과 같아:
  • 환경 파일: **/.env, **/.env.*
  • 자격 증명: **/credentials.json, **/secrets.json
  • 키: **/*.key, **/*.pem, **/id_rsa

.cursorignore 구성하기

.gitignore 문법을 사용해서 루트 디렉터리에 .cursorignore 파일을 만들어.

패턴 예시

config.json      # 특정 파일
dist/            # 디렉터리
*.log            # 파일 확장자
**/logs          # 중첩 디렉터리
!app/            # 무시에서 제외(부정)

계층적 무시

상위 디렉터리에서 .cursorignore 파일을 찾도록 Cursor Settings > Features > Editor > Hierarchical Cursor Ignore를 켜. 참고: 주석은 #로 시작해. 나중에 나온 패턴이 이전 패턴을 덮어써. 패턴은 파일 위치 기준이야.

.cursorindexingignore로 인덱싱 제한하기

.cursorindexingignore를 사용하면 인덱싱에서만 특정 파일을 제외할 수 있어. 이런 파일들은 AI 기능에선 계속 접근 가능하지만 코드베이스 검색에는 표시되지 않아.

기본적으로 무시되는 파일

Cursor는 .gitignore와 아래 기본 무시 목록에 있는 파일을 자동으로 무시해. .cursorignore에서 ! 접두사를 붙여서 오버라이드할 수 있어.

부정 패턴의 제한 사항

부정 패턴(! 접두사)을 사용할 때, 상위 디렉터리가 *로 제외됐다면 해당 파일을 다시 포함할 수 없어.
# public 폴더의 모든 파일 무시
public/*

# ✅ 이건 작동해. 파일이 최상위에 있기 때문
!public/index.html

# ❌ 이건 작동하지 않아 - 중첩 디렉터리의 파일은 다시 포함할 수 없어
!public/assets/style.css
우회 방법: 중첩 디렉터리를 명시적으로 제외해.
public/assets/*
!public/assets/style.css # 이제 이 파일에 접근 가능
제외된 디렉터리는 성능을 위해 순회하지 않으므로, 내부 파일에 대한 패턴은 효과가 없어. 이건 중첩 디렉터리에서의 부정 패턴에 대한 .gitignore 동작과 일치해. 자세한 내용은 gitignore 패턴에 대한 공식 Git 문서를 참고해.

문제 해결

git check-ignore -v [file]로 패턴을 테스트해.