1. Spring AOP 특징

2. Proxy Pattern 사용하기 전, 기존 코드를 건드렸을 때

3. Proxy Pattern

1. Spring AOP 특징

1-1) Spring AOP 특징

프록시 기반의 AOP 구현체임. 프록시 객체를 사용하는 이유는 접근 제어 및 부가 기능을

추가하기 위해서임. Spring Bean에만 AOP를 적용할 수 있음.

모든 AOP 기능을 제공하는 것이 아니라 Spring IoC와 연동하여 엔터프라이즈 애플리케이션에서

가장 흔한 문제(중복코드, 프록시 클래스 작성의 번거로움, 객체 간 관계 복잡도 등)를

해결하기 위한 솔루션을 제공하는 것이 목적임.

1-2) Proxy Pattern Image

Untitled

2. Proxy Pattern 사용하기 전, 기존 코드를 건드렸을 때

2-1) EventService(Subject)

Untitled

Untitled

2-2) SimpleEventService(Real Subject)

Untitled

Untitled

2-2)-1. 기존 코드를 건드렸을 때

Untitled

2-2)-2. Console

Untitled

2-3) AppRunner(Client)

Untitled

Untitled

2-4) Console

Untitled

3. Proxy Pattern

3-1) Proxy Pattern

SimpleEventServie(Real Subject)와 AppRunner(Client)를 건들이지 않고 성능 테스트.

3-2) Proxy Pattern Image

→ Proxy Pattern에는 Interface가 존재함.

→ Client에는 Interface 타입으로 Proxy 객체를 사용함.

→ Proxy 객체는 기존의 타겟 객체(Real Subject)를 참조하고 있음.

→ Proxy 객체와 Real Subject의 타입은 같음.

→ Proxy는 Real Subject를 감싸서 Client의 요청을 처리함.

Untitled

3-3) class ProxySimpleEventService(Proxy)

Untitled

3-3)-1. Proxy Pattern의 문제점

→ 매번 프록시 클래스를 작성해야하는가?

→ 여러 클래스 여러 메소드에 적용하려면

→ 객체들 관계의 복잡성.

→ 중복 코드가 발생.

3-4) Console

Untitled