AI Code Editor, Cursor 문서
Cursor Docs 내용을 AIPilotSmarteasy 나 교수와 함께 읽습니다.
Cursor는 AI를 활용한 코딩에 최적화된 에디터를 목표로 VS Code를 기반으로 개발되었습니다.
주요 내용:
- VS Code 기반: VS Code를 기반으로 하기 때문에 사용자들에게 익숙한 텍스트 편집 경험을 제공합니다.
- 확장 프로그램, 테마, 설정, 키 바인딩 가져오기: VS Code 설정을 Cursor로 쉽게 가져올 수 있습니다.
- 주기적인 업데이트: VS Code의 최신 버전을 기반으로 주기적으로 업데이트됩니다.
- 독립 실행형 애플리케이션: VS Code 확장 프로그램이 아닌 독립 실행형 애플리케이션으로 개발되어 UI 제어를 강화하고 AI 통합에 더욱 집중할 수 있습니다.
- Cursor 설정: Cursor 특정 설정은 우측 상단의 기어 버튼, Ctrl/⌘ + Shift + J 또는 Ctrl/⌘ + Shift + P를 누르고 “Cursor Settings”를 입력하여 열 수 있습니다.
- VS Code 설정: VS Code 설정은 Ctrl/⌘ + Shift + P를 누르고 “VS Code Settings”를 입력하여 열 수 있습니다.
- 수평 활동 표시줄: 기본적으로 활동 표시줄이 수평으로 배치되어 채팅 공간을 확보합니다. VS Code 설정에서 workbench.activityBar.orientation을 vertical로 변경하고 Cursor를 다시 시작하면 수직으로 변경할 수 있습니다.
Cursor는 사용자의 요구 사항에 따라 다양한 구독 플랜을 제공합니다. 무료 플랜으로 시작하여 필요에 따라 유료 플랜으로 업그레이드할 수 있습니다. 사용량 기반 과금 옵션을 통해 예산을 초과하지 않고 필요한 만큼만 사용할 수 있습니다.
구독 등급:
- Hobby (무료):
- 14일 Pro 체험 제공
- 느린 프리미엄 모델 50회 사용
- Cursor-small 모델 200회 사용
- 코드 완성 2000회 사용
- Pro (유료):
- 빠른 프리미엄 모델 매달 500회 사용
- 느린 프리미엄 모델 무제한 사용
- Cursor-small 모델 무제한 사용
- 코드 완성 무제한 사용
- Claude Opus 모델 매달 10회 사용
- Business (유료):
- Pro 등급과 동일한 사용량 정보 제공
- 가격 페이지에 안내된 추가 혜택 제공
프리미엄 모델:
- GPT-4, GPT-4o, Claude 3.5 Sonnet 모델은 프리미엄 모델로 분류됩니다.
Pro 체험:
- 모든 신규 사용자는 14일 동안 Pro 기능을 이용할 수 있는 체험 기간이 주어집니다.
- 14일 후에는 Hobby 플랜으로 전환됩니다.
빠른 요청과 느린 요청:
- Cursor 서버는 모든 사용자에게 빠른 프리미엄 모델 요청을 제공하기 위해 노력하지만, 사용량이 많은 경우 빠른 프리미엄 크레딧을 모두 소진한 사용자는 느린 풀로 이동됩니다.
- 느린 풀은 기본적으로 빠른 요청이 가능해질 때까지 대기하는 사용자들의 대기열입니다.
- Cursor는 대기열을 최대한 짧게 유지하기 위해 최선을 다하지만, 빠른 프리미엄 크레딧을 더 많이 사용하고 대기 시간을 줄이려면 설정 페이지에서 추가 요청을 할 수 있습니다.
사용량 확인:
- Cursor 설정 페이지에서 사용량을 확인할 수 있습니다.
- Cursor 애플리케이션 내에서도 Cursor 설정 > 일반 > 계정으로 이동하여 확인할 수 있습니다.
- Pro 사용자는 “구독 관리”를, 비즈니스 사용자는 “관리”를 눌러 확인하세요.
사용량 기반 과금:
- 플랜에 포함된 것 이상으로 요청을 사용하는 경우 설정 페이지에서 사용량 기반 과금을 선택할 수 있습니다.
- 사용량 기반 과금은 월 단위로 계산됩니다.
- 요청을 즉시 취소하거나 오류가 발생하면 과금되지 않습니다.
- 월별 최대 금액을 설정할 수 있으며, 설정한 금액을 초과하여 청구되지 않습니다.
- 현재 사용량 기반 과금은 Claude 3 Opus 및 긴 컨텍스트 채팅의 일부 모델에만 적용됩니다.
Cursor Tab
AI 기반 자동 완성 기능인 Cursor Tab은 AI 기반 코드 완성 기능을 한 단계 끌어올린 강력한 도구입니다. 개발자는 Cursor Tab을 사용하여 더 빠르고 효율적으로 코드를 작성할 수 있습니다.
Cursor Tab의 특징:
- 강력한 Copilot: 단순히 코드를 추가하는 것이 아니라, 전체 코드 변경을 제안하는 강력한 Copilot 기능입니다.
- 자체 모델 기반: Cursor Tab은 자체 모델을 사용하여 다음과 같은 기능을 제공합니다.
- 커서 주변 편집 제안: 코드 삽입뿐 아니라 기존 코드 수정도 제안합니다.
- 여러 줄 동시 수정: 한 번에 여러 줄의 코드를 수정할 수 있습니다.
- 최근 변경 사항 및 linter 오류 기반 제안: 사용자의 최근 변경 사항과 linter 오류를 기반으로 더 정확한 제안을 제공합니다.
- 무료 및 유료 사용: 무료 사용자는 2000회까지 무료로 사용할 수 있으며, Pro 및 Business 플랜 사용자는 무제한으로 사용할 수 있습니다.
UI:
- 회색 텍스트: Cursor가 텍스트를 추가하는 경우, 완성된 코드는 회색 텍스트로 표시됩니다.
- Diff 팝업: 기존 코드를 수정하는 제안은 현재 줄 오른쪽에 diff 팝업으로 표시됩니다.
- 제안 수락 및 거부: Tab 키를 눌러 제안을 수락하고, Esc 키를 눌러 거부할 수 있습니다. Ctrl/⌘ → 키를 사용하여 제안을 단어 단위로 부분적으로 수락할 수도 있습니다. 계속 입력하거나 Esc 키를 사용하여 제안을 거부하고 숨길 수도 있습니다.
- 실시간 제안: Cursor는 모든 키 입력 또는 커서 이동에 따라 최근 변경 사항을 기반으로 제안을 시도합니다. 그러나 항상 제안을 표시하지는 않으며, 모델이 변경할 필요가 없다고 판단하는 경우도 있습니다.
- 수정 가능 범위: Cursor는 현재 줄의 한 줄 위부터 두 줄 아래까지 변경할 수 있습니다.
Cursor Tab 켜고 끄기:
- 애플리케이션 오른쪽 하단의 상태 표시줄에 있는 “Cursor Tab” 아이콘을 마우스로 가리키면 기능을 켜거나 끌 수 있습니다.
Cursor Tab의 Peek에서 탭, 커서 예측, 부분 수락 기능은 코드 작성 속도와 효율성을 더욱 향상시키는 데 도움이 됩니다. 이러한 기능들을 활용하여 개발자는 더욱 스마트하고 생산적인 코딩 경험을 누릴 수 있습니다.
Peek에서 탭:
- “정의로 이동” 또는 “타입 정의로 이동” Peek 보기에서도 Cursor Tab을 사용할 수 있습니다.
- 함수 호출에 새 인수를 추가할 때 유용합니다.
- 예를 들어, Vim에서
gd
명령어와 함께 사용하면 함수 정의를 수정한 다음 한 번에 모든 사용을 수정할 수 있습니다.
커서 예측:
- Cursor는 사용자가 편집을 수락한 후 어디로 이동할지 예측할 수 있습니다.
- 예측이 가능한 경우 탭 키를 눌러 다음 위치로 이동하여 여러 편집을 탭-탭-탭으로 빠르게 처리할 수 있습니다.
부분 수락:
- Ctrl/⌘ + 오른쪽 화살표 키를 눌러 제안의 다음 단어를 수락할 수 있습니다. (또는
editor.action.inlineSuggest.acceptNextWord
에 원하는 키 바인딩을 설정할 수 있습니다.) - 부분 수락 기능을 활성화하려면 Cursor 설정 > 기능 > Cursor Tab으로 이동하세요.
Cursor Chat
Cursor Chat은 코드 작성 중에 발생하는 질문이나 문제를 해결하는 데 유용한 도구입니다. 풍부한 컨텍스트 정보를 제공하고 강력한 언어 모델을 활용하여 개발자가 더욱 효율적으로 작업할 수 있도록 도와줍니다.
Cursor Chat의 특징:
- 풍부한 컨텍스트 제공: Cursor Chat은 코드베이스 전체의 컨텍스트, 웹 검색 결과, 문서 색인, 사용자 지정 코드 블록 참조 등을 자동으로 포함하여 언어 모델이 정확한 답변을 생성하는 데 필요한 정보를 제공합니다.
- AI 패널: Ctrl/⌘ + L 키를 누르면 열리는 AI 패널에서 Cursor Chat을 사용할 수 있습니다.
- 사용자 및 AI 메시지: 사용자 메시지는 입력한 텍스트와 참조된 컨텍스트를 포함하며, 이전 메시지를 편집하고 다시 실행할 수 있습니다. AI 메시지는 선택한 AI 모델이 생성한 답변이며, 이전 사용자 메시지와 쌍을 이룹니다. AI 메시지에는 코드베이스에 즉시 적용할 수 있는 파싱된 코드 블록이 포함될 수 있습니다.
- 채팅 기록: Ctrl/⌘ + Alt/Option + L 키를 누르거나 AI 패널 오른쪽 상단의 “이전 채팅” 버튼을 클릭하여 채팅 기록을 볼 수 있습니다.
- 기본 컨텍스트: 기본적으로 현재 파일이 컨텍스트로 포함됩니다. Alt/Option + Enter 키를 누르면 컨텍스트 없이 쿼리를 제출할 수 있으며, Cursor 설정 > 기능 > 채팅에서 기본값을 “컨텍스트 없음”으로 변경할 수 있습니다.
- 컨텍스트 추가: 사용자 메시지에는 입력한 텍스트와 참조된 컨텍스트 외에도 @ 기호를 사용하여 더 많은 사용자 지정 컨텍스트를 추가할 수 있습니다.
- AI 수정: 에디터에서 오류 위에 마우스를 올려놓고 파란색 AI 수정 버튼을 클릭하거나 Ctrl/⌘ + Shift + E 키를 눌러 AI를 사용하여 코드를 수정할 수 있습니다.
- 긴 컨텍스트 채팅 (베타): Cursor 설정 > 베타 > 긴 컨텍스트 채팅에서 활성화할 수 있으며, Ctrl/⌘ + . 키를 사용하여 다른 채팅 모드로 전환할 수 있습니다. 긴 컨텍스트 채팅을 사용하면 더 큰 컨텍스트 창을 지원하는 모델을 사용하여 전체 폴더를 컨텍스트로 포함할 수 있습니다.
Cursor Chat에서 AI 모델 선택 및 Cursor Chat 설정
Cursor Chat은 사용자 정의 설정과 다양한 AI 모델을 제공하여 개발자가 자신의 필요에 맞게 최적화된 환경에서 AI의 도움을 받을 수 있도록 지원합니다.
AI 모델 선택:
- 모델 토글: Ctrl/⌘ / 키를 눌러 모델 토글을 통해 원하는 AI 모델을 선택할 수 있습니다.
- 기본 모델: Cursor Chat은 기본적으로 OpenAI의 GPT-4를 AI 모델로 사용합니다(gpt-4 레이블은 GPT4-Turbo 인스턴스를 가리킵니다).
- 모델 저장: Chat에서 선택한 AI 모델은 향후 세션을 위해 저장되므로 Cursor Chat을 열 때마다 변경할 필요가 없습니다.
에디터 내 채팅:
- 채팅 탭 열기: 수평 “더 보기” 버튼을 클릭한 다음 “에디터에서 채팅 열기” 버튼을 클릭하여 Cursor Chat을 에디터 탭으로 사용할 수 있습니다.
- AI 패널 포커스: Ctrl/⌘ + L 키를 누르면 채팅 탭이 나타나고 포커스가 맞춰집니다.
설정:
- Cursor 설정: Cursor 설정 > 기능 > 채팅에서 Cursor Chat을 사용자 지정할 수 있습니다.
설정 옵션:
- 항상 웹에서 답변 검색: AI 모델이 쿼리할 때마다 웹을 검색하여 최신 정보를 얻도록 합니다.
- 채팅 페이드 애니메이션 추가: AI 메시지가 생성될 때 부드러운 애니메이션을 추가합니다.
- 기본값을 컨텍스트 없음으로 설정: AI 모델이 사용자 메시지만 컨텍스트로 사용하고 현재 파일과 같은 추가 컨텍스트를 포함하지 않도록 합니다.
- 자동 스크롤 채팅: 스레드 하단에 있을 때 AI가 텍스트를 생성할 때 채팅을 자동으로 스크롤합니다.
- 채팅 창에서 좁은 스크롤바: 채팅 창의 스크롤바를 좁게 표시합니다.
- 새 채팅을 시작할 때 채팅 기록 표시: 새 채팅을 시작할 때 이전 채팅 기록을 표시합니다.
코드베이스
Cursor Chat의 코드베이스 검색 및 인덱싱 기능을 활용하면 개발자는 코드베이스 전체에서 필요한 정보를 빠르고 정확하게 찾을 수 있습니다. 이는 코드 작성 및 문제 해결 속도를 높여 개발 생산성 향상에 기여합니다.
기본 코드베이스 채팅:
- 코드베이스가 인덱싱되지 않은 경우, Cursor Chat은 먼저 몇 가지 검색어를 계산하여 코드베이스 전체에서 검색을 시도합니다.
- 더 나은 정확도를 위해 임베딩 검색을 사용하는 것이 좋습니다.
임베딩 검색:
- 코드베이스 인덱싱을 사용하면 Cursor Chat은 코드베이스를 기반으로 보다 정확한 응답을 생성할 수 있습니다.
- 메시지를 입력한 후 Ctrl/⌘ + Enter 키를 누르면 Cursor Chat은 인덱싱된 코드베이스를 스캔하여 관련 코드를 찾습니다.
- 이 기능은 대화의 컨텍스트에 포함할 코드 조각을 빠르게 찾는 데 유용합니다.
- 코드베이스 검색을 보다 세밀하게 제어하고 정확도를 높이려면
@codebase
를 사용하세요.
고급 코드베이스 검색:
@codebase
를 사용하면 Cursor 코드베이스 채팅은 더 자세한 검색을 수행합니다.@codebase
에 대한 자세한 내용은 [링크]에서 확인할 수 있습니다. (링크는 제공된 원문에서 누락되었습니다.)
Cursor Chat에서 생성된 코드 블록을 실제 코드에 적용하는 방법
Cursor Chat의 Apply 기능은 AI가 제안한 코드를 실제 코드에 쉽고 빠르게 통합할 수 있는 편리한 기능입니다. 이를 통해 개발자는 AI의 도움을 받아 더욱 효율적으로 코드를 작성하고 수정할 수 있습니다.
코드 블록 적용:
- 플레이 버튼: 각 채팅 코드 블록의 오른쪽 상단에 있는 플레이 버튼을 눌러 코드 블록 제안을 적용할 수 있습니다.
- 파일 편집: 플레이 버튼을 누르면 Chat이 생성한 코드를 통합하기 위해 파일이 편집됩니다.
- Chat + Apply 추천: Chat에서 모델과 가장 많은 컨텍스트를 추가하고 가장 많은 상호 작용을 할 수 있으므로 더 복잡한 AI 기반 코드 변경에는 Chat + Apply를 사용하는 것이 좋습니다.
수락 또는 거부:
- Diff 검토: 코드 블록을 적용하고 나면 변경 사항을 검토하고 수락하거나 거부할 수 있습니다.
- 수락/거부 버튼: 채팅 코드 블록의 오른쪽 상단에 있는 “수락” 또는 “거부” 버튼을 클릭할 수도 있습니다.
- 단축키: Ctrl/⌘ Enter 키를 눌러 수락하고, Ctrl/⌘ Backspace 키를 눌러 거부할 수 있습니다.
AI 기반 코드 생성 및 편집 기능인 Cmd K (Windows/Linux에서는 Ctrl K)
Cmd K (Ctrl K) 기능은 Cursor의 강력한 AI 기능을 활용하여 코드를 생성하고 편집하는 직관적이고 효율적인 방법을 제공합니다. 개발자는 이 기능을 통해 더 빠르고 스마트하게 코드를 작성하고, 오류를 수정하고, 새로운 기능을 추가할 수 있습니다.
Cmd K (Ctrl K) 기능:
- 프롬프트 바: Ctrl/Cmd K를 누르면 나타나는 바를 “프롬프트 바”라고 합니다. Chat의 AI 입력 상자와 유사하게 작동하며, 일반 텍스트를 입력하거나 @ 기호를 사용하여 다른 컨텍스트를 참조할 수 있습니다.
- 인라인 생성: Ctrl/Cmd K를 누를 때 코드가 선택되어 있지 않으면 프롬프트 바에 입력한 프롬프트를 기반으로 새 코드가 생성됩니다.
- 인라인 편집: 코드를 직접 편집하려면 편집할 코드를 선택하고 프롬프트 바에 입력하면 됩니다.
- 후속 지침: 각 생성 후 프롬프트 바에 지침을 추가하고 Enter 키를 눌러 AI가 후속 지침을 기반으로 코드를 다시 생성하도록 할 수 있습니다.
기본 컨텍스트:
- Cursor는 사용자가 포함하는 수동 @ 기호 외에도 코드 생성을 개선하기 위해 다양한 종류의 유용한 정보를 자동으로 찾습니다.
- 추가 컨텍스트에는 관련 파일, 최근에 본 파일 등이 포함될 수 있습니다.
- Cursor는 정보를 수집한 후 컨텍스트 항목을 편집/생성과의 관련성에 따라 순위를 매기고 상위 항목을 대규모 언어 모델의 컨텍스트에 유지합니다.
빠른 질문:
- 프롬프트 바에서 Option/Alt + Enter 키를 누르면 선택 항목 및 연결된 컨텍스트에 대한 질문에 답변합니다.
- 이 대화 내용은 후속 생성에 사용될 수 있으므로, Cursor가 빠른 질문에 대한 응답을 제시한 후 “do it”을 입력하여 코드를 생성할 수 있습니다.
터미널에서 사용할 수 있는 AI 기반 명령어 생성 기능인 Cmd K (Ctrl K)
터미널 Cmd K는 AI를 활용하여 터미널 작업을 보다 효율적으로 수행할 수 있도록 도와줍니다. 사용자가 원하는 작업을 자연어로 설명하면 AI가 적절한 명령어를 생성해 주므로, 복잡한 명령어를 기억하거나 직접 입력해야 하는 수고를 덜 수 있습니다.
터미널 Cmd K:
- 실행: Cursor 터미널에서 Ctrl/⌘ K를 누르면 터미널 하단에 프롬프트 바가 열립니다.
- 명령어 생성: 이 프롬프트 바에 원하는 작업을 설명하면 터미널 Cmd K가 명령어를 생성합니다.
- 명령어 실행: Esc 키를 눌러 명령어를 수락하거나 Ctrl/⌘ + Enter 키를 눌러 즉시 실행할 수 있습니다.
컨텍스트:
- 기본적으로 터미널 Cmd K는 최근 터미널 기록, 사용자 지침 및 프롬프트 바에 입력한 다른 모든 내용을 컨텍스트로 고려합니다.
AI의 코드 분석 능력을 향상시키기 위해 코드베이스를 인덱싱
코드베이스 인덱싱은 Cursor의 AI 기능을 최대한 활용하여 더 정확하고 관련성 높은 코드 제안과 답변을 얻는 데 중요합니다. 고급 설정을 통해 인덱싱 프로세스를 사용자 지정하고 제어할 수 있습니다.
코드베이스 인덱싱:
- 목적:
@codebase
또는 Ctrl/⌘ Enter를 사용하여 더 정확한 코드베이스 답변을 얻으려면 코드베이스를 인덱싱해야 합니다. - 방법: Cursor는 코드베이스의 각 파일에 대한 임베딩을 계산하여 코드베이스 답변의 정확성을 향상시킵니다.
- 자동 동기화: 코드베이스 인덱스는 최신 코드베이스 변경 사항과 자동으로 동기화됩니다.
- 상태 확인: 코드베이스 인덱싱 상태는 Cursor 설정 > 기능 > 코드베이스 인덱싱에서 확인할 수 있습니다.
고급 설정:
- 기본 설정: 기본적으로 Cursor는 코드베이스의 모든 파일을 인덱싱합니다.
- 설정 표시: “설정 표시” 섹션을 확장하여 고급 옵션에 액세스할 수 있습니다.
- 추가 옵션:
- 새 저장소에 대한 자동 인덱싱 활성화 여부를 결정할 수 있습니다.
.gitignore
설정 외에도 저장소 인덱싱 중에 Cursor가 무시할 파일을 구성할 수 있습니다.
팁:
- 프로젝트에 AI가 읽을 필요가 없는 대용량 콘텐츠 파일이 있는 경우 해당 파일을 무시하면 답변의 정확도가 향상될 수 있습니다.
컨텍스트
@
기호는 Cursor의 AI 기능을 사용할 때 컨텍스트를 효과적으로 활용할 수 있도록 도와주는 강력한 도구입니다. 키보드 단축키를 사용하면 관련 정보를 빠르게 찾고 선택하여 작업 속도를 높일 수 있습니다.
@ 기호 사용 방법:
- AI 입력 상자에서
@
를 입력하면 제안 목록이 나타납니다. - 제안 목록은 입력 내용을 기반으로 가장 관련성이 높은 제안만 표시하도록 자동으로 필터링됩니다.
키보드 단축키:
- 위/아래 화살표 키를 사용하여 제안 목록을 탐색할 수 있습니다.
- Enter 키를 눌러 제안을 선택합니다.
- 제안이 파일과 같은 범주인 경우 해당 범주 내에서 가장 관련성이 높은 항목만 표시되도록 제안이 필터링됩니다.
Cmd K 키보드 단축키:
- 위/아래 화살표 키: 선택한 Cmd K
@
기호 목록을 탐색합니다. - Enter 키: 선택한 컨텍스트 항목을 확장/축소합니다.
- Ctrl/⌘ M 키: 파일 참조의 경우 파일 읽기 전략을 전환합니다. 파일 읽기 전략에 대한 자세한 내용은 [링크]를 참조하세요. (링크는 제공된 원문에서 누락되었습니다.)
@Files
@Files
명령어와 다양한 파일 처리 전략을 통해 Cursor의 AI 기능에 필요한 파일 컨텍스트를 정확하고 효율적으로 제공할 수 있습니다. 이는 AI 기반 코드 생성 및 편집 기능을 더욱 강력하게 만들어줍니다.
@Files 사용:
- Cursor Chat 및 Cmd K와 같은 AI 입력 상자에서
@Files
를 사용하여 전체 파일을 참조할 수 있습니다. @
뒤에 계속 입력하면@Code
전략 이후에 파일 검색 결과가 표시됩니다.- Cursor는 참조하는 파일이 올바른지 확인하기 위해 파일 경로 미리보기를 표시합니다. 이는 여러 폴더에 같은 이름의 파일이 여러 개 있을 때 특히 유용합니다.
Chat에서 긴 파일 참조:
- Cursor Chat에서 파일 내용이 너무 길면 Cursor는 파일을 더 작은 청크로 분할하고 쿼리와의 관련성에 따라 순위를 다시 매깁니다.
Cmd K 청크 전략:
- Cmd K의 경우 Cursor는 내용 길이에 따라 파일 참조를 다르게 사용합니다.
- auto: 파일 크기에 따라 세 가지 읽기 전략 중 하나를 자동으로 선택합니다.
- full file: 전체 파일을 컨텍스트로 사용합니다.
- outline: Cursor는 파일의 아웃라인을 분석하고 해당 정보를 컨텍스트로 사용합니다.
- chunks: Cursor는 파일을 더 작은 청크로 분할하고 가장 관련성이 높은 청크를 선택합니다.
드래그 앤 드롭:
- 기본 사이드바에서 Chat 또는 Cmd K로 파일을 드래그 앤 드롭하여 컨텍스트로 추가할 수도 있습니다.
@Folders
@Folders
명령어를 사용하면 Cursor Chat에서 폴더 전체를 컨텍스트로 제공하여 AI가 더 넓은 범위의 코드를 이해하고 활용할 수 있도록 할 수 있습니다. 이는 더 정확하고 관련성 높은 답변을 얻는 데 도움이 됩니다.
@Folders 사용:
- Cursor Chat에서
@Folders
명령어를 사용하여 전체 폴더를 컨텍스트로 참조할 수 있습니다. @Folders
는 AI에 많은 컨텍스트를 제공하고자 할 때 특히 유용합니다.- 현재
@Folders
는 Cursor Chat에서만 지원됩니다.
@Code
@Code
명령어를 사용하면 Cursor의 AI 기능에 특정 코드 섹션을 컨텍스트로 제공하여 더 정확하고 관련성 높은 코드 제안과 답변을 얻을 수 있습니다. 또한, 에디터에서 직접 코드를 선택하여 컨텍스트에 추가할 수 있어 편리합니다.
@Code 사용:
- 특정 코드 섹션을 참조하려면
@Code
기호를 사용할 수 있습니다. @Files
기호와 마찬가지로 Cursor는 코드 내용의 미리보기를 표시하여 참조하는 코드가 올바른지 확인할 수 있도록 합니다.
에디터에서 코드 추가:
- 코드 조각을 컨텍스트로 추가하는 또 다른 방법은 참조할 코드를 선택하고 “채팅에 추가”(Ctrl/⌘ Shift L) 또는 “편집에 추가”(Ctrl/⌘ Shift K)를 클릭하는 것입니다.
- 이렇게 하면 선택한 코드 조각이 채팅 입력 상자 또는 현재 활성 상태인 Cmd K 프롬프트 바에 추가됩니다.
- 선택한 코드를 새 채팅에 추가하려면 Ctrl/⌘ L을 누릅니다.
@Docs
@Docs
명령어와 사용자 지정 문서 추가 기능을 통해 Cursor의 AI 기능에 필요한 문서 컨텍스트를 쉽게 제공할 수 있습니다. 이를 통해 개발자는 AI의 도움을 받아 문서를 참조하고, 코드를 작성하고, 문제를 해결하는 데 더욱 효율적으로 작업할 수 있습니다.
@Docs 사용:
- Cursor는 크롤링 및 인덱싱되어 컨텍스트로 사용할 준비가 된 여러 가지 타사 문서 세트를 제공합니다.
@Docs
기호를 사용하여 이러한 문서에 액세스할 수 있습니다.
사용자 지정 문서 추가:
- 제공되지 않는 사용자 지정 문서를 크롤링하고 인덱싱하려면
@Docs
> “새 문서 추가”를 통해 추가할 수 있습니다. - 원하는 문서의 URL을 붙여넣으면 다음 모달이 나타납니다.
- Cursor는 문서를 인덱싱하고 학습하며, 다른 문서와 마찬가지로 컨텍스트로 사용할 수 있게 됩니다.
사용자 지정 문서 관리:
- Cursor 설정 > 기능 > 문서에서 추가한 문서를 확인할 수 있습니다.
- 여기에서 문서를 편집, 삭제하거나 새 문서를 추가할 수 있습니다.
@Git
@Git
명령어를 사용하면 Cursor Chat에서 Git 정보를 활용하여 코드 분석 및 개발 작업을 보다 효율적으로 수행할 수 있습니다.
@Git 사용:
- Cursor Chat에서
@Git
명령어를 사용하여 Git 커밋, diff 또는 풀 리퀘스트를 프롬프트에 추가할 수 있습니다. - 현재
@Git
는 Cursor Chat에서만 지원됩니다.
일반적인 사용 사례:
@Git
의 일반적인 사용 사례 중 하나는 Cursor의 AI가 diff를 스캔하여 해당 diff로 인해 발생할 수 있는 버그나 문제를 찾도록 하는 것입니다.- 예를 들어, 특정 커밋에서 발생한 버그를 찾거나, 풀 리퀘스트의 코드 변경 사항을 분석하여 잠재적인 문제점을 파악할 수 있습니다.
- 또한
@Diff of Working State
를 사용하여 현재 diff에서 커밋 메시지를 생성할 수도 있습니다.
@Codebase
@Codebase
명령어는 Cursor Chat에서 코드베이스 전체를 활용하여 질문에 대한 답변을 얻을 수 있는 강력한 기능입니다. 이를 통해 사용자는 코드베이스에 대한 높은 수준의 이해를 바탕으로 보다 정확하고 유용한 정보를 얻을 수 있습니다.
@Codebase 작동 방식:
@Codebase
명령어를 사용하면 Cursor Chat은 다음 단계를 거쳐 가장 중요한 코드를 찾아 활용합니다.
- 수집 (Gathering): 코드베이스를 스캔하여 중요한 파일 및 코드 청크를 찾습니다.
- 재순위 지정 (Reranking): 쿼리와의 관련성에 따라 컨텍스트 항목의 순서를 다시 매깁니다.
- 추론 (Reasoning): 컨텍스트를 사용하는 계획을 세웁니다.
- 생성 (Generating): 답변을 생성합니다.
고급 코드베이스 쿼리 제출:
- Ctrl/⌘ + Enter 버튼 옆에 있는 드롭다운을 클릭하고 검색 동작으로 “reranker”를 선택하여 고급 코드베이스 쿼리를 제출할 수도 있습니다.
- 이 옵션은
@Codebase
를 사용하지 않을 때만 사용할 수 있습니다.@Codebase
를 사용하는 경우@Codebase
가 우선적으로 적용됩니다.
@Web
@Web
명령어를 사용하면 Cursor Chat이 웹에서 최신 정보를 가져와 답변의 정확성과 유용성을 높일 수 있습니다. 이는 개발자가 최신 정보를 얻고 문제를 해결하는 데 도움이 됩니다.
@Web 사용:
@Web
명령어를 사용하면 Cursor는 사용자의 쿼리와 제공된 컨텍스트를 기반으로 검색어를 구성하고 웹을 검색하여 관련 정보를 추가 컨텍스트로 가져옵니다.- 이 기능은 최신 정보를 찾는 데 특히 유용합니다.
상시 웹 검색:
- Cursor 설정 > 기능 > 채팅에서 “항상 웹 검색”을 켜면 모든 쿼리에 대해 Cursor가 웹을 검색하도록 할 수 있습니다.
- 이는 모든 쿼리에서
@web
을 사용하는 것과 같습니다.
@Chat
@Chat
명령어를 사용하면 Cmd K에서 AI와의 대화 내용을 자연스럽게 코드 편집 및 생성 작업에 활용할 수 있습니다. 이는 개발자가 AI와 더욱 긴밀하게 상호 작용하고, 컨텍스트를 유지하면서 작업을 수행할 수 있도록 도와줍니다.
@Chat 사용:
- Cmd K에서
@Chat
명령어를 사용하면 현재 채팅 메시지를 컨텍스트로 추가할 수 있습니다. - 이 기능은 AI와 나눈 대화 내용을 코드 편집이나 생성에 활용하고 싶을 때 유용합니다.
- 예를 들어, AI에게 특정 함수의 기능에 대해 물어본 후, 해당 함수를 사용하는 코드를 생성할 때
@Chat
를 사용하여 이전 대화 내용을 컨텍스트로 제공할 수 있습니다.
제한 사항:
- 현재
@Chat
는 Cmd K에서만 지원됩니다.
@Definitions
@Definitions
명령어를 사용하면 Cmd K에서 주변 코드 정의를 컨텍스트로 활용하여 AI 기반 코드 생성 및 편집 기능을 더욱 효율적으로 사용할 수 있습니다.
@Definitions 사용:
- Cmd K에서
@Definitions
명령어를 사용하면 주변 코드 정의를 컨텍스트로 추가할 수 있습니다. - 예를 들어, 함수 내부에서 코드를 생성하거나 편집할 때
@Definitions
를 사용하면 해당 함수의 매개변수, 반환 값, 변수 선언 등을 AI가 참조하여 더 정확하고 관련성 높은 코드를 생성할 수 있습니다.
제한 사항:
- 현재
@Definitions
는 Cmd K에서만 지원됩니다.
@https://your-link.com
링크 붙여넣기 기능을 사용하면 Cursor의 AI 기능에 웹 페이지 콘텐츠를 컨텍스트로 제공하여 더욱 풍부하고 정확한 답변을 얻을 수 있습니다.
링크 붙여넣기:
- Cursor가 응답하기 전에 링크를 방문하도록 하려면
@
를 입력한 다음 링크를 붙여넣습니다. - 예를 들어, 특정 웹 페이지의 내용을 기반으로 코드를 생성하거나 질문에 대한 답변을 얻고자 할 때 유용합니다.
링크 제거:
- 기본적으로 Cursor는 링크를 자동으로 분석하여 Cursor Chat에서
@Links
로 변환합니다. - 링크를 일반 텍스트로 유지하려면 링크를 클릭한 다음 “링크 해제”를 클릭합니다.
.cursorignore
.cursorignore
파일을 사용하면 Cursor의 코드 분석 범위를 제어하고, 필요한 파일만 인덱싱하여 AI 기능의 성능과 정확도를 높일 수 있습니다.
.cursorignore
파일은 Git의 .gitignore
파일과 동일한 방식으로 작동합니다.
.cursorignore
파일 사용:
- Cursor는
.gitignore
를 존중합니다..gitignore
가 이미 있는 경우 해당 파일은 기본적으로 무시됩니다.- 추가 파일을 무시하려면
.cursorignore
파일에 추가하면 됩니다.
.cursorignore
파일 예시:
1 2 3 4 5 6 7 8 |
# `dist` 디렉토리의 모든 파일 무시 dist/ # 모든 `.log` 파일 무시 *.log # 특정 파일 `config.json` 무시 config.json |