Cook AI

Cursor 의 숨겨진 강력함, Cursor Rule 제대로 활용하기

앤써니킴 2025. 5. 10. 20:14
728x90

Cursor를 이용하여 코딩할 때마다 반복되는 설정이나 팀 내 스타일 가이드 적용 때문에 번거로우셨던 경험 없으신가요? 또는 "AI가 내 프로젝트의 특성을 좀 더 잘 이해하고 코드를 짜주면 좋을 텐데..." 하고 바라신 적은요? 만약 그렇다면, 오늘 제가 소개해 드릴 Cursor 의 Cursor Rule 기능이 바로 여러분의 고민을 해결해 줄 열쇠가 될 수 있습니다.

Cursor 는 이미 많은 개발자 사이에서 AI 기반의 스마트한 코딩 동반자로 알려져 있죠. 그런데 이 똑똑한 AI를 내 손안의 전문가처럼 더욱 세밀하게 조종할 수 있는 방법이 있다면 어떨까요? 바로 Cursor Rule이 그 역할을 합니다. 이 기능을 제대로 이해하고 활용한다면, 단순한 코드 생성을 넘어 프로젝트의 일관성을 유지하고, 개발 워크플로우를 혁신적으로 개선할 수 있습니다. 마치 숙련된 사수가 옆에서 코칭해주는 것처럼 말이죠!

 

자, 그럼 지금부터 Cursor Rule이 정확히 무엇인지, 그리고 어떻게 우리 개발자들의 작업을 한 단계 업그레이드해 줄 수 있는지 함께 자세히 알아보겠습니다.

Cursor Rule이란 무엇일까요? AI에게 '우리 팀의 방식'을 가르치는 비밀 과외!

Cursor Rule을 한마디로 정의하자면, "Cursor 의 AI 에이전트(Agent 및 Cmd-K AI)가 어떻게 행동해야 하는지 사용자가 직접 정의하는 재사용 가능한 지침 세트"라고 할 수 있습니다. 쉽게 말해, AI에게 우리 프로젝트의 고유한 규칙, 코딩 스타일, 자주 사용하는 패턴 등을 미리 알려줘서, AI가 생성하거나 수정하는 코드가 처음부터 우리 팀의 코드베이스에 딱 들어맞도록 만드는 것이죠.

 

대부분의 대규모 언어 모델(LLM)은 이전 대화나 작업 내용을 오래 기억하지 못하는 단점이 있습니다. 하지만 Cursor Rule을 사용하면 이 문제가 해결됩니다! 규칙이 적용되면, 해당 규칙의 내용이 AI 모델 컨텍스트의 가장 앞부분에 포함됩니다. 덕분에 AI는 코드를 생성하거나, 수정 사항을 이해하거나, 특정 워크플로우를 따를 때마다 마치 옆에 적어둔 치트키를 보는 것처럼 일관되고 명확한 가이드라인을 참고하게 됩니다.

 

예를 들어, "우리 팀은 API 요청 시 항상 axios 라이브러리를 사용하고, 에러 처리는 반드시 try-catch-finally 구조로 해야 해"와 같은 구체적인 지침을 AI에게 한 번만 알려주면, 이후로는 AI가 알아서 해당 규칙을 따르게 되는 겁니다. 정말 편리하겠죠? 이 규칙은 Cursor의 채팅 기능과 Cmd-K (코드 수정 및 생성) 기능 모두에 똑같이 적용된답니다.

내게 맞는 Cursor Rule은? 종류별 특징과 활용법

Cursor Rule은 크게 세 가지 유형으로 나눌 수 있습니다. 각 규칙의 특징을 이해하고 상황에 맞게 활용하는 것이 중요합니다.

  1. Project Rules (프로젝트 규칙): 우리 프로젝트만의 규칙을 만들고 공유해요!
    • 저장 위치: 프로젝트 폴더 내의 .cursor/rules 디렉터리에 저장됩니다.
    • 핵심 특징:
      • 프로젝트별로 특화된 규칙을 설정할 수 있습니다.
      • 버전 관리 시스템(예: Git)을 통해 팀원들과 쉽게 공유하고 함께 관리할 수 있다는 큰 장점이 있죠!
      • 마치 팀의 코딩 컨벤션을 파일 형태로 만들어 AI에게 학습시키는 것과 같아요.
    • 이럴 때 사용하세요:
      • 프로젝트 고유의 도메인 지식 (예: 특정 산업 용어, 내부 라이브러리 사용법)을 AI에게 알려주고 싶을 때
      • 반복적인 프로젝트 설정이나 코드 템플릿 생성을 자동화하고 싶을 때
      • 팀 내 코딩 스타일이나 아키텍처 패턴을 통일하고 싶을 때 (정말 유용하겠죠? )
  2. User Rules (사용자 규칙): 나만의 코딩 비서를 설정하세요!
    • 저장 위치: Cursor 프로그램 설정 메뉴에서 직접 정의합니다. (Cursor > Preferences > Cursor Settings > Rules)
    • 핵심 특징:
      • 어떤 프로젝트를 작업하든 항상 적용되는 전역 규칙입니다.
      • 나만의 작업 환경이나 선호하는 AI 응답 스타일을 일관되게 유지할 수 있습니다.
    • 이럴 때 사용하세요:
      • AI의 답변 스타일을 특정 언어(예: 한국어)나 어투(예: "좀 더 간결하고 명확하게 설명해 주세요.")로 고정하고 싶을 때
      • 개인적으로 선호하는 코드 주석 스타일이나 변수명 규칙 등을 적용하고 싶을 때
    • <팁>: User Rules는 Project Rules와 달리 MDC라는 특별한 형식이 아닌, 간단한 일반 텍스트로 작성합니다.
  3. .cursorrules (레거시 규칙): 과거의 유산, 하지만 알아두면 좋아요!
    • 저장 위치: 프로젝트의 루트(최상위) 폴더에 .cursorrules 파일로 저장됩니다.
    • 핵심 특징:
      • 이전 버전의 Cursor에서 사용되던 방식입니다. 여전히 지원은 되지만, 지금은 더욱 강력하고 유연한 Project Rules 사용이 권장됩니다.
      • 혹시 예전 프로젝트에서 이 파일을 발견한다면, "아, 이게 예전 방식의 Cursor Rule이구나!" 하고 이해하시면 됩니다. 새로운 프로젝트에서는 가급적 .cursor/rules를 사용하는 것이 좋습니다.

 

Project Rule, 제대로 만들고 관리하는 방법 (MDC 파헤치기)

자, 이제 실무에서 가장 많이 활용될 Project Rule에 대해 좀 더 깊이 들어가 볼까요? Project Rule은 MDC (.mdc) 라는 특별한 파일 형식을 사용합니다. 이게 정확히 뭘까 궁금하셨죠? Cursor 공식 문서에 따르면, MDC는 'metadata and content' (메타데이터와 콘텐츠)의 약자로, 이 두 가지 요소를 하나의 파일에 함께 담는 경량화된 형식을 의미합니다.

 

쉽게 말해서, 우리가 익숙한 마크다운(Markdown)처럼 주요 내용(content)을 작성하면서, 동시에 그 파일 자체의 성격이나 AI에게 전달할 지침 같은 부가 정보(metadata)까지 한 파일 안에서 깔끔하게 관리할 수 있는 매우 실용적인 방식이라고 생각하시면 됩니다. 그래서 많은 개발자분들이 '마크다운에 메타데이터가 더해진 형태'로 이해하고 활용하고 계시죠. 이 메타데이터 영역 덕분에 각 규칙이 언제, 어떻게 동작해야 하는지를 AI에게 명확하게 알려줄 수 있는 거랍니다.

 

규칙 파일은 어떻게 생겼을까요? (.cursor/rules/my-rpc-pattern.mdc 예시)

---
# 이 부분은 메타데이터입니다. AI에게 규칙의 성격을 알려주죠.
description: "우리 회사의 표준 RPC 서비스 호출 패턴입니다. 새로운 서비스 만들 때 꼭 이 설명을 참고해서 작성해주세요!"
# 이 규칙이 어떤 파일에 적용될지 파일 경로 패턴을 지정할 수 있어요. (선택 사항)
globs: ["**/services/**/*.ts", "**/remote/**/*.js"]
# 항상 AI 컨텍스트에 포함시킬지 여부 (기본값: false)
alwaysApply: false
# 규칙의 타입을 명시적으로 지정합니다. (아래 표 참고)
ruleType: Agent Requested
---

# RPC 서비스는 이렇게 작성하세요! (여기는 마크다운 내용입니다)

새로운 RPC(Remote Procedure Call) 서비스를 정의할 때는 **반드시** 우리 회사의 표준 패턴을 따라야 합니다. 
특히, 서비스 함수의 이름은 `소문자_스네이크_케이스`를 사용해주세요. (예: `get_user_info`)

아래는 기본적인 서비스 요청 템플릿입니다. 이걸 참고해서 작성하면 실수를 줄일 수 있을 거예요!
@service-request-template.ts


위 예시에서 보시는 것처럼, 파일 상단 ---로 둘러싸인 부분이 메타데이터 영역입니다. 여기서 규칙에 대한 설명(description), 적용될 파일 패턴(globs), 적용 방식(ruleType) 등을 설정할 수 있습니다. 그 아래로는 일반 마크다운처럼 규칙의 상세 내용을 자유롭게 작성하면 됩니다.

<한 걸음 더!> 파일 참조 기능 활용하기
예시 코드의 마지막 줄에 있는 @service-request-template.ts 보이시나요? 이렇게 @ 기호를 사용하면 다른 파일의 내용을 현재 규칙의 컨텍스트로 바로 가져올 수 있습니다. 즉, 실제 코드 템플릿 파일을 참조로 연결해두면, AI가 규칙을 이해하고 적용하는 데 훨씬 큰 도움이 되겠죠? 정말 실용적인 기능이라고 생각합니다.

Project Rule의 핵심, 4가지 타입 (Rule Type) 완전 정복!

Project Rule은 AI에게 언제, 어떻게 적용될지를 결정하는 ruleType이라는 중요한 속성을 가집니다. 마치 AI에게 주는 지시의 '강도'나 '조건'을 설정하는 것과 같아요.

Rule Type 설명 실무 활용 팁
Always 항상 AI 모델 컨텍스트에 포함됩니다. AI가 어떤 작업을 하든 이 규칙을 최우선으로 참고해요. 프로젝트의 절대적인 원칙 (예: "모든 API 응답은 JSON 형식이어야 한다")을 정의할 때 유용합니다. 하지만 너무 많으면 AI 컨텍스트가 무거워질 수 있으니 주의!
Auto Attached 메타데이터의 globs (파일 경로 패턴)에 지정된 파일들이 AI의 작업 대상(참조 파일)에 포함될 때 자동으로 이 규칙이 함께 적용됩니다. 특정 파일 타입이나 경로에만 적용되는 규칙 (예: "*.test.ts 파일에서는 특정 테스트 라이브러리만 사용")을 정의할 때 아주 편리합니다.
Agent Requested AI가 사용자의 요청을 분석하고, 필요하다고 판단될 때 스스로 이 규칙을 가져와서 참고합니다. 이를 위해 메타데이터에 description (규칙 설명)을 명확하게 작성하는 것이 매우 중요해요! 복잡하지만 특정 상황에 유용한 규칙들 (예: "데이터베이스 마이그레이션 시 주의사항")을 AI가 '알아서' 참고하도록 할 때 좋습니다. 설명이 핵심!
Manual 사용자가 채팅이나 Cmd-K 프롬프트에서 @규칙파일명 (예: @my-rpc-pattern)처럼 명시적으로 호출할 때만 적용됩니다. 자주 사용하지는 않지만, 특정 작업 시에만 불러와서 쓰고 싶은 특별한 규칙이나 템플릿에 적합합니다. 일종의 '주문형 규칙'인 셈이죠.


어떤 타입을 선택해야 할지 고민되신다면, "이 규칙이 얼마나 보편적으로, 그리고 자동으로 적용되어야 하는가?"를 기준으로 판단해 보세요.

Cursor Rule, 이렇게 만들고 관리하면 편리해요!

규칙을 만들고 관리하는 방법도 아주 간단합니다. Cursor가 여러 편리한 방법을 제공하고 있거든요.

  • 명령 팔레트 활용:
    1. Cmd + Shift + P (Windows/Linux에서는 Ctrl + Shift + P)를 누릅니다.
    2. "New Cursor Rule"이라고 입력하고 선택합니다.
    3. 그러면 현재 프로젝트의 .cursor/rules 폴더 안에 새로운 .mdc 규칙 파일이 짠! 하고 생성됩니다. 이제 내용을 채우기만 하면 돼요.
  • Cursor 설정 메뉴 이용:
    1. Cursor 에디터의 설정 메뉴로 이동합니다. (보통 Cursor > Preferences > Cursor Settings)
    2. 'Rules' 섹션을 찾으세요. 여기서 새로운 규칙을 만들거나, 이미 만들어진 프로젝트 규칙 및 사용자 규칙들의 목록과 상태를 한눈에 확인할 수 있습니다.
  • AI와의 대화로 규칙 만들기 (이거 정말 신기해요!):
    1. AI와 채팅하면서 특정 작업 방식이나 코드 스타일에 대해 논의했다고 가정해 봅시다.
    2. 대화가 어느 정도 마무리되었다면, 채팅창에 /Generate Cursor Rules 라고 입력해보세요!
    3. 그러면 AI가 지금까지의 대화 내용을 바탕으로 적절한 Cursor Rule 초안을 뚝딱 만들어줍니다. 이걸 조금만 다듬으면 바로 실전에 투입할 수 있는 규칙이 완성되죠. 반복적인 지시사항을 규칙으로 만들 때 정말 시간 절약이 된답니다.

복잡한 프로젝트도 OK! 중첩 규칙(Nested Rules)으로 깔끔하게 정리하기

하나의 프로젝트 안에도 프론트엔드, 백엔드, 데이터베이스 관련 코드 등 다양한 영역이 존재할 수 있죠. 이런 경우 모든 규칙을 한 곳에 두면 관리하기가 어려워집니다. 그래서 Cursor는 중첩 규칙(Nested Rules)이라는 아주 유용한 기능을 제공합니다.

마치 폴더를 만들어 파일을 정리하듯, 프로젝트 구조에 맞춰 하위 폴더 안에도 .cursor/rules 디렉터리를 만들고 그 안에 해당 영역에만 특화된 규칙들을 넣어둘 수 있습니다.

예시 폴더 구조:

my-awesome-project/
  .cursor/rules/        # ⬅️ 프로젝트 전체에 적용되는 공통 규칙들
  frontend/
    .cursor/rules/      # ⬅️ 프론트엔드 코드에만 적용될 규칙들 (예: React 컴포넌트 작성 규칙)
  backend/
    .cursor/rules/      # ⬅️ 백엔드 코드에만 적용될 규칙들 (예: API 엔드포인트 설계 규칙)


이렇게 중첩된 규칙들은 다음과 같은 장점이 있습니다:

  • 자동 활성화: 해당 하위 폴더 내의 파일들을 AI가 작업 대상으로 삼을 때, 그 폴더의 규칙들이 자동으로 컨텍스트에 포함됩니다.
  • 접근성 유지: 규칙 선택기(context picker)나 AI가 참고할 수 있는 규칙 목록에도 여전히 잘 나타납니다.
  • 가독성 및 유지보수 향상: 특정 도메인이나 모듈에 관련된 규칙들을 해당 코드와 가까운 곳에 둘 수 있어, 규칙을 찾고 이해하기가 훨씬 쉬워집니다. 특히 여러 개의 독립적인 하위 프로젝트로 구성된 모노레포(monorepo) 환경에서 빛을 발하는 기능이죠!

AI 조련의 기술! 효과적인 Cursor Rule 작성 모범 사례

자, 이제 Cursor Rule을 더욱 강력하게 만들어 줄 몇 가지 작성 팁을 현업 개발자의 관점에서 공유해 드릴게요.

  1. 목표는 명확하게, 내용은 실행 가능하게: 규칙은 AI가 "아, 이걸 하라는 거구나!" 하고 바로 이해하고 적용할 수 있도록 구체적이어야 합니다. "코드를 잘 짜줘"보다는 "함수명은 카멜 케이스로 작성하고, 각 함수 상단에는 JSDoc 주석을 반드시 포함해줘"처럼 명확한 지시가 좋습니다.
  2. 간결함은 미덕: 규칙 파일 하나가 너무 길어지면 AI가 핵심을 파악하기 어려울 수 있습니다. 가급적 하나의 규칙 파일은 500줄을 넘지 않도록 유지하는 것을 목표로 해보세요. (물론 이건 가이드라인일 뿐, 상황에 따라 다를 수 있습니다!)
  3. 큰 개념은 잘게 쪼개기: 하나의 거대한 규칙보다는, 여러 개의 작고 독립적인 규칙으로 나누는 것이 좋습니다. 이렇게 하면 각 규칙을 재사용하기도 쉽고, 관리하기도 편리해집니다. 예를 들어 'API 개발 규칙'이라는 큰 덩어리보다는 'API 요청 형식 규칙', 'API 응답 형식 규칙', 'API 에러 처리 규칙' 등으로 나누는 거죠.
  4. 백문이 불여일견, 예시 코드를 적극 활용: 추상적인 설명보다는 실제 코드 예시나 @를 이용한 파일 참조를 포함하면 AI가 규칙을 훨씬 빠르고 정확하게 이해합니다. "이런 느낌으로 짜주면 돼!" 하고 직접 보여주는 효과죠.
  5. 애매모호한 표현은 NO!: "적절히", "잘", "충분히" 같은 모호한 표현보다는 명확하고 측정 가능한 기준을 제시해주세요. 마치 팀 동료에게 업무 지침을 전달하듯 명확하게 작성하는 것이 핵심입니다.
  6. 반복되는 지시는 규칙으로 자동화: AI와 채팅하면서 같은 말을 계속 반복하고 있다면, 그게 바로 규칙으로 만들 최적의 후보입니다! 한번 규칙으로 만들어두면 다음부터는 AI가 알아서 척척해낼 테니까요.

Cursor Rule, 실제로 이렇게 사용해보세요! (활용 사례)

이론은 충분히 알았으니, 이제 Cursor Rule이 실제 개발 현장에서 어떻게 활용될 수 있는지 몇 가지 사례를 살펴볼까요?

  • 우리 회사만의 기술 스택 완벽 적응:
    • "우리 팀 프론트엔드 프로젝트에서는 상태 관리 라이브러리로 Zustand를 사용하고, 모든 API 호출은 MSW로 모킹(mocking)해야 해."
    • "백엔드 API를 개발할 때는 반드시 OpenAPI 명세서를 먼저 작성하고, 컨트롤러-서비스-리포지토리 아키텍처 패턴을 따라야 한다."
  • 반복 작업은 이제 그만! 코드 템플릿 자동 생성:
    • 새로운 React 컴포넌트를 만들 때 기본 폴더 구조(예: ComponentName/index.tsx, ComponentName/ComponentName.module.css)와 기본 코드 스니펫을 규칙으로 정의해두면, AI가 명령어 한 번에 뚝딱 만들어줍니다.
    • Express.js로 새로운 API 엔드포인트를 추가할 때 필요한 기본 라우터 설정, 컨트롤러 함수 틀 등을 템플릿화할 수 있습니다.
  • 개발 워크플로우 자동화 및 문서화 지원:
    • "새로운 기능을 개발 완료하면, 관련 유닛 테스트 코드를 Jest 형식으로 작성하고, 변경 사항에 대한 JSDoc 주석을 반드시 추가해야 한다."
    • "데이터베이스 스키마 변경 시, 마이그레이션 스크립트 작성 규칙과 함께 관련 문서 업데이트 항목을 AI에게 지시할 수 있습니다."

어떤가요? 이렇게 구체적인 작업 절차를 규칙으로 만들어두면, 팀에 새로운 개발자가 합류하더라도 실수를 줄이고 빠르게 작업에 적응할 수 있겠죠? Cursor Rule의 강력함이 느껴지시나요?

팀 전체의 생산성을 UP! 팀 규칙 공유하기

현재 Cursor 에디터에는 여러 프로젝트 간에 팀 규칙을 공식적으로 공유하는 내장 기능은 아직 없습니다. 하지만  몇 가지 현실적인 방법들이 있습니다.

  • 공유 Git 저장소 활용: 팀 규칙들만 모아둔 별도의 Git 저장소를 만들고, 각 팀원이 이 저장소를 클론(clone)하거나 서브모듈(submodule)로 연결하여 사용하는 방법입니다.
  • 복사 또는 심볼릭 링크: 공유 규칙들을 각 프로젝트의 .cursor/rules 폴더로 직접 복사하거나, 심볼릭 링크(Symbolic Link)를 생성하여 연결하는 방법도 있습니다.

Cursor 개발팀에서도 향후 여러 팀 프로젝트에서 공통으로 참조할 수 있는, 공유 가능한 MDC 형식의 규칙을 지원할 계획이라고 하니, 앞으로 더욱 편리해질 것으로 기대됩니다!

더 깊이 있는 학습을 위한 자료들

오늘 제가 설명해 드린 내용 외에도 Cursor Rule에 대해 더 자세히 알고 싶으시다면, 아래 자료들을 참고해 보세요. 특히 공식 문서는 항상 최신 정보를 담고 있으니 즐겨찾기 해두시는 것을 추천합니다!

참고할 만한 유튜브 영상:

현업 개발자들이 직접 Cursor Rule을 활용하는 방법이나 팁을 공유하는 영상들도 있으니, 한번 시청해 보시면 실질적인 도움을 받으실 수 있을 거예요. 

마무리하며: Cursor Rule, AI 시대를 항해하는 개발자의 필수 나침반

지금까지 Cursor AI의 강력한 기능인 Cursor Rule에 대해 정말 자세하게 알아보았습니다. Cursor Rule은 단순한 설정 기능을 넘어, AI와 개발자 간의 소통을 더욱 원활하게 하고, AI가 프로젝트의 특성과 팀의 작업 방식을 깊이 이해하도록 돕는 핵심적인 역할을 합니다.

처음에는 규칙을 만들고 관리하는 것이 조금 번거롭게 느껴질 수도 있습니다. 하지만 한번 제대로 된 규칙들을 설정해두면, 장기적으로는 코드의 일관성을 높이고, 반복적인 작업을 줄이며, 팀 전체의 개발 생산성을 크게 향상할 수 있다는 점을 꼭 기억해주세요.

 

이제 여러분도 Cursor Rule을 직접 사용해보면서, AI를 단순한 코드 생성기가 아닌, 진정한 개발 협업 파트너로 만들어보는 것은 어떨까요? 혹시 Cursor Rule을 사용하면서 얻게 된 자신만의 꿀팁이나 재미있는 경험이 있다면 댓글로 공유해주세요! 여러분의 이야기가 다른 개발자분들에게도 큰 도움이 될 수 있을 겁니다.

728x90