커서 AI, .cursorrules, 규칙 파일 | 프로젝트에 AI 도구를 붙일 때 어디서 설정하나?
커서(Cursor)는 규칙 파일 없이 쓰면 매 대화마다 프로젝트 스택을 설명해야 한다. .cursorrules 구형 포맷과 .cursor/rules/ 신형 MDC 방식의 차이, 글로벌과 프로젝트 규칙 구분, 클로드 코드 CLAUDE.md와 어떻게 다른지를 1인 개발자 12사이트 운영 경험 기준으로 정리한다.
커서(Cursor)는 설치 직후에도 쓸 수 있지만 규칙 파일 없이 쓰면 매 대화마다 "이 프로젝트는 Next.js 15, TypeScript, 슈퍼베이스 씁니다"부터 다시 설명해야 합니다. 저는 12개 사이트를 운영하면서 커서와 클로드 코드를 함께 쓰는데, 어떤 규칙을 어디에 두느냐에 따라 AI 응답 품질이 확실히 달라집니다.
커서의 규칙 파일은 구형 .cursorrules와 신형 .cursor/rules/ 두 가지가 있습니다. 클로드 코드의 CLAUDE.md와 비슷하지만 작동 방식이 다릅니다. 이 글은 각 방식의 차이와 어떤 내용을 규칙 파일에 넣는 게 효과적인지 정리합니다.
글로벌 규칙과 프로젝트 규칙을 왜 나눠두나
커서에는 두 가지 레벨의 규칙이 있습니다. 글로벌 규칙은 모든 프로젝트에 적용되고, 프로젝트 규칙은 현재 열린 폴더에만 적용됩니다.
글로벌 규칙은 Settings(맥은 Cmd+,) → General → Rules for AI 텍스트박스에서 입력합니다. 응답을 항상 한국어로 달라거나 TypeScript 엄격 모드를 쓰라거나 하는 전체 공통 지침이 여기에 들어갑니다.
프로젝트 규칙은 해당 프로젝트 폴더를 커서로 열었을 때만 적용됩니다. 슈퍼베이스 스키마 이름, 특정 라이브러리 버전, 팀의 코드 컨벤션처럼 프로젝트마다 다른 내용이 맞습니다. 글로벌에 너무 많이 넣으면 모든 프로젝트 대화에 긴 문맥이 들어가서 컨텍스트 윈도우를 낭비합니다. 공통 코딩 스타일만 글로벌에 두고 나머지는 프로젝트 규칙으로 분리하는 게 낫습니다.
커서 Settings에서 글로벌 규칙을 텍스트 박스에 입력한다
.cursorrules 파일은 지금도 쓸 수 있나
.cursorrules는 프로젝트 루트에 두는 단일 텍스트 파일입니다. 커서 초기부터 있던 방식으로 지금도 작동합니다. 다만 커서 공식 팀은 .cursor/rules/ 폴더 방식으로 이동하도록 권장하고 있습니다.
작은 프로젝트에서 빠르게 시작하거나, 팀원에게 "이 파일 루트에 놓으면 커서가 우리 컨벤션을 따른다"고 전달할 때는 여전히 유용합니다. 내용은 일반 마크다운 형식으로 씁니다.
.cursorrules 예시 (프로젝트 루트)
# 프로젝트 규칙
## 기술 스택
- Next.js 15 App Router
- TypeScript 5 (strict 모드)
- Tailwind CSS v4
- Supabase (direct 연결, connection pooler X)
## 코딩 컨벤션
- 서버 컴포넌트 기본, 클라이언트 컴포넌트는 꼭 필요할 때만
- 파일 이름: kebab-case (예: user-profile.tsx)
- CSS: Tailwind 클래스만. 인라인 스타일 금지
- console.log 프로덕션 코드에 남기지 말 것
## 응답 규칙
- 한국어로 답변
- 코드 수정 시 변경한 줄만 보여줄 것 (전체 파일 재출력 금지)
.cursor/rules/ 폴더 방식이 무엇이 다른가
.cursor/rules/ 안에 .mdc 확장자 파일을 여러 개 만드는 방식입니다. 파일마다 적용 범위를 지정할 수 있어서 규칙을 기능별로 나눌 수 있습니다.
각 파일 상단의 frontmatter가 핵심입니다. alwaysApply: true면 해당 프로젝트의 모든 대화에 항상 포함됩니다. globs를 지정하면 일치하는 파일을 열었을 때만 자동으로 포함됩니다. frontmatter가 없거나 alwaysApply: false이면 대화에서 직접 파일을 언급해야 적용됩니다.
적용 방식
frontmatter 설정
동작
항상 포함
alwaysApply: true
모든 대화에 자동 포함
파일 패턴 자동 포함
globs: ["**/*.tsx"]
해당 파일 열면 자동 포함
수동 참조
frontmatter 없음
파일명 언급으로만 활성화
.cursor/rules/nextjs.mdc 예시
---
description: Next.js 15 App Router 개발 규칙
globs: ["app/**/*.tsx", "app/**/*.ts", "components/**/*.tsx"]
alwaysApply: false
---
# Next.js 15 규칙
## 서버/클라이언트 컴포넌트 구분
- page.tsx, layout.tsx는 기본 서버 컴포넌트
- useState, useEffect, onClick 있으면 파일 맨 위에 'use client' 추가
- 데이터 패칭은 서버 컴포넌트에서 async/await로 직접
## Server Actions
- 'use server' 지시어를 파일 상단 또는 함수 안에
- 반환값은 { success, error } 형태로 통일
## 라우팅
- 동적 경로: generateStaticParams로 빌드 타임에 미리 생성
- not-found.tsx, error.tsx, loading.tsx 각 폴더에 배치
.cursor/rules/ 안에 기능별로 .mdc 파일을 분리해 관리한다
클로드 코드 CLAUDE.md와 무엇이 다른가
클로드 코드의 CLAUDE.md와 커서의 규칙 파일은 비슷한 목적이지만 철학이 다릅니다. 클로드 코드는 세션 시작 시 CLAUDE.md를 전부 읽고 장기 자율 작업(빌드·배포·다수 파일 수정)을 수행합니다. 커서는 채팅 단위로 규칙을 컨텍스트에 포함시켜 짧은 코딩 도움을 줍니다.
항목
커서 규칙 파일
클로드 코드 CLAUDE.md
파일 위치
.cursor/rules/*.mdc
CLAUDE.md (루트, 또는 폴더별)
적용 범위
파일 글로브 패턴 지정 가능
폴더 기준 계층적 로드
글로벌 설정
Settings UI 텍스트박스
~/.claude/CLAUDE.md
주 용도
에디터 내 짧은 코딩 도움
자율 작업, 배포, 멀티파일 수정
파일 형식
MDC (Markdown + frontmatter)
일반 Markdown
컨텍스트 시점
채팅 메시지마다 주입
세션 시작 시 로드
두 도구를 함께 쓰는 경우, CLAUDE.md의 코딩 컨벤션 부분을 .cursorrules에 복사해두면 양쪽에서 일관된 스타일로 코드가 나옵니다.
규칙 파일을 쓸 때 막히는 케이스들
⚠️ 규칙 파일이 너무 길면 잘린다 | 커서는 각 채팅에 규칙을 컨텍스트로 넣는데, 규칙이 길면 코드 작업에 쓸 공간이 줄어듭니다. 6000자가 넘는 규칙은 뒷부분이 잘려 무시되는 경우가 생깁니다. 한 규칙 파일은 500줄 이하로 유지하고 기능별로 여러 .mdc 파일로 분리하세요.
⚠️ Auto Apply 규칙이 안 붙는다면 글로브 패턴 확인 | globs를 설정했는데 규칙이 적용 안 되면 글로브 패턴이 실제 파일 경로와 맞는지 확인합니다. "app/**/*.tsx"는 app 폴더 안의 .tsx에만 붙습니다. Composer 창에서 현재 포함된 규칙 목록을 확인할 수 있습니다.
💡 규칙 파일에 넣으면 효과가 큰 내용 | 프레임워크 버전(Next.js 15 App Router), 패키지 이름과 import 경로, DB 연결 방식, 응답 언어 고정, 파일 이름 규칙, 금지 패턴(예: useEffect 대신 서버 컴포넌트). 반대로 "좋은 코드 짜라"류 추상적 지침은 효과가 적습니다.
Composer 창 하단에서 현재 대화에 포함된 규칙 파일 목록을 확인할 수 있다
자주 묻는 것들
.cursorrules와 .cursor/rules/ 중 새로 시작할 때 어느 걸 쓰면 좋나?
새로 시작한다면 .cursor/rules/ 방식을 쓰세요. 파일별 적용 범위 지정이 가능하고, 커서 공식 권장 방향입니다. 기존 프로젝트에 .cursorrules가 있다면 당장 바꾸지 않아도 됩니다. 규칙이 많아져서 분리가 필요할 때 옮기는 게 현실적입니다.
글로벌 규칙과 프로젝트 규칙이 충돌하면 어느 게 우선하나?
프로젝트 규칙이 우선합니다. 글로벌에 "TypeScript만 쓸 것"이라고 해도 프로젝트 규칙에 "이 파일은 JavaScript로"라고 하면 프로젝트 설정을 따릅니다. 충돌을 피하려면 글로벌에는 진짜 범용적인 내용만 넣으세요.
커서에서 Docs를 색인하면 규칙 파일과 어떻게 다른가?
Docs 색인(Settings → Features → Docs)은 라이브러리나 프레임워크 공식 문서를 벡터 검색 가능한 형태로 저장하는 기능입니다. 규칙 파일이 "이렇게 해라"라는 지시라면, Docs는 "이 라이브러리가 어떻게 작동하는지"의 참고 자료입니다. 둘은 함께 쓸 수 있습니다.
클로드 코드와 커서를 같은 프로젝트에서 함께 쓸 수 있나?
쓸 수 있습니다. CLAUDE.md와 .cursor/rules/는 독립적입니다. 저는 빠른 코드 편집은 커서, 자율적인 멀티파일 작업이나 배포 자동화는 클로드 코드로 나눠 씁니다. 두 파일의 코딩 컨벤션 부분을 일치시켜두면 둘 다 같은 스타일로 코드를 냅니다.
규칙 파일을 .gitignore에 넣어야 하나?
팀 프로젝트라면 규칙 파일을 커밋해서 공유하는 게 낫습니다. .cursor/rules/ 안의 파일을 모두 저장소에 포함시키면 팀원 모두가 같은 규칙으로 커서를 씁니다. 개인 글로벌 설정(Settings)은 각자 PC에만 저장되어 공유되지 않습니다.
커서 AI.cursorrulescursor rulesAI 코딩 도구클로드 코드CLAUDE.mdNext.jsTypeScript개발자설정MDC