바이트 코드를 조작하는 방법2 - ByteBuddy, Javaagent
JVM 구조에 대한 글에서 살펴보았듯이 .java 파일을 자바가 컴파일하여, .class 파일로 변환하고 .class 파일을 JVM이 클래스 로더에 의해서 로딩 -> 링크 -> 초기화 작업을 통하여 메모리(Runtime Data Area)에 저장하게 됩니다. 바이트 코드 조작은 개발자의 소스코드(.java)를 직접 수정하지 않고 .class 파일을 수정하여 원하는 기능 구현하는 장점이 있습니다. 그럼 바이트 코드를 조작하여 활용하는 예시를 살펴보겠습니다. 1. 프로그램 분석 코드에서 버그 찾는 툴 코드 복잡도 계산 2. 클래스 파일 생성 프록시 (원래 소스 코드 대신 실행할 코드) 특정 API 호출 접근 제한 스칼라 같은 언어의 컴파일러 3. 그 밖에도 자바 소스 코드 건드리지 않고 코드 변경이 필요한 ..
Java
2022. 3. 30. 09:00
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- bytebuddy
- dromos
- jvm
- 바이트 코드
- 프록시패턴
- 자바 프록시 패턴
- 애노테이션 프로세서
- javaagent
- Annotation Processor
- optional api
- 자바 리플렉션
- java
- java abstractprocessor
- JVM 구조
- Functional Interface
- 애노테이션
- Java Reflection
- 코드 커버리지
- 리플렉션
- javassist
- 실행 엔진
- 클래스로더
- java optional
- JRE와 JDK의 차이점
- classloder
- java proxy pattern
- 람다표현식
- Reflection
- java11 optional
- 깃 기초
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함