테스트에서 실행되는 Java 바이트코드 부분을 측정하는 무료 Java 코드 커버리지 라이브러리입니다.
alibaba/jvm-sandbox
실행 중인 Java 애플리케이션을 재시작하지 않고 비침투적 런타임 AOP를 추가하는 JVM 샌드박스 컨테이너입니다.
- 스타
- 6,953
- 포크
- 1,586
- 열린 이슈
- 49
- 마지막 커밋
- 2개월 전
어떤 프로젝트인가요?
JVM-SANDBOX는 실행 중인 JVM에 연결해 대상 메서드를 런타임에 강화하는 Java용 AOP 프레임워크 컨테이너입니다. 대상 애플리케이션을 재시작하거나 수정할 필요가 없으며, 애플리케이션에 흔적을 남기지 않고 모듈을 즉시 로드하고 언로드할 수 있습니다.
메서드 호출을 BEFORE, RETURN, THROWS 단계로 나누어 동작하며, 플러그인 모듈이 인자, 반환값, 예외를 읽거나 변경하고 메서드 실행을 단락할 수 있습니다. 샌드박스와 모듈은 자체 클래스 로더에서 실행되므로 애플리케이션 클래스와 충돌하지 않습니다. 이 프로젝트는 Instrumentation 기반으로 구축되었으며 JDK 6부터 11까지 지원합니다.
일반적인 사용 사례로는 온라인 장애 진단, 동적 로깅, 장애 주입, 요청 기록 및 재생, 트래픽 제어, 민감 데이터 모니터링 또는 마스킹이 있습니다.
핵심 기능
- 01대상 애플리케이션을 재시작하거나 수정하지 않고 실행 중인 JVM에 연결합니다.
- 02모듈에서 메서드 인자, 반환값, 예외를 읽거나 변경할 수 있습니다.
- 03커스텀 클래스 로더를 통해 샌드박스와 모듈을 애플리케이션 클래스에서 격리합니다.
- 04모듈을 즉시 로드하고 깔끔하게 언로드할 수 있습니다.
- 05여러 테넌트를 지원하며 각 테넌트의 샌드박스를 독립적으로 제어할 수 있습니다.
- 06JDK 6부터 11까지 지원합니다.
활용 사례
- 재배포 없이 메서드에 동적 로그를 추가해 프로덕션 문제를 진단합니다.
- 시스템의 오류 처리 방식을 테스트하기 위해 메서드에 장애를 주입합니다.
- 테스트를 위해 메서드 호출을 기록하고 결과를 재생합니다.
- 애플리케이션 메서드를 통과하는 민감 데이터를 모니터링하거나 마스킹합니다.
빠른 시작
- 1
최신 릴리스 zip을 다운로드합니다(README에 따르면 이 OSS 링크는 만료될 수 있습니다).
wget https://ompc.oss-cn-hangzhou.aliyuncs.com/jvm-sandbox/release/sandbox-1.3.3-bin.zip - 2
또는 Linux나 macOS에서 JDK 1.8을 사용해 직접 배포 파일을 빌드합니다.
cd bin && ./sandbox-package.sh - 3
실행 중인 Java 프로세스에 sandbox를 연결합니다(33342를 프로세스 ID로 바꾸세요).
./sandbox.sh -p 33342
사용 전 알아둘 점
- README에 따르면 JDK 6~11만 지원합니다.
- 소스에서 빌드하려면 JDK 1.8과 Linux, macOS 또는 Unix가 필요하며, 빌드 환경으로 Windows는 지원되지 않습니다.
- 카피레프트 라이선스인 LGPL-3.0에 따라 라이선스가 부여됩니다.
포함된 컬렉션
토픽
자주 묻는 질문
- jvm-sandbox은(는) 무엇인가요?
- 실행 중인 Java 애플리케이션을 재시작하지 않고 비침투적 런타임 AOP를 추가하는 JVM 샌드박스 컨테이너입니다. JVM-SANDBOX는 실행 중인 JVM에 연결해 대상 메서드를 런타임에 강화하는 Java용 AOP 프레임워크 컨테이너입니다. 대상 애플리케이션을 재시작하거나 수정할 필요가 없으며, 애플리케이션에 흔적을 남기지 않고 모듈을 즉시 로드하고 언로드할 수 있습니다.
- jvm-sandbox은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- jvm-sandbox은(는) LGPL-3.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- jvm-sandbox은(는) 아직 유지보수되고 있나요?
- 6개월 이내 업데이트. jvm-sandbox의 마지막 커밋은 2026년 9월 9일입니다.
- jvm-sandbox은(는) 어디에 사용할 수 있나요?
- 재배포 없이 메서드에 동적 로그를 추가해 프로덕션 문제를 진단합니다. 시스템의 오류 처리 방식을 테스트하기 위해 메서드에 장애를 주입합니다. 테스트를 위해 메서드 호출을 기록하고 결과를 재생합니다. 애플리케이션 메서드를 통과하는 민감 데이터를 모니터링하거나 마스킹합니다.
- jvm-sandbox는 어떻게 설치하나요?
- 최신 릴리스 zip을 다운로드합니다(README에 따르면 이 OSS 링크는 만료될 수 있습니다).: wget https://ompc.oss-cn-hangzhou.aliyuncs.com/jvm-sandbox/release/sandbox-1.3.3-bin.zip 또는 Linux나 macOS에서 JDK 1.8을 사용해 직접 배포 파일을 빌드합니다.: cd bin && ./sandbox-package.sh 실행 중인 Java 프로세스에 sandbox를 연결합니다(33342를 프로세스 ID로 바꾸세요).: ./sandbox.sh -p 33342
- jvm-sandbox은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/alibaba/jvm-sandbox
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Java 클래스 파일을 보고 편집하는 바이트코드 뷰어와 클래스 파일을 읽고 쓰는 Kotlin Multiplatform 라이브러리입니다.
Prometheus 모니터링 형식으로 애플리케이션 메트릭을 노출하는 공식 Python 클라이언트 라이브러리입니다.
애플리케이션 코드를 수정하지 않고 `otel go build` 접두 명령으로 트레이싱과 메트릭을 추가하는 Go용 컴파일 타임 OpenTelemetry 계측 도구입니다.
결함 주입을 지원하는 시뮬레이션 마이크로서비스 클라우드 환경에서 자율 AIOps 에이전트를 설계하고 개발하며 평가하는 Python 프레임워크입니다.
실행 중인 JVM 애플리케이션을 코드 변경이나 재시작 없이 실시간으로 진단할 수 있는 Java 진단 도구입니다.