더북(TheBook)

테스트는 성공이고 마침내 완벽한 서비스를 자랑하는 AOP 컴포넌트가 만들어졌다.

다시 예제 2-25로 돌아가 이제 마지막으로 프레드릭과 데이브의 명품 Aop.js에서 한 번의 Aop.around 호출로 여러 함수에 영향을 주는 장치를 살펴보자. 잘 들여다보면 원저작자는 Aop.around 인자명을 다르게 붙여놓았다.

Aop.around(pointcut, advice, namespaces)

 

여기서 pointcutAop.jsfnName이다. AOP 용어인 포인트컷(pointcut)은 애스팩트가 끼어들어 어떤 일을 수행하는 지점(포인트)을 말한다. Aop.js는 자바스크립트 정규 표현식으로 포인트컷을 구현했고 이 장에서 예시한 일반 함수명은 특별한 케이스에 해당한다.

namespacefnObj에 해당한다. 자바스크립트 이름공간은 다른 객체를 프로퍼티로 소유한 단순 객체다. 이름이 충돌하는 것을 예방하려면 한 이름공간 안에 모든 애플리케이션을 두는 것이 좋다. 이름공간을 이렇게 계층화할 수도 있다.


var MyApp = {};
 
MyApp.Encryption = {};
MyApp.WebServices = {};
MyApp.UI = {};

그리고 이름공간에 함수를 작성해 넣는다.


MyApp.WebServices.amazon = function() {
// …
getIsbn: function(title, author, pubYear) {
  // …
}
};

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.