전체 글(187)
-
Dynamic Proxy Classes
보호되어 있는 글입니다.
2023.05.17 -
Mockito
보호되어 있는 글입니다.
2023.05.17 -
Java Agent
Java Agent는 Java 애플리케이션의 실행 중 동작을 변경하거나 모니터링할 수 있는 특별한 프로그램입니다. Java Agent는 JVM(Java Virtual Machine)과 상호 작용하여 클래스 로딩 시점에 바이트코드를 조작하거나, 이미 로드된 클래스의 동작을 런타임에 수정할 수 있습니다. 이러한 기능은 성능 모니터링, 디버깅, 프로파일링, 코드 커버리지 분석, 그리고 AOP(Aspect-Oriented Programming) 구현 등 다양한 목적에 사용됩니다.Java Agent의 주요 특징Premain 메서드:Java Agent는 JVM이 시작될 때 premain 메서드를 통해 실행됩니다. 이 메서드는 JVM이 메인 애플리케이션을 실행하기 전에 호출됩니다.premain 메서드는 두 가지 형태..
2023.05.17 -
1. Aspect Oriented Programming with Spring
[공식문서]AOP(Aspect-Oriented Programming)는 프로그램 구조를 생각하는 또 다른 방법을 제공하여 OOP(Object-Oriented Programming)를 보완합니다. OOP에서의 주요 모듈화 단위는 클래스인 반면, AOP에서는 모듈화 단위가 aspect입니다. aspect는 트랜잭션 관리와 같은 여러 타입과 객체에 걸쳐 있는 문제를 모듈화할 수 있게 해줍니다. 이러한 문제는 AOP 문헌에서 흔히 crosscutting concerns라고 불립니다.Spring의 주요 구성 요소 중 하나는 AOP 프레임워크입니다. Spring IoC 컨테이너는 AOP에 의존하지 않으므로(AOP를 사용하지 않아도 된다는 의미) AOP를 꼭 사용해야 하는 것은 아니지만, AOP는 Spring IoC..
2023.05.16 -
Spring AOP APIs 2[The Advisor API in Spring, Using the ProxyFactoryBean to Create AOP Proxies]
The Advisor API in SpringSpring에서 Advisor는 포인트컷 표현식과 연관된 단일 어드바이스 객체만을 포함하는 애스펙트입니다.도입(introductions)의 특별한 경우를 제외하고, 모든 어드바이저는 모든 어드바이스와 함께 사용할 수 있습니다. `org.springframework.aop.support.DefaultPointcutAdvisor`는 가장 일반적으로 사용되는 어드바이저 클래스입니다. 이 클래스는 `MethodInterceptor`, `BeforeAdvice`, 또는 `ThrowsAdvice`와 함께 사용할 수 있습니다.Spring에서는 동일한 AOP 프록시에서 어드바이저와 어드바이스 타입을 혼합할 수 있습니다. 예를 들어, 하나의 프록시 구성에서 인터셉션 aroun..
2023.05.16 -
Java Instrumentation API
Instrumentation API는 Java 플랫폼의 java.lang.instrument 패키지에서 제공되는 API로, JVM의 클래스 로딩 및 런타임 동작을 조작할 수 있도록 하는 API이며, 이 API 자체는 인터페이스로 제공됩니다. 이 API는 주로 성능 모니터링, 프로파일링, 코드 커버리지 도구, 그리고 AOP(Aspect-Oriented Programming) 같은 기술을 구현할 때 사용됩니다. 구현체는 JVM 내부에서 이 API를 구현하고, 이를 통해 Java Agent와 같은 도구들이 해당 기능을 사용할 수 있도록 합니다.주요 기능ClassFileTransformer:ClassFileTransformer는 클래스가 로드되기 전에 바이트코드를 변환할 수 있는 인터페이스입니다. 이를 통해 클..
2023.05.16