# Cursor IDE 가이드 ## 1. Cursor Tab 기능 ### 1.1 핵심 특징 - **AI 기반 코드 완성**: 단순한 코드 스니펫이 아닌 고급 자동 완성 시스템 - **페어 프로그래밍**: AI가 개발자 옆에서 함께 코딩하는 듯한 경험 제공 - **지능적 다중 줄 수정**: 여러 줄에 걸친 코드 수정 및 리팩토링 가능 - **문맥 인식**: - 최근 변경사항 기록 - 린터 오류 고려 - 현재 작업 목표 이해 - **차이 기반 UI**: - 코드 변경사항을 차이 팝업으로 시각화 - 추가/삭제/변경 사항 명확히 표시 ### 1.2 GitHub Copilot과의 주요 차이점 - **코드 편집 능력**: - Copilot: 주로 현재 커서 위치에 코드 삽입 - Cursor Tab: 기존 코드 수정, 함수 리팩토링, 버그 수정 등 가능 - **통합 기능**: - 채팅 기능 내장 - 코드 분석 도구 통합 - 프로젝트 구조 시각화 ### 1.3 주요 기능 #### 기본 기능 - **탭 완성**: - `Tab` 키로 제안 수락 - 약 1초 대기 후 AI 제안 - 패턴 기반 자동 완성 - **부분 수락**: `Ctrl/⌘ + →`로 단어별 수락 - **제안 거부**: `Esc` 키로 제안 거부 #### 고급 기능 1. **피크 뷰 통합** - 정의로 이동 - 타입 정의 확인 - 매개변수 추가/수정 2. **커서 예측** - 다음 논리적 편집 위치 예측 - 연속적인 탭 입력으로 관련 편집 연결 3. **다중 줄 편집** - 여러 줄 동시 수정 - 코드 블록 완성 - 인터페이스 구현 4. **AI 채팅 통합** - `Ctrl + L`: 채팅 패널 열기 - 코드 컨텍스트 기반 대화 - 전체 코드베이스 분석 5. **인라인 편집** - `Ctrl + K`: 코드 편집 및 작성 - 미니 팝업으로 코드 생성/수정 - `Ctrl + Shift + Y`: 수락 - `Ctrl + N`: 거부 - `Alt + Enter`: 코드 관련 질문 ### 1.4 사용 팁 - **신뢰와 검증**: AI 제안은 항상 검토 필요 - **단축키 활용**: 기본 단축키 숙지 - **컨텍스트 활용**: AI가 더 정확한 제안을 할 수 있도록 충분한 컨텍스트 제공 - **자동 가져오기**: 의존성 자동 추가 - **프라이버시 고려**: 민감한 코드는 프라이버시 모드 사용 ### 1.5 가격 정책 - **무료 사용자**: - AI 기능 사용 제한 (일일/월별 할당량) - 기본 모델만 사용 가능 - 프로젝트 크기 제한 - **Pro 플랜**: - 무제한 AI 기능 사용 - 모든 고급 AI 모델 사용 가능 (GPT-4o, Claude 3 Opus 등) - 우선 고객 지원 - **비즈니스 플랜**: - Pro 플랜의 모든 기능 포함 - 팀 관리 기능 - 엔터프라이즈급 보안 및 규정 준수 - 전용 지원 ## 2. Cursor 설정 가이드 ### 2.1 기본 설정 - **테마**: 다크/라이트 모드 선택 - **폰트**: 코드 폰트 및 크기 설정 - **줄 번호**: 줄 번호 표시 여부 - **자동 들여쓰기**: 자동 들여쓰기 활성화/비활성화 ### 2.2 AI 관련 설정 - **AI 모델**: - 사용할 AI 모델 선택 (GPT-4o, Claude 3 Opus, Claude 3 Sonnet 등) - 모델별 특성 및 성능 차이 고려 - **제안 빈도**: AI 제안 표시 빈도 조절 - **컨텍스트 크기**: AI가 참조할 코드 컨텍스트 크기 설정 - **자동 완성**: 자동 완성 기능 활성화/비활성화 ### 2.3 편집기 설정 - **탭 크기**: 탭 문자 크기 설정 - **공백**: 탭을 공백으로 변환 여부 - **자동 저장**: 자동 저장 간격 설정 - **미니맵**: 미니맵 표시 여부 ### 2.4 단축키 설정 - **기본 단축키**: - `Tab`: AI 제안 수락 - `Esc`: AI 제안 거부 - `Ctrl/⌘ + →`: 부분 수락 - `Cmd/Ctrl+L`: 채팅 - `Cmd/Ctrl+K`: 인라인 편집 - **커스텀 단축키**: 사용자 정의 단축키 설정 ### 2.5 확장 프로그램 - **기본 확장**: 기본 제공되는 확장 프로그램 - **추가 확장**: 사용자 정의 확장 프로그램 설치 - **확장 관리**: 확장 프로그램 활성화/비활성화 ## 3. Cursor 사용 팁 ### 3.1 생산성 향상 - **AI 기능 활용**: Tab 완성, 채팅, 인라인 편집 등 AI 기능 적극 활용 - **단축키 숙지**: 자주 사용하는 단축키 익히기 - **커스텀 설정**: 개인 작업 스타일에 맞게 설정 조정 - **롱 컨텍스트 활용**: 대규모 프로젝트에서 전체 코드베이스 컨텍스트 활용 ### 3.2 문제 해결 - **AI 제안 검토**: AI가 제안한 코드는 항상 검토 - **컨텍스트 활용**: AI가 더 정확한 제안을 할 수 있도록 충분한 컨텍스트 제공 - **설정 조정**: 문제 발생 시 관련 설정 확인 및 조정 - **모델 변경**: 특정 문제 해결에 적합한 AI 모델로 전환 ### 3.3 최적화 - **리소스 관리**: 불필요한 확장 프로그램 비활성화 - **캐시 정리**: 주기적인 캐시 정리 - **업데이트**: 최신 버전 유지 - **하드웨어 요구사항 확인**: 충분한 메모리와 처리 능력 확보 ## 4. Cursor 규칙 가이드 ### 4.1 코드 스타일 규칙 - **자동 포맷팅**: - 저장 시 자동 포맷팅 적용 - 언어별 기본 포맷팅 규칙 준수 - 커스텀 포맷팅 규칙 설정 가능 - **들여쓰기 규칙**: - 탭 또는 스페이스 사용 설정 - 들여쓰기 크기 설정 - 자동 들여쓰기 정렬 - **줄 바꿈 규칙**: - 최대 줄 길이 설정 - 자동 줄 바꿈 - 줄 끝 공백 처리 ### 4.2 AI 제안 규칙 - **제안 우선순위**: - 문맥 기반 제안 순위 - 사용자 선호도 반영 - 최근 사용 패턴 학습 - **제안 필터링**: - 언어별 제안 필터 - 프로젝트 컨텍스트 기반 필터 - 보안 관련 제안 필터 - **제안 제한**: - 무료 사용자 제안 할당량 - 프로 사용자 무제한 제안 - 제안 빈도 조절 ### 4.3 협업 규칙 - **버전 관리**: - Git 통합 규칙 - 커밋 메시지 형식 - 브랜치 관리 정책 - **코드 리뷰**: - AI 기반 코드 리뷰 규칙 - 리뷰 코멘트 형식 - 승인 프로세스 - **문서화**: - 주석 작성 규칙 - API 문서화 표준 - README 작성 가이드 ### 4.4 보안 규칙 - **코드 보안**: - 민감 정보 처리 - API 키 관리 - 환경 변수 사용 - **AI 사용 제한**: - 민감 코드 AI 처리 제한 - 보안 관련 코드 AI 제안 제한 - 데이터 프라이버시 보호 - **접근 제어**: - 사용자 권한 관리 - 프로젝트 접근 제한 - 기능 사용 제한 ### 4.5 성능 규칙 - **리소스 사용**: - 메모리 사용 제한 - CPU 사용량 관리 - 디스크 공간 관리 - **캐시 관리**: - 캐시 크기 제한 - 캐시 정리 주기 - 캐시 우선순위 - **최적화 규칙**: - 코드 최적화 가이드라인 - 빌드 최적화 - 실행 성능 모니터링 ## 5. Cursor 고급 기능 ### 5.1 VSCode 연동 - **확장 프로그램 호환성**: VSCode의 확장 프로그램 사용 가능 - **설정 방법**: - Cursor Settings > General > Account에서 설정 - `Ctrl + Shift + J`로 설정 메뉴 접근 - **장점**: - 기존 VSCode 워크플로우 유지 - 익숙한 확장 프로그램 사용 - 설정 동기화 가능 ### 5.2 노트패드 기능 (베타) - **접근 방법**: `Ctrl + i` (맥: `Cmd + i`) - **기능**: - 노트 생성 및 관리 - AI 프롬프트와 연동 - 컨텍스트 추적 - 코드 스니펫 저장 - 프로젝트 문서화 ### 5.3 프로젝트 분석 - **빠른 분석 방법**: 1. `Ctrl + L`로 채팅 패널 열기 2. "Normal chat"에서 "Long Context Chat"으로 변경 3. "@codebase를 파악해서 내 코드의 관계와 역할을 머메이드로 시각화해줘" 입력 4. 생성된 코드를 노션이나 README.MD에 활용 - **추가 기능**: - 코드 의존성 분석 - 아키텍처 시각화 - 성능 병목 지점 식별 - 보안 취약점 검사 ### 5.4 프라이버시 설정 - **프라이버시 모드**: - Cursor Settings -> General -> Privacy mode - 코드 외부 유출 방지 - AI 답변 품질과의 트레이드오프 고려 - **보안 기능**: - 민감 코드 필터링 - API 키 보호 - 환경 변수 관리 - 접근 제어 설정 ### 5.5 성능 최적화 - **리소스 관리**: - 불필요한 확장 프로그램 비활성화 - 캐시 크기 조정 - 메모리 사용량 모니터링 - **작업 효율화**: - 자주 사용하는 명령어 단축키 설정 - 작업 공간 레이아웃 저장 - 자동 백업 설정 - **통합 도구**: - Git 통합 - 디버깅 도구 - 테스트 프레임워크 지원 ## 6. Model Context Protocol (MCP) ### 6.1 MCP란 무엇인가? - **정의**: Model Context Protocol(MCP)은 AI 모델(예: Cursor의 AI)이 외부 데이터 소스, 도구, 환경과 표준화된 방식으로 상호작용할 수 있도록 설계된 개방형 표준 프로토콜입니다. - **비유**: AI 애플리케이션을 위한 USB-C 포트와 같습니다. 다양한 기기를 연결하는 USB-C처럼, MCP는 AI 모델을 다양한 데이터 소스 및 도구에 연결하는 표준 방법을 제공합니다. - **해결하는 문제**: 이전에는 AI를 데이터베이스, 파일 시스템, API 등과 연결하려면 각기 다른 맞춤형 통합 코드와 프롬프트가 필요했습니다. MCP는 이러한 파편화를 해결하고 표준화된 인터페이스를 제공하여 개발 및 유지보수를 용이하게 합니다. ### 6.2 MCP의 중요성 - **표준화**: 개별 통합 대신 공통 인터페이스를 사용하여 개발 시간 단축 및 유지보수 부담 감소. - **생태계 성장**: 개방형 표준이므로 커뮤니티에서 다양한 MCP 서버(커넥터)를 개발 및 공유. - **AI 잠재력 발휘**: AI가 격리된 상태에서 벗어나 실제 데이터와 도구를 활용하여 더 관련성 높은 답변을 제공하고 작업을 수행할 수 있게 함. ### 6.3 MCP 아키텍처 - **MCP 서버**: 특정 데이터 소스나 서비스(파일 시스템, 데이터베이스, Slack 등)에 연결되어 MCP 표준에 따라 데이터나 기능을 노출하는 프로그램. 특정 종류의 데이터를 가져오거나 조작하는 어댑터 역할. - **MCP 클라이언트**: AI 애플리케이션 내에서 실행되며 MCP 서버와의 연결을 관리. 일반적으로 사용자가 직접 상호작용하지 않음. - **MCP 호스트 (AI 애플리케이션)**: 외부 데이터나 도구를 사용하려는 AI 기반 앱 (예: Cursor IDE, Claude Desktop). - **데이터 소스 및 서비스**: 정보나 기능이 실제로 존재하는 곳 (로컬 파일, 원격 API, 클라우드 서비스 등). ### 6.4 MCP 핵심 개념 - **리소스 (Resources)**: 서버가 AI에게 제공할 수 있는 데이터 또는 콘텐츠. (예: `file://README.md` 리소스를 요청하여 파일 내용 가져오기) - **도구 (Tools)**: AI가 서버를 통해 호출할 수 있는 작업. (예: 데이터베이스 쿼리 실행, 메시지 전송 등) - **프롬프트 (Prompts)**: 서버가 제공할 수 있는 재사용 가능한 프롬프트 템플릿 또는 워크플로우. - **샘플링 (Sampling)**: 서버가 AI에게 텍스트 완성 또는 변환을 요청할 수 있는 고급 기능. ### 6.5 통신 방식 - **보안**: 민감한 데이터 접근 및 강력한 작업 수행 가능성을 고려하여 보안 제어 강조. - **전송 방식**: - **STDIO**: 서버가 로컬 프로세스로 실행되고 표준 입출력을 통해 통신. 로컬 개발에 적합. - **SSE (HTTP)**: 서버가 웹 서비스로 실행되고 HTTP 엔드포인트를 통해 통신. 원격 서버 연결 등 유연성이 높음. ### 6.6 Cursor에서의 MCP 설정 - **설정 위치**: Cursor Settings > MCP - **서버 추가**: 1. `Settings > MCP > Add Server` 클릭 2. 서버 구성 정보 입력 ```json { "mcpServers": { "serverName": { "command": "실행_명령어", "args": ["인자1", "인자2", "..."] } } } ``` - **임시 실행**: 필요한 서버를 명령줄에서 일회성으로 실행 가능 - **주의**: 여러 MCP 서버 인스턴스가 충돌할 수 있으므로, 한 번에 하나의 인스턴스만 활성화하는 것이 중요합니다. ### 6.7 MCP 활용 예시 - **데이터베이스 접근**: - PostgreSQL, MySQL, MongoDB, SQLite 등 다양한 데이터베이스 연동 - 데이터 쿼리, 스키마 분석, 쿼리 최적화 지원 - **코드 저장소 연동**: - Git, GitHub, GitLab 서버 통합 - 코드 검색, PR 분석, 코드 통계 생성 - **웹 검색 및 브라우징**: - 구글, 빙, Brave Search 등 검색 엔진 통합 - 웹 페이지 내용 분석 및 요약 - **생산성 도구 연동**: - Slack, Discord, Notion, Jira, Linear 등 통합 - 데이터 검색, 업데이트, 생성 기능 - **로컬 시스템 도구**: - 파일 시스템 접근 - 터미널 명령 실행 - 그래픽 도구 연동 (3D, 이미지 편집 등) ### 6.8 MCP 통합 팁 - **기존 서버 활용**: GitHub의 MCP 커뮤니티 저장소 확인 - **맞춤 서버 구축**: Python, TypeScript, Rust 등의 SDK 활용 - **호스팅 옵션**: 로컬, 개인 서버, 클라우드 배포 지원 - **MCP 지원 클라이언트**: Cursor IDE, Claude Desktop, Anthropic 제품군 등 - **보안 고려사항**: - 최소 권한 원칙 적용 - 민감 정보 보호 계층 구현 - 액세스 제어 및 인증 메커니즘 활용 ### 6.9 최신 MCP 동향 - **오픈소스 커뮤니티**: 활발한 MCP 서버 및 도구 개발 - **기업 채택**: 더 많은 기업이 자체 도구에 MCP 지원 추가 - **표준화 노력**: 프로토콜 사양 개선 및 표준화 진행 - **확장 생태계**: 점점 더 다양한 AI 도구 및 모델과의 호환성 증가