반응형
JavaAgent란?
Java 프로그램이 시작할 때 JVM에 의해 클래스로딩이 수행되는 시점에 자바 바이트 코드를 변조를 할 수 있도록 해주는 프로그램이다
이를 통해 별도의 메인 프로그램의 코드를 변경하지 않고도 프로그램에 대한 모니터링 등을 수행 할 수 있다
프로그램의 원본 코드를 수정하지 않아도 모니터링을 할 수 있기 때문에 APM툴에서 많이 사용되고 있다
JavaAgent 실행 방법
JavaAgent는 JVM 옵션을 통해 실행할 JavaAgent를 지정하여 실행할 수 있다
-javaagnet:jarpath[=options]
**ex)**
-javaagent: /home/monitoring/monitoring.jar
JavaAgent 동작 원리
- Java 애플리케이션 실행을 위해 JVM이 실행 되면서 JavaAgent의 Premain 함수 수행
- ClassFileTransformer 구현체 로딩
- Class Loader에 의해 Java 애플리케이션 Class File 로딩 시 Class 파일 ClassFileTransformer에 의해 바이트 코드 변경
- 변경된 바이트 코드 로딩
반응형
'공부 > 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 |