반응형

JavaAgent란?

Java 프로그램이 시작할 때 JVM에 의해 클래스로딩이 수행되는 시점에 자바 바이트 코드를 변조를 할 수 있도록 해주는 프로그램이다

이를 통해 별도의 메인 프로그램의 코드를 변경하지 않고도 프로그램에 대한 모니터링 등을 수행 할 수 있다

프로그램의 원본 코드를 수정하지 않아도 모니터링을 할 수 있기 때문에 APM툴에서 많이 사용되고 있다

JavaAgent 실행 방법

JavaAgent는 JVM 옵션을 통해 실행할 JavaAgent를 지정하여 실행할 수 있다

-javaagnet:jarpath[=options]

**ex)**
-javaagent: /home/monitoring/monitoring.jar

JavaAgent 동작 원리

  1. Java 애플리케이션 실행을 위해 JVM이 실행 되면서 JavaAgent의 Premain 함수 수행
  2. ClassFileTransformer 구현체 로딩
  3. Class Loader에 의해 Java 애플리케이션 Class File 로딩 시 Class 파일 ClassFileTransformer에 의해 바이트 코드 변경
  4. 변경된 바이트 코드 로딩
반응형

'공부 > Java' 카테고리의 다른 글

Java SSL 인증서 검증 흐름 및 확인  (0) 2025.06.17
Out Of Memory 문제 분석  (0) 2025.05.31
[Java] HashMap get 메서드에 관하여  (0) 2021.09.13
Java Virtual Machine(JVM)  (0) 2021.05.08
Primitive, Reference Type  (0) 2021.05.07

+ Recent posts