디스패치 프록시를 이용한 관점 지향 프로그래밍 | Bruno Sonnino

AOP(Aspect Oriented Programming)는 인증, 로깅, 데이터 감사, 데이터 유효성 검사, 데이터 캐싱 및 성능 측정 등 다른 관점에 대한 기능을 구현해야 할 때 기존 로직을 최대한 수정하지 않고 달성하는 방법입니다. Bruno Sonnino님이 작성한 기존 기사는 .NET(Core) 에서는 사용할 수 없는 Remoting 기반이므로 더 이상 사용할 수 없지만 .NET(Core)에서 System.Reflection.DispatchProxy 클래스를 이용해서 동일한 동작을 달성할 수 있습니다.

이 클래스를 이용하면 서비스 로직을 수정하지 않고 메서드 호출 전/후에 관여할 수 있게 됩니다. 이 글은 동작성을 확인하기 위해 간단한 메모리 저장소를 구현하며, 저장소에 엔터티를 추가하거나 삭제 또는 값을 가져올 때 DispatchProxy를 이용해 만든 RepositoryLogger<T>로 로깅을 기록하도록 합니다.


https://blogs.msmvps.com/bsonnino/2022/10/29/aspect-oriented-programming-with-dispatchproxy/

3개의 좋아요