
컨텍스트가 뭐야?
- 의도 컨텍스트는 사용자가 모델로부터 얻고 싶은 걸 정의해. 예를 들어, 시스템 프롬프트는 보통 모델이 어떻게 동작하길 원하는지를 알려주는 상위 수준의 지침이야. Cursor에서 이루어지는 대부분의 “프롬팅”은 의도 컨텍스트에 해당해. “저 버튼을 파란색에서 초록색으로 바꿔” 같은 건 명시된 의도의 예시고, 지시적이야.
- 상태 컨텍스트는 현재 환경의 상태를 설명해. Cursor에 오류 메시지, 콘솔 로그, 이미지, 코드 조각을 제공하는 건 상태와 관련된 컨텍스트의 예시야. 이건 지시적이라기보다 묘사적이야.
Cursor에서 컨텍스트 제공하기
- 패턴이 없는데도 패턴 매칭을 시도하면서 발생하는 환각으로, 예기치 않은 결과가 나올 수 있어. 컨텍스트가 충분하지 않을 때
claude-3.5-sonnet
같은 모델에서 자주 나타나. - Agent가 코드베이스를 검색하고, 파일을 읽고, 도구를 호출하면서 스스로 컨텍스트를 모으려고 해. 강한 사고 성능의 모델(
claude-3.7-sonnet
등)은 이 전략만으로도 꽤 멀리 갈 수 있고, 올바른 초기 컨텍스트를 주면 그 이후의 전개가 결정돼.
@-symbol
Symbol | Example | Use case | Drawback |
---|---|---|---|
@code | @LRUCachedFunction | 생성하려는 결과에 어떤 함수, 상수, 혹은 심볼이 관련 있는지 알 때 | 코드베이스에 대한 많은 지식이 필요함 |
@file | cache.ts | 어떤 파일을 읽거나 편집해야 할지는 알지만, 파일 내 정확한 위치는 모를 때 | 파일 크기에 따라 현재 작업과 무관한 컨텍스트가 많이 포함될 수 있음 |
@folder | utils/ | 폴더 내 모든 또는 대부분의 파일이 관련 있을 때 | 현재 작업과 무관한 컨텍스트가 많이 포함될 수 있음 |

규칙
/Generate Cursor Rules
를 사용해 생성할 수도 있어. 프롬프트가 많은 긴 대화를 주고받았다면, 나중에 재사용하고 싶은 유용한 지침이나 일반 규칙이 분명 있을 거야.

MCP
- 내부 문서: 예: Notion, Confluence, Google Docs
- 프로젝트 관리: 예: Linear, Jira

자체 수집 컨텍스트
- 관련 코드 부분에 print(“debugging: …”) 문 추가하기
- 터미널을 사용해 코드나 테스트 실행하기

핵심 내용
- 컨텍스트는 효과적인 AI 코딩의 토대이며, 의도(원하는 것)와 상태(현재 존재하는 것)로 이뤄져. 둘 다 제공하면 Cursor가 더 정확하게 예측해.
- 자동 컨텍스트 수집에만 의존하지 말고, @-기호(@code, @file, @folder)로 필요한 컨텍스트를 정밀하게 지정해서 Cursor를 정확히 안내해.
- 반복되는 지식은 규칙으로 정리해 팀 전반에서 재사용하고, 외부 시스템을 연결하려면 Model Context Protocol로 Cursor의 기능을 확장해.
- 컨텍스트가 부족하면 환각이나 비효율이 생기고, 무관한 컨텍스트가 너무 많으면 신호가 희석돼. 최적의 결과를 위해 균형을 잘 맞춰.