본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 06. 09. 13:59

.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에 첨부하여 다음과 같이 질문합니다:

"OrderServiceNotificationService를 inject 해서 주문 확정 시에 알림을 보내고 싶어. 클래스 전체를 다시 작성해줘."

규칙 없는 답변:

@Service
public class OrderService {
@Autowired
...

image.png

입력에 적혀 있던 @Autowired를 필드에 붙이는 방식을 그대로 답습하여, NotificationService도 동일한 방식으로 추가되었습니다. Javadoc은 원래 클래스의 Javadoc 한 줄만 남을 뿐, 추가된 알림 로직에 대한 설명은 없습니다.

규칙 있는 답변:

/**
* 주문 라이프사이클을 총괄하는 코어 서비스.
*
...
  • 필드: @Autowired가 생성자 주입으로 변경됨 (단일 생성자이므로 @Autowired 생략 가능)

自体も省略) - 클래스 Javadoc 및 각 public 메서드에 「왜 그렇게 하는지」를 작성한 일본어 Javadoc이 자동으로 추가되었습니다.

답변 서두에 있는 attachments 리스트를 펼치면, team-style.md가 attached 되어 있는지 확인할 수 있습니다.

image.png

항상 Java와 Kotlin의 규칙을 모두 넣으면 프롬프트 (Prompt)가 비대해질 수 있습니다. 파일 확장자에 따라 자동으로 첨부되도록 설정할 수 있습니다.

파일Rule TypePatterns
team-style.mdAlways
java-style.mdBy file patterns**/*.java
kotlin-style.mdBy 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가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0