본문 바로가기

Advice

개발 프레임워크 만들기 대장정 27 - Spring.NET의 advice 종류와 적용 ■ advice 종류 ▶ around advice 앞에서 알아본 CommonLoggingAroundAdvice 타입은 around advce중의 하나였다. 즉 인터페이스 IMethodInterceptor를 상속해서 Invoke() 메소드를 구현하고 있다. 아래는 IMethodInterceptor의 정의이다. namespace AopAlliance.Intercept { public interface IMethodInterceptor : ... { object Invoke(IMethodInvocation invocation); } } 이 메소드의 인자로 넘어오는 invocation은 인터셉트된 타겟 객체에 대한 호출을 나타낸다. 이 인자의 Proceed() 메소드를 호출하면 인터셉트되어서 중단된 타겟 메소드.. 더보기
개발 프레임워크 만들기 대장정 26 - AOP 적용 예제 II 다음은 AOP를 적용하기 위한 설정으로서 앞 포스트에서 보여준 Spring.Calculator.Web.2005 의 web.config의 일부분이다.\par ??\par ??\par ??\tab \par ??\par ??\par ??\par ??\par ??\par ??\par ??\tab \par ??\tab \par ??\tab \tab \par ??\tab \tab \tab \cf0 CommonLoggingAroundAdvice\cf2 \par ??\tab \tab \par ??\tab \par ??\par ??} --> CommonLoggingAroundAdvice 이 설정은 타겟 객체 AdvancedCalculator의 모든 메소드에 대해서 설정된 advice 로직이 적용된다고 했다. 오늘은 타겟.. 더보기
개발 프레임워크 만들기 대장정 25 - AOP 적용 예제 I ■ 예제 설명 앞에서 본 샘플 프로젝트 솔루션의 구조이다. Spring.Calculator.Web 프로젝트를 실행시켜보면 다음과 같은 결과 페이지가 보인다. 첫번째 링크는 단순한 웹 서비스 메소드를 호출하고 있다. AOP가 적용된 메소드를 호출하기 위해서는 두번째 링크를 클릭해야 한다. 이번 포스트에서는 두번째 링크에 대한 웹 서비스를 AOP 예제로 삼겠다. 두번째 링크를 클릭하면 다음과 같은 웹 서비스 테스트 화면이 나온다. 노출된 메소드중에서 Add 메소드를 클릭해서 적절히 값을 넣고 호출한다. 이 메소드를 호출하고 나서 남는 로그는 다음과 같다. 2008-08-18 23:09:34,406 [DEBUG] Spring.Aspects.Logging.CommonLoggingAroundAdvice - Int.. 더보기
개발 프레임워크 만들기 대장정 21 - Aspect Oriented Programming 개념 I Aspect지향 프로그래밍! 프레임워크 입장에서는 아주 쓸모있고 중요한 개념이다. 개발자들의 코딩을 화~악 줄여줄 수 있고 또한 프로젝트가 진행하고 있는 도중에도 개발자들의 코드 수정없이 프레임워크단에서 갑의 요청 사항을 최대한 흡수해 줄 수 있는 완충 역할을 할 수 있는 방법이다. 그러나 얼른 와 닫지 않는 용어이다. Object Oriented Programming이라는 용어를 처음 들어을때도 이런 떨떠름한 기분이었을까 하는 생각이 든다. Object가 뭔지 정의를 정확히 내리라면 머뭇거리게 되지만, 그래도 우리는 이것에 대해 이해는 하고 있다. 문장의 주어 또는 목적어로 사용될 수 있는 "놈"들이다. "이 녀석의 어떤 메소드를 호출하면 ..." 또는 "저 녀석의 어떤 메소드를 호출해줘야 ~ 할 수 .. 더보기