Cursor 에서 Context 활용

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.pymain.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 컨텍스트에서 제외됩니다.
    • .cursorindexingignorelogs/를 추가하면, 로그 폴더는 인덱싱에서만 제외되고 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를 참고해서 최근 수정된 부분만 집중적으로 코드 리뷰해줘."

참고: 슬기로운 개발자의 생활 - AI 코드 편집기 Cursor 내에서 Context 활용하기

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유