Cursor는 AI 기반 코드 편집기로, 개발 생산성을 극대화하기 위해 다양한 컨텍스트 활용 기능을 제공합니다. 아래는 최신 인터넷 검색 결과를 바탕으로 Cursor의 컨텍스트 활용법을 정리한 내용입니다.
1. 코드베이스 인덱싱(Codebase Indexing)
- Cursor는 프로젝트의 모든 파일을 자동으로 인덱싱하여, AI가 코드베이스 전체를 이해하고 더 정확한 답변을 제공할 수 있도록 지원합니다.
.cursorignore
파일을 통해 인덱싱에서 제외할 파일이나 폴더를 지정할 수 있습니다. 대규모 모노레포에서는 각 개발자가 작업하는 영역만 인덱싱하도록 최적화할 수 있습니다.- 인덱싱 상태는
Cursor Settings > Features > Codebase Indexing
에서 확인할 수 있습니다.
2. 규칙(Rules) 시스템
- 규칙은 AI 에이전트의 행동을 제어하는 지침으로, 프로젝트별(
.cursor/rules
) 또는 사용자 전체에 적용할 수 있습니다. - MDC(.mdc) 파일은 Cursor의 규칙을 정의하는 전용 포맷으로, 마크다운과 유사한 구조를 가지며 규칙의 유형, 적용 범위, 설명, 예시 등을 명확하게 기술할 수 있습니다.
- 각 규칙 파일은
.mdc
확장자를 가지며, 텍스트 기반으로 작성됩니다. - 주요 구조: 규칙의 이름, 트리거 방식(Always, Auto Attached, Agent Requested, Manual), 설명, 예시, 참조 파일 등으로 구성됩니다.
- 예시:
--- name: API 스타일 가이드 trigger: Always description: 모든 API 함수는 snake_case로 작성해야 하며, 명확한 주석을 포함해야 합니다. example: | def get_user_info(user_id: int) -> dict: """사용자 정보를 반환합니다.""" ... ---
- 각 규칙 파일은
- 규칙은 Always, Auto Attached, Agent Requested, Manual 등 다양한 트리거 방식을 지원합니다.
- 규칙을 통해 프로젝트 도메인 지식, 스타일 가이드, 자동화 워크플로우 등을 AI에 일관되게 전달할 수 있습니다.
3. @ 심볼을 활용한 컨텍스트 추가
@
심볼은 Cursor에서 다양한 컨텍스트를 AI 프롬프트에 직접 추가할 때 사용합니다. 아래는 주요 @ 심볼의 활용법과 예시입니다.
@Files
- 특정 파일의 내용을 AI에게 직접 컨텍스트로 전달할 때 사용합니다.
- 예시:
@main.py
→main.py
파일의 주요 코드와 내용을 AI가 참고하여 답변합니다. - 활용: "@main.py의 함수 구조를 참고해서 새로운 API를 설계해줘."
@Folders
- 특정 폴더 전체를 AI에게 컨텍스트로 전달할 때 사용합니다. 폴더 내의 여러 파일 구조나 전체적인 맥락이 필요할 때 유용합니다.
- 예시:
@src/
→ src 폴더 내의 주요 파일 목록과 구조, 각 파일의 요약 정보를 AI가 참고합니다. - 활용: "@src/ 폴더 전체 구조를 참고해서 새로운 모듈을 어디에 추가하면 좋을지 추천해줘."
@Docs
- 프로젝트 내 문서(README, 설계서 등)를 AI가 참고하도록 추가할 수 있습니다.
- 예시:
@README.md
→ 프로젝트의 README 내용을 AI가 인식하여 설명이나 가이드 작성에 활용합니다. - 활용: "@README.md를 참고해서 설치 가이드를 한글로 요약해줘."
@Code
- 코드의 특정 블록, 함수, 클래스 등 원하는 코드 조각만을 AI에게 컨텍스트로 전달할 때 사용합니다. 코드 리뷰, 리팩터링, 특정 부분 설명 등에 적합합니다.
- 예시:
@Code
→ 선택한 함수나 클래스 정의만 AI가 참고하여 분석합니다. - 활용: "@Code로 선택한 함수의 성능을 개선할 수 있는 방법을 제안해줘."
@Git
- 현재 작업 중인 Git diff, 커밋, 풀 리퀘스트 등 버전 관리 정보를 AI에게 전달할 수 있습니다.
- 예시:
@Git
→ 최근 커밋 내역이나 diff를 AI가 분석하여 변경 요약, 커밋 메시지 추천, 코드 리뷰 지원 등에 활용합니다. - 활용: "@Git의 diff를 참고해서 버그 수정 내역을 요약해줘."
@Web
- 웹에서 실시간으로 정보를 검색해 AI 컨텍스트로 추가할 수 있습니다.
- 예시:
@Web
→ 최신 기술 문서, 라이브러리 사용법, Stack Overflow 답변 등 외부 정보를 AI가 직접 검색하여 답변에 반영합니다. - 활용: "@Web을 사용해서 최신 FastAPI 보안 설정 방법을 찾아 요약해줘."
이처럼 @ 심볼을 활용하면 코드, 문서, 버전 관리, 외부 정보 등 다양한 컨텍스트를 AI에게 명확하게 전달하여 더욱 정확하고 풍부한 지원을 받을 수 있습니다.
4. # 심볼 및 / 명령
#
심볼과/
명령을 활용하면 특정 파일이나 편집기 탭을 빠르게 참조할 수 있습니다.- 예시:
#settings.py
: settings.py 파일에 초점을 맞춰 AI가 해당 파일의 내용을 중심으로 답변합니다./Commands
: 현재 열려 있는 편집기 탭 목록을 불러와, 필요한 파일을 빠르게 컨텍스트로 추가할 수 있습니다.
- 활용: "#settings.py의 환경설정 코드를 참고해서 새로운 환경 변수 추가 코드를 작성해줘."
5. 파일 무시 및 인덱싱 제어
.cursorignore
와.cursorindexingignore
파일을 사용해 민감 정보나 대용량 파일을 인덱싱 및 AI 접근에서 제외할 수 있습니다.- 예시:
.cursorignore
파일에secrets.json
을 추가하면, 해당 파일은 인덱싱 및 AI 컨텍스트에서 제외됩니다..cursorindexingignore
에logs/
를 추가하면, 로그 폴더는 인덱싱에서만 제외되고 AI 기능에서는 접근이 가능합니다.
- 활용: "API 키가 포함된 secrets.json 파일은 .cursorignore에 추가해서 AI가 접근하지 못하게 해줘."
6. 기타 컨텍스트 활용 기능
- 최근 변경사항(@Recent Changes), 린트 오류(@Lint Errors), 코드 정의(@Definitions), 터미널(@Terminal), 과거 대화(@Past Chats) 등 다양한 컨텍스트를 AI에 제공할 수 있습니다.
- 예시:
@Recent Changes
: 최근 수정된 파일 목록과 변경 내용을 AI가 참고하여 변경 요약이나 리뷰를 지원합니다.@Lint Errors
: 현재 파일의 린트 오류 목록을 AI가 분석해 자동으로 수정 제안을 할 수 있습니다.@Terminal
: 터미널 명령어 실행 결과를 AI가 직접 분석해 문제 해결을 도와줍니다.@Past Chats
: 이전 대화 내용을 요약해 복잡한 작업의 맥락을 이어갈 수 있습니다.
- 활용: "@Recent Changes를 참고해서 최근 수정된 부분만 집중적으로 코드 리뷰해줘."
반응형