Claude-skill-registry jetbrains-workflow
JetBrains MCP 도구를 활용한 빠른 개발 워크플로우. IDE 검사, Run Configuration 실행, 리팩토링, 파일 검색 등을 통해 Gradle 의존도를 줄이고 개발 속도를 10배 향상시킵니다. Kotlin/Spring 개발 시 필수로 사용하세요.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/jetbrains-workflow" ~/.claude/skills/majiayu000-claude-skill-registry-jetbrains-workflow && rm -rf "$T"
manifest:
skills/data/jetbrains-workflow/SKILL.mdsource content
JetBrains MCP Workflow
JetBrains IDE의 MCP 도구를 최대한 활용하여 개발 속도를 극대화합니다.
핵심 원칙
IDE 먼저, Gradle 나중에 - 코드 검사 → jetbrains.get_file_problems() (0-2초) - 테스트 실행 → jetbrains.execute_run_configuration() (IDE 캐시 활용) - 포맷팅 → jetbrains.reformat_file() (즉시) - 검색 → jetbrains.find_files_by_name_keyword() (인덱스 활용)
1. 코드 검증 워크플로우
Step 1: 즉시 에러 확인 (0-2초)
# 코드 수정 후 항상 먼저 실행 jetbrains.get_file_problems( filePath="module-core-domain/src/main/kotlin/.../Service.kt", errorsOnly=True, timeout=5000, projectPath="/path/to/project-basecamp-server" )
반환 정보:
- 문법 에러, 타입 에러
- 미해결 참조
- 컴파일 에러
- 라인/컬럼 위치
Step 2: 단일 테스트 실행
옵션 A: Run Configuration 사용 (권장)
# 먼저 사용 가능한 Run Configuration 확인 jetbrains.get_run_configurations( projectPath="/path/to/project-basecamp-server" ) # Run Configuration으로 테스트 실행 (IDE 캐시 활용으로 더 빠름) jetbrains.execute_run_configuration( configurationName="PipelineServiceTest", timeout=60000, maxLinesCount=200, projectPath="/path/to/project-basecamp-server" )
옵션 B: Terminal 명령어 사용
# Gradle 단일 테스트 실행 jetbrains.execute_terminal_command( command="./gradlew :module-core-domain:test --tests '*PipelineServiceTest'", timeout=60000, maxLinesCount=200, reuseExistingTerminalWindow=True, projectPath="/path/to/project-basecamp-server" )
Step 3: 최종 빌드 (기능 완료 후 1회만)
jetbrains.execute_terminal_command( command="./gradlew build", timeout=300000, reuseExistingTerminalWindow=True, projectPath="/path/to/project-basecamp-server" )
2. 리팩토링 워크플로우
심볼 이름 변경 (프로젝트 전체 자동 업데이트)
# IDE의 리팩토링 기능 활용 - 모든 참조 자동 업데이트 jetbrains.rename_refactoring( pathInProject="module-core-domain/src/main/kotlin/.../PipelineService.kt", symbolName="createPipeline", newName="createNewPipeline", projectPath="/path/to/project-basecamp-server" )
장점:
- 프로젝트 전체에서 모든 참조 자동 업데이트
- 문자열 치환보다 안전
- import 문도 자동 수정
코드 포맷팅
# IDE 포맷터로 즉시 포맷팅 (ktlintFormat보다 빠름) jetbrains.reformat_file( path="module-core-domain/src/main/kotlin/.../Service.kt", projectPath="/path/to/project-basecamp-server" )
3. 파일 검색 워크플로우
파일명으로 빠른 검색 (인덱스 활용)
# grep보다 훨씬 빠름 - IDE 인덱스 활용 jetbrains.find_files_by_name_keyword( nameKeyword="Service", fileCountLimit=20, timeout=5000, projectPath="/path/to/project-basecamp-server" )
Glob 패턴으로 검색
jetbrains.find_files_by_glob( globPattern="**/test/**/*Test.kt", fileCountLimit=50, timeout=10000, projectPath="/path/to/project-basecamp-server" )
텍스트 검색 (내용 기반)
# 코드 내용에서 텍스트 검색 jetbrains.search_in_files_by_text( searchText="@Transactional", directoryToSearch="module-core-domain/src", fileMask="*.kt", maxUsageCount=50, timeout=10000, projectPath="/path/to/project-basecamp-server" )
정규식 검색
jetbrains.search_in_files_by_regex( regexPattern="@Service\\s+class\\s+\\w+", directoryToSearch="module-core-domain/src", fileMask="*.kt", maxUsageCount=30, timeout=10000, projectPath="/path/to/project-basecamp-server" )
4. 코드 이해 워크플로우
Quick Documentation 조회
# 심볼에 대한 문서/타입 정보 조회 jetbrains.get_symbol_info( filePath="module-core-domain/src/main/kotlin/.../Service.kt", line=45, column=20, projectPath="/path/to/project-basecamp-server" )
반환 정보:
- 심볼 이름, 시그니처, 타입
- 문서 (KDoc/JavaDoc)
- 선언 위치
프로젝트 구조 파악
# 디렉토리 트리 조회 jetbrains.list_directory_tree( directoryPath="module-core-domain/src/main/kotlin", maxDepth=3, timeout=5000, projectPath="/path/to/project-basecamp-server" ) # 프로젝트 모듈 목록 jetbrains.get_project_modules( projectPath="/path/to/project-basecamp-server" ) # 의존성 목록 jetbrains.get_project_dependencies( projectPath="/path/to/project-basecamp-server" )
열린 파일 확인
jetbrains.get_all_open_file_paths( projectPath="/path/to/project-basecamp-server" )
5. 파일 조작 워크플로우
파일 생성
jetbrains.create_new_file( pathInProject="module-core-domain/src/main/kotlin/.../NewService.kt", text="package com.dataops.basecamp.domain.service\n\n@Service\nclass NewService {\n}", overwrite=False, projectPath="/path/to/project-basecamp-server" )
파일 읽기
jetbrains.get_file_text_by_path( pathInProject="module-core-domain/src/main/kotlin/.../Service.kt", maxLinesCount=500, truncateMode="MIDDLE", projectPath="/path/to/project-basecamp-server" )
텍스트 치환
jetbrains.replace_text_in_file( pathInProject="module-core-domain/src/main/kotlin/.../Service.kt", oldText="oldMethodName", newText="newMethodName", replaceAll=True, caseSensitive=True, projectPath="/path/to/project-basecamp-server" )
파일 열기
jetbrains.open_file_in_editor( filePath="module-core-domain/src/main/kotlin/.../Service.kt", projectPath="/path/to/project-basecamp-server" )
6. Gradle 명령어 전략 (최소 → 최대)
항상 최소 단위 명령어부터 실행하세요. 실패 시 빠르게 피드백을 받을 수 있습니다.
점진적 검증 순서
# Step 1: 컴파일만 (가장 빠름, 3-5초) ./gradlew :module-core-domain:compileKotlin # Step 2: QueryDSL Q-Class 생성 (Entity 변경 시, 5-10초) ./gradlew :module-core-domain:kaptKotlin # Step 3: 테스트 코드 컴파일 (5-10초) ./gradlew :module-core-domain:compileTestKotlin # Step 4: ktlint 단일 파일 체크 (수정된 파일만) ./gradlew :module-core-domain:ktlintCheck -PktlintFilter="**/ServiceName.kt" # Step 5: 단일 테스트 실행 (5-10초) ./gradlew :module-core-domain:test --tests "*ServiceTest" # Step 6: 모듈 전체 테스트 (15-30초) ./gradlew :module-core-domain:test # Step 7: ktlint 전체 체크 (기능 완료 시) ./gradlew ktlintCheck # Step 8: 전체 빌드 (기능 완료 후 1회만, 60초+) ./gradlew build
Entity 변경 시 워크플로우
Entity 파일을 수정했다면 Q-Class 재생성이 필요합니다:
# Entity 수정 후 순서 ./gradlew :module-core-domain:compileKotlin # 컴파일 체크 ./gradlew :module-core-domain:kaptKotlin # Q-Class 재생성 ./gradlew :module-core-domain:compileTestKotlin # 테스트 컴파일 ./gradlew :module-core-domain:test --tests "*Test" # 테스트 실행
ktlint 단계별 실행
# 단일 파일 체크 (수정한 파일만) ./gradlew :module-core-domain:ktlintCheck -PktlintFilter="**/MyService.kt" # 모듈 체크 ./gradlew :module-core-domain:ktlintCheck # 전체 체크 (최종 검증) ./gradlew ktlintCheck # 자동 포맷팅 (필요시) ./gradlew :module-core-domain:ktlintFormat
명령어 조합 패턴
# 패턴 1: 빠른 컴파일 체크 ./gradlew :module-core-domain:compileKotlin :module-core-domain:compileTestKotlin # 패턴 2: 컴파일 + 단일 테스트 ./gradlew :module-core-domain:compileKotlin :module-core-domain:test --tests "*ServiceTest" # 패턴 3: Entity 변경 + 테스트 ./gradlew :module-core-domain:compileKotlin :module-core-domain:kaptKotlin :module-core-domain:test --tests "*Test" # 패턴 4: 여러 모듈 컴파일 체크 ./gradlew :module-core-domain:compileKotlin :module-core-infra:compileKotlin :module-server-api:compileKotlin # 패턴 5: 특정 모듈 빌드 (clean 없이) ./gradlew :module-core-domain:build # 패턴 6: 컴파일 + ktlint + 테스트 (최종 모듈 검증) ./gradlew :module-core-domain:compileKotlin :module-core-domain:ktlintCheck :module-core-domain:test
모듈별 명령어 참조
| 모듈 | 컴파일 | 테스트 컴파일 | 테스트 |
|---|---|---|---|
| core-common | | | |
| core-domain | | | |
| core-infra | | | |
| server-api | | | |
개발 중 금지 패턴
# ❌ 개발 반복 중 사용 금지 (매번 실행하면 느려짐) ./gradlew clean build # 개발 중 금지 → 60-120초 낭비! ./gradlew test # 개발 중 금지 → --tests 사용! ./gradlew clean # 개발 중 금지 → 캐시 문제 시에만! # ✅ 개발 중 올바른 사용 ./gradlew :module-core-domain:compileKotlin # 컴파일만 (3-5초) ./gradlew :module-core-domain:kaptKotlin # Q-Class 생성 (Entity 변경 시) ./gradlew :module-core-domain:ktlintCheck -PktlintFilter="**/*.kt" # 단일 파일 린트 ./gradlew :module-core-domain:test --tests "*ServiceTest" # 단일 테스트 (5-10초) # ✅ 최종 검증 (기능 완료 후 1회만 허용) ./gradlew ktlintCheck # 전체 린트 체크 ./gradlew build # 전체 빌드 ./gradlew clean build # 캐시 문제 시에만
JetBrains MCP와 Gradle 조합
# 1. IDE 검사로 빠른 에러 확인 (0-2초) jetbrains.get_file_problems(filePath="...", errorsOnly=True) # 2. 에러 없으면 컴파일 체크 (3-5초) jetbrains.execute_terminal_command( command="./gradlew :module-core-domain:compileKotlin :module-core-domain:compileTestKotlin", timeout=30000 ) # 3. 컴파일 성공하면 단일 테스트 (5-10초) jetbrains.execute_terminal_command( command="./gradlew :module-core-domain:test --tests '*ServiceTest'", timeout=60000 ) # 4. 기능 완료 후 최종 빌드 (1회만) jetbrains.execute_terminal_command( command="./gradlew build", timeout=300000 )
도구 선택 가이드
| 작업 | JetBrains MCP 도구 | 대안 (느림) |
|---|---|---|
| 에러 확인 | (0-2초) | (3-5초) |
| 단일 테스트 | | |
| 포맷팅 | (즉시) | (5초+) |
| 리네임 | (안전) | sed/수동 (위험) |
| 파일 검색 | | grep/find |
| 텍스트 검색 | | grep -r |
| 문서 조회 | | 파일 읽기 |
워크플로우 요약
TDD 사이클 (권장)
1. 테스트 작성 2. get_file_problems() → 문법 에러 확인 3. execute_run_configuration() 또는 execute_terminal_command() → 테스트 실행 4. 구현 5. get_file_problems() → 에러 확인 6. 테스트 실행 → 통과 확인 7. reformat_file() → 포맷팅 8. 반복 9. 기능 완료 후 → ./gradlew build (1회)
리팩토링 사이클
1. get_file_problems() → 현재 상태 확인 2. rename_refactoring() → 심볼 이름 변경 3. get_file_problems() → 변경 후 에러 확인 4. execute_run_configuration() → 테스트로 검증
주의사항
- projectPath 필수: 모든 도구에
파라미터 전달 필요projectPath - timeout 설정: 복잡한 작업은 충분한 timeout 설정 (기본 30초)
- IDE 실행 필요: JetBrains IDE가 실행 중이어야 MCP 도구 작동
- Run Configuration 사전 설정:
사용 시 IDE에서 미리 설정 필요execute_run_configuration