
.aiassistant/rules/에 프로젝트 규칙을 두면 AI Chat이 규칙에 맞는 답변을 하게 됩니다
요약
JetBrains AI Assistant의 Project Rules 기능을 통해 .aiassistant/rules/ 디렉토리에 Markdown 파일을 설정하여 AI Chat의 답변을 프로젝트 규약에 맞게 제어하는 방법을 소개합니다. 의존성 주입 방식이나 Javadoc 작성 스타일 등 팀의 코딩 컨벤션을 AI가 자동으로 준수하도록 설정할 수 있습니다.
핵심 포인트
- .aiassistant/rules/ 내 Markdown 파일로 프로젝트 규칙 정의 가능
- Always, Manual, Model Decision 등 5가지 적용 방식 지원
- 팀의 코딩 컨벤션(DI 방식, 주석 스타일 등)을 AI 답변에 강제 적용
- IntelliJ IDEA 2026.1 버전에서 실제 동작 검증
JetBrains AI Assistant의 Project Rules란, .aiassistant/rules/에 Markdown을 두면 그 내용이 AI Chat 세션에 자동으로 첨부되어 작성한 내용에 따른 답변을 얻을 수 있는 기능입니다.
본 기사는 IntelliJ IDEA 2026.1에서 실제로 이 기능을 사용해 보았습니다.
예를 들어 .aiassistant/rules/team-style.md에 팀 규약을 작성해 둡니다:
# Project rules
- DI는 반드시 생성자 주입(Constructor Injection). 필드 `@Autowired` 금지.
- 공개 메서드에는 일본어 Javadoc. "무엇을 하는가"가 아니라 "왜 그렇게 하는가"를 작성할 것.
이 상태에서 OrderService.java를 첨부하여 AI Chat에 "NotificationService를 inject 해서 클래스 전체를 다시 작성해줘"라고 요청하면:
| 구분 | 규칙 없음 | team-style.md Always 적용 후 |
|---|---|---|
| DI | 필드에 @Autowired를 붙임 | 생성자 주입 (단일 생성자이므로 @Autowired도 생략) |
| Javadoc | 기존 코멘트 그대로 / 짧은 영어 설명 | 각 메서드에 "왜 그렇게 하는가"를 작성한 일본어 Javadoc을 자동 추가 |
이번 검증에는 데모 프로젝트(spring-demo-project/)를 사용했습니다.
spring-demo-project/
├── pom.xml # Spring Boot 3.2 / Java 17
├── .aiassistant/
...
OrderService.java는 의도적으로 필드 @Autowired로 작성된 상태로 둡니다. 이 상태에서 AI Chat에게 "NotificationService를 inject 해서 다시 작성해줘"라고 요청했을 때, 규칙이 없을 때와 있을 때 응답이 어떻게 변하는지 관찰합니다. Settings | Tools | AI Assistant | Rules를 열고, **신규 프로젝트 규칙 파일(New Project Rule File)**을 클릭합니다.
파일명을 지정하면 프로젝트 루트 직하에 .aiassistant/rules/파일명.md가 자동으로 생성됩니다.
# Project rules
이 프로젝트 전체에 적용되는 코어 규약. AI Chat은 샘플 코드를 반환할 때 반드시 이 규약을 따를 것.
## DI (의존성 주입)
...
이 파일이 어떤 상황에 적용될지(Rule Type)를 에디터 상단의 드롭다운에서 선택합니다. 선택지는 5종류입니다:
| Rule Type | 적용 시점 |
|---|---|
| Always (항시) | 모든 채팅 세션에서 자동 적용 |
| Manual (수동) | 채팅 내에서 @rule: / #rule: 또는 첨부 추가로 명시적 호출 |
| Model Decision (모델 판단) | 모델이 관련성이 있다고 판단했을 때 |
| File Pattern (파일 패턴) | 채팅 참조 파일이 glob 패턴과 일치할 때 |
| Off (꺼짐) | 무효 |
team-style.md를 Always로 설정한 상태에서, OrderService.java를 AI Chat에 첨부하여 다음과 같이 질문합니다:
"OrderService에 NotificationService를 inject 해서 주문 확정 시에 알림을 보내고 싶어. 클래스 전체를 다시 작성해줘."
규칙 없는 답변:
@Service
public class OrderService {
@Autowired
...

입력에 적혀 있던 @Autowired를 필드에 붙이는 방식을 그대로 답습하여, NotificationService도 동일한 방식으로 추가되었습니다. Javadoc은 원래 클래스의 Javadoc 한 줄만 남을 뿐, 추가된 알림 로직에 대한 설명은 없습니다.
규칙 있는 답변:
/**
* 주문 라이프사이클을 총괄하는 코어 서비스.
*
...
- 필드:
@Autowired가 생성자 주입으로 변경됨 (단일 생성자이므로@Autowired생략 가능)
自体も省略) - 클래스 Javadoc 및 각 public 메서드에 「왜 그렇게 하는지」를 작성한 일본어 Javadoc이 자동으로 추가되었습니다.
답변 서두에 있는 attachments 리스트를 펼치면, team-style.md가 attached 되어 있는지 확인할 수 있습니다.

항상 Java와 Kotlin의 규칙을 모두 넣으면 프롬프트 (Prompt)가 비대해질 수 있습니다. 파일 확장자에 따라 자동으로 첨부되도록 설정할 수 있습니다.
| 파일 | Rule Type | Patterns |
|---|---|---|
team-style.md | Always | — |
java-style.md | By file patterns | **/*.java |
kotlin-style.md | By file patterns | **/*.kt |
파일 패턴으로 판단하는 방식은 glob 형식을 사용하므로, 코드 단편을 채팅에 붙여넣어 질문하는 상황에서는 적용되지 않습니다.
그럴 때는 「모델이 판단 (By model decision)」으로 전환하여, Instruction에 다음과 같이 작성합니다:
사용자가 Java 코드에 대해 논의하거나 편집하고 있는 경우에만 적용
모델이 문맥을 읽고 첨부 여부를 판단해 줍니다.
- AI Chat의 답변이 **DI 규약에 따른 생성자 주입 (Constructor Injection)**으로 돌아오게 됨
- 공개 메서드(Public Method)에 대한 Javadoc이 「왜 그렇게 하는지」 위주로 바뀌어, 리뷰 시 다시 작성하는 수고가 줄어듦
- 팀에서
.aiassistant/rules/를 공유함으로써, 사람에 따른 AI 응답의 편차가 줄어듦
JetBrains AI Assistant의 Project Rules는, 매번 프롬프트에 붙여넣던 규약을 .aiassistant/rules/*.md에 작성하면 AI Chat의 답변 코드가 규약에 따라 돌아오게 되는 기능이었습니다.
AI Chat에 컨텍스트 (Context)를 상시 부여하는 메커니즘이므로, 질문하기, 배우기, 샘플 코드 작성시키기 등 모든 상황에서 혜택을 볼 수 있습니다.
Always로 시작하여, By file patterns로 언어별 설정, By model decision으로 조건 분기까지 단계적으로 발전시켜 나갈 수 있습니다.
저희 회사는 JetBrains 제품에 관한 질문 및 상담 등을 받고 있습니다. 저희의 X(구 Twitter) 또는 이메일로 연락해 주시기 바랍니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기