Repolode
alibaba

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. 1

    최신 릴리스 zip을 다운로드합니다(README에 따르면 이 OSS 링크는 만료될 수 있습니다).

    wget https://ompc.oss-cn-hangzhou.aliyuncs.com/jvm-sandbox/release/sandbox-1.3.3-bin.zip
  2. 2

    또는 Linux나 macOS에서 JDK 1.8을 사용해 직접 배포 파일을 빌드합니다.

    cd bin && ./sandbox-package.sh
  3. 3

    실행 중인 Java 프로세스에 sandbox를 연결합니다(33342를 프로세스 ID로 바꾸세요).

    ./sandbox.sh -p 33342

사용 전 알아둘 점

  • README에 따르면 JDK 6~11만 지원합니다.
  • 소스에서 빌드하려면 JDK 1.8과 Linux, macOS 또는 Unix가 필요하며, 빌드 환경으로 Windows는 지원되지 않습니다.
  • 카피레프트 라이선스인 LGPL-3.0에 따라 라이선스가 부여됩니다.

포함된 컬렉션

토픽

#java#jvm#aop#instrumentation#runtime-instrumentation#fault-injection#observability#bytecode

자주 묻는 질문

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 통계는 매일 갱신됩니다.

관련 프로젝트