Community라이팅 & 에디팅github.com

Betreazen/java-knowledge

Java 및 JVM 전반에 대한 지식 베이스 및 워크플로우 — 라이브러리, 백엔드(Spring Boot, Quarkus, Micronaut), JDBC/JPA, Kafka, CLI, JavaFX, Spark, ML/LLM 앱, 게임(libGDX, LWJGL), Minecraft 모드/플러그인(Fabric, NeoForge, Paper, mixins), 임베디드 등 모든 도메인을 포괄합니다.

java-knowledge란 무엇인가요?

이 스킬은 Java 및 JVM 생태계 전반을 아우르는 포괄적인 지식 베이스와 최적화된 워크플로우를 제공합니다. Spring Boot, Quarkus, Micronaut 같은 백엔드 프레임워크부터 JDBC/JPA, Kafka, JavaFX, 게임 개발(libGDX, LWJGL), Minecraft 모딩(Fabric, NeoForge, Paper), ML/LLM 애플리케이션, 임베디드 시스템까지 모든 Java 도메인을 지원합니다. JDK 21, 25(LTS) 및 27 최신 릴리즈를 포함한 버전 정보, Maven/Gradle 빌드 도구, Lombok/MapStruct/Error Prone/NullAway/SpotBugs/Spotless 같은 분석 도구, JUnit 6/Testcontainers/JaCoCo 테스팅 도구, JMH/JFR/async-profiler 성능 프로파일링, Java 메모리 모델/가상 스레드/FFM API 동시성, JPMS 모듈 시스템 등이 체계적으로 정리되어 있습니다. 또한 성능 최적화를 위한 파이프라인(측정 기반 최적화), CI 검증된 템플릿, 코드 리뷰 체크리스트, 그리고 각 도메인별 심화 참고 자료가 포함되어 있습니다. 주로 Claude Code와 같은 AI 에이전트와 함께 사용하도록 설계되었으며, 사용자는 질문에 대한 답변을 얻거나 코드 리뷰, 디버깅, 최적화 작업을 수행할 때 이 스킬을 활용할 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Betreazen/java-knowledge-skill/tree/HEAD/java-knowledge

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Java: 지식 베이스 및 파이프라인

이 스킬은 모든 Java 도메인에서 코드를 작성, 검토 및 최적화하는 데 도움을 줍니다. 세 가지 주요 구성 요소로 이루어져 있습니다:

  1. 지식 베이스. 카테고리별로 정리된 책, 기사, 발표, 문서, JEP, 코드베이스 및 패턴입니다. 각 출처에는 링크, 저자, 연도 및 읽어야 하는 이유가 포함되어 있습니다.
  2. 툴체인. 설치해야 할 JDK, 빌드 도구 및 분석기, 실행할 명령어 및 순서입니다. pom.xml, Gradle 및 CI 템플릿이 수집되어 검증되었습니다.
  3. 파이프라인. 작업 순서: 테스트 우선, 품질 검사, JMH 벤치마크, 리뷰, 라이브러리에서 솔루션 검색 및 재측정입니다.

지식 상태 — 2026년 11월 기준: JDK 27(2026년 9월) 최신 릴리즈, JDK 25 현재 LTS, JDK 21 및 17 이전 LTS, JDK 28은 2027년 3월 출시 예정. Maven 3.9.16 및 3.10.0(Maven 4는 여전히 RC), Gradle 9.9, JUnit 6.1, Spring Boot 4.1, Quarkus 3.40, JMH 1.37. Minecraft: 26.3 최신 릴리즈(2026년 9월), 26.4 스냅샷 버전; 26.1부터 게임이 난독화 없이 제공되며 Java 25가 필요합니다.

참고 자료

작업파일
새로운 기능, 리팩토링 또는 최적화: 작업 순서references/pipeline.md
JDK 배포판 및 버전, 설치, Maven 및 Gradle, 플러그인, BOM, 애노테이션 프로세서, javac -Xlint, Error Prone, NullAway, SpotBugs, PMD, Spotless, OpenRewrite, 의존성 보안, JDK 도구, CI, 템플릿references/toolchain.md
JUnit 6, AssertJ, Mockito, Testcontainers, Spring Boot 슬라이스, 프로퍼티 기반 및 계약 테스트, JaCoCo, PIT, 불안정한 테스트references/testing.md
코드가 느리거나 메모리를 많이 사용하는 경우: 증상별 기술, JMH, JFR, JIT, GC, 시작 및 워밍업references/performance.md — 「증상 → 기술 → 출처」 표부터 시작하세요
Java 17–28 언어 기능(JEP 기준), 관용구, null 및 Optional, 예외, 패턴 및 안티패턴, 보안, 리뷰 체크리스트references/idioms-patterns.md
프로젝트 구조, 멀티모듈 빌드, 패키지 및 JPMS, 계층형 및 헥사고날 아키텍처, DDD, ArchUnit, DI, API 진화, 참조 코드베이스references/architecture.md
메모리 모델, executors, CompletableFuture, 락, 가상 스레드, 구조적 동시성, scoped values, 리액티브 라이브러리, FFM API, JNI, Unsafe, Vector APIreferences/concurrency-native.md
서버 도메인: Spring Boot, Quarkus, Micronaut, Helidon, REST 및 gRPC, JDBC, JPA 및 Hibernate, 마이그레이션, Kafka, 관찰 가능성, 보안, 컨테이너 및 Kubernetesreferences/domains-server.md
기타 도메인: 라이브러리 배포, CLI 및 TUI, 데스크탑, 데이터, ML 및 LLM 애플리케이션, 게임, 임베디드, WebAssembly, 상호 운용성, 스크립트references/domains-client.md
읽을거리, 블로그, 발표, 팟캐스트, 강좌, 한국어 리소스, 레벨별 학습 로드맵references/books.md. 책에 대한 일반적인 질문은 「짧은 목록: 주요 출처 20개」 및 「레벨별 읽기 로드맵」 섹션부터 시작하고, 주제별 섹션은 목차를 통해 열어보세요. 파일이 크므로 전체를 읽지 마세요

Minecraft 브랜치 (Java Edition: 모드 및 서버 플러그인, Minecraft 26.x 및 최신 1.21.x):

작업파일
모드 시작: 로더 선택(Fabric, NeoForge, Forge, Quilt), 게임 및 Java 버전, Loom 및 ModDevGradle, 멀티로더 및 멀티버전, Modrinth 및 CurseForge에 배포, 모드팩 빌드, CI, 검증된 템플릿references/minecraft-modding.md
모드 코드: 측과 스레드, 레지스트리, 데이터 컴포넌트, 블록, 엔티티, 데이터젠, 코덱, 네트워크, 이벤트, 믹스인, access widener 및 transformer, 렌더, 설정, 세계 생성, 새 버전으로 마이그레이션, 리뷰 체크리스트references/minecraft-mod-api.md — 26.x에서 변경된 사항은 「26.x에서 변경된 사항」 섹션을 확인하세요
지연, TPS 및 MSPT, FPS, 메모리, 느린 시작; spark 및 JFR; /tick sprint 세계 벤치마크; GameTest 및 단위 테스트; 크래시 리포트 및 모드 충돌 분석references/minecraft-performance-testing.md — 「증상 → 기술 → 출처」 표부터 시작하세요
서버: 데이터팩, 플러그인 또는 모드; Paper, Folia, Velocity, Spigot, Sponge, Minestom; Polymer; Geyser 및 ViaVersion; 엔지니어링 및 플러그인 템플릿references/minecraft-server-plugins.md
문서 및 최신 상태 유지, 오래된 튜토리얼 읽는 방법, 강좌, 유형별 참조 모드, 커뮤니티, 학습 로드맵references/minecraft-resources.md

각 참조 문서는 목차로 시작합니다. 파일 전체를 읽지 말고 필요한 섹션만 읽으세요.

자주 묻는 질문과 답변이 있는 섹션:

질문섹션
JDK 23+로 전환 후 생성된 클래스(Lombok, MapStruct, JMH)가 사라지고 빌드는 통과하는 경우; 기타 명확하지 않은 빌드 실패toolchain.md → 「함정: 요약」
병합 전에 프로젝트를 확인하는 명령어toolchain.md → 「최소 품질 검사」
프로파일 또는 벤치마크에서 무엇이 보이며 어떻게 처리해야 하는지performance.md → 「증상 → 기술 → 출처」
정확한 벤치마크 작성 방법performance.md → 「벤치마크: JMH」
Windows, Linux 및 macOS에서 프로파일링 도구performance.md → 「프로파일링」
현재 JDK 버전에서 특정 언어 기능을 사용할 수 있는지idioms-patterns.md → 「언어 버전: Java 17–28」
서비스를 가상 스레드로 마이그레이션할지 여부와 확인 사항concurrency-native.md → 「가상 스레드」, Spring Boot 4의 경우 domains-server.md → 「프레임워크 및 런타임」도 확인
부하에 따라 어떤 동시성 모델을 선택해야 하는지concurrency-native.md → 「부하별 도구 선택」
Spring Boot 4, Jackson 3, Hibernate 7에서 변경된 사항 및 제거된 사항domains-server.md → 「2026년 11월 버전」
느린 엔드포인트, N+1, 커넥션 풀domains-server.md → 「서버 성능: 증상」
프로젝트를 모듈로 나누고 경계를 설정하는 방법architecture.md → 「간단한 기본 규칙」
특정 책이나 판이 존재하는지books.md → 「출판된 책, 얼리 액세스 책, 존재하지 않는 책」
Minecraft: 모드 시작 방법, GameTest 및 CI가 포함된 프로젝트minecraft-modding.md → 「템플릿」, 로더 선택은 「기본 스택」
Minecraft: 오래된 튜토리얼 또는 모드가 26.x에서 빌드되지 않는 경우(modImplementation, remapJar, ResourceLocation, Yarn)minecraft-modding.md → 「오래된 튜토리얼의 오류」, minecraft-mod-api.md → 「26.x에서 변경된 사항」
Minecraft: 서버 지연(MSPT, TPS), 원인 찾기 및 수정 효과 증명minecraft-performance-testing.md → 「증상 → 기술 → 출처」, 작업 순서는 pipeline.md → 「Minecraft 모드 및 플러그인」
Minecraft: 데이터팩, 플러그인 또는 모드; 처음부터 Paper 플러그인 만들기minecraft-server-plugins.md → 「데이터팩, 플러그인 또는 모드 선택」, 「템플릿」

스크립트 scripts/BenchCompare.java는 '이전'과 '이후' JMH 실행 결과를 JSON으로 비교하고 실행 간 노이즈를 고려하여 회귀 발생 시 종료 코드 1을 반환합니다. 빌드 없이 실행: java BenchCompare.java <이전> <이후> (JDK 17+). 파이프라인 11단계에서 필요합니다.

Minecraft용 스크립트 두 개 더:

  • scripts/tick_sprint_bench.sh — /tick sprint 명령어로 전체 서버 벤치마크. 결과는 JMH JSON 형식이므로 동일한 BenchCompare.java로 비교합니다.
  • scripts/EmptyStructure.java — GameTest용 빈 .nbt 구조체. 자체 빈 구조체가 없는 NeoForge에서 필요합니다.

스크립트는 이 SKILL.md 파일과 함께 scripts/ 폴더에 있습니다. 모든 프로젝트에 설치 시 ~/.claude/skills/java-knowledge/scripts/, 프로젝트에 설치 시 .claude/skills/java-knowledge/scripts/에 위치합니다. 참조 문서의 명령어에서 이 경로를 사용하세요.

작업 방법

하나의 메서드보다 큰 작업은 파이프라인을 따르세요:

  1. 질문.
  2. 계획 및 명세.
  3. 하위 작업.
  4. 코드 전 테스트.
  5. worktree로 분리.
  6. 벤치마크.
  7. 기준 측정 및 프로파일.
  8. 리뷰.
  9. 라이브러리에서 솔루션 검색.
  10. 최적화.
  11. 재측정.

작은 수정은 동일한 파일의 짧은 모드로 충분합니다: 테스트, 코드, 검사, 리뷰.

작업 완료를 선언하기 전에 최소 검사를 실행하고 결과를 보여주세요:

./mvnw -B -ntp verify                 # -Xlint -Werror, Error Prone 및 NullAway와 함께 컴파일, 테스트, Spotless, JaCoCo 임계값
./mvnw -B -ntp dependency:analyze
osv-scanner scan source -r .

Gradle: ./gradlew build, ./gradlew buildHealth, osv-scanner scan source -r .. 분석기 및 임계값은 빌드에 연결되어야 합니다 — 템플릿은 toolchain.md에 있습니다. 프로젝트에 없는 경우, 있는 검사라도 실행하고 부족한 검사가 무엇인지 알려주세요. 도구가 설치되지 않은 경우 toolchain.md의 설치 명령어를 제안하고 단계를 조용히 건너뛰지 마세요.

최적화 시:

  • 먼저 측정, 그 다음 수정. 기준선 없이는 코드가 빨라졌다고 말할 수 없습니다.
  • System.nanoTime() 루프 대신 JMH로 측정하세요. JIT는 사용되지 않는 작업을 제거합니다. 로컬 측정에서 결과가 버려진 계산은 실제보다 14배 저렴하게 보였습니다.
  • '이전'과 '이후' 각각 5번의 실행을 별도의 JVM 실행으로 측정하고 순서를 번갈아 가며(ABBA) 진행하세요. 동일한 jar의 실행 간 편차는 12-22%입니다.
  • 항상 -prof gc를 추가하고 gc.alloc.rate.norm(작업당 바이트)을 확인하세요. 이 메트릭은 노이즈가 거의 없습니다.
  • 한 번에 하나의 JMH만 머신에서 실행하고 측정 중에는 다른 작업으로 머신에 부하를 주지 마세요.
  • performance.md에서 증상별 기술을 찾고 수정 사항 옆에 출처를 명시하세요.
  • 벤치마크가 유의미한 이점을 보여주고 테스트가 통과한 경우에만 수정 사항을 수락하세요.

리뷰 시 체크리스트를 사용하세요:

라이브러리 사용 규칙

  • 출처를 명시하세요. 패턴이나 최적화를 권장할 때는 참조 문서의 링크를 제공하세요. 그러면 사용자가 조언을 확인할 수 있고 솔루션이 지어낸 것처럼 보이지 않습니다.
  • 표시를 고려하세요. [사용 중단됨]은 해당 자료에 대체 자료가 있으며 옆에 명시되어 있음을 의미합니다. [미확인]은 해당 주장이 단일 2차 출처에서 가져온 것임을 의미합니다. 솔루션을 구축하기 전에 재확인해야 합니다.
  • 버전을 확인하세요. 버전은 2026년 11월 기준입니다. 2025-2026년에는 많은 주요 버전이 호환성을 깨는 변경 사항과 함께 출시되었습니다: Spring Boot 4 및 Spring Framework 7(이름이 변경된 스타터, 제거된 API), Jackson 3(tools.jackson 패키지), Hibernate 7, JUnit 6, Testcontainers 2(새로운 아티팩트 및 패키지), google-java-format 2. OSSRH를 통한 배포는 2025년 6월 30일에 종료되었습니다. 중요한 결정을 내리기 전에 Maven Central, 문서 및 릴리스 노트를 확인하세요.
  • 대상 Java 버전을 고려하세요. 코드를 작성하거나 제안하기 전에 maven.compiler.release 또는 Gradle의 toolchain을 확인하여 대상 버전보다 높은 기능을 사용하지 않도록 하세요.

관련 스킬