인터셉터 패턴

Interceptor pattern
가로채기 예시

소프트웨어 개발 분야에서 가로채기 패턴은 소프트웨어 시스템 또는 프레임워크가 일반적인 처리 주기를 변경하거나 증가시키는 방법을 제공할 때 사용되는 소프트웨어 설계 패턴입니다.예를 들어 웹 서버의 일반적인 처리 시퀀스는 브라우저에서 URI를 수신하여 디스크 상의 파일에 매핑하고 파일을 열어 브라우저로 내용을 전송하는 것입니다.예를 들어 URI가 파일 이름에 매핑되는 방식을 바꾸거나 파일 내용을 처리하는 새로운 단계를 삽입하여 이러한 단계를 대체하거나 변경할 수 있습니다.

패턴의 주요 측면은 변경이 투명하고 자동으로 사용된다는 것입니다.기본적으로 시스템의 나머지 부분은 추가 또는 변경된 사항을 알 필요가 없으며 이전과 같이 계속 작동할 수 있습니다.이를 용이하게 하기 위해서는 사전에 정의된 확장 인터페이스가 구현되어야 하며, 인터셉터가 등록되는 경우(실행시 또는 컨피규레이션파일을 통해 동적 또는 정적일 수 있음)에는 일종의 디스패치 메커니즘이 필요하며, 프레임워크의 내부 [1]상태에 액세스할 수 있는 컨텍스트 개체가 제공됩니다.

용도 및 컨텍스트

이 패턴의 일반적인 사용자는 웹 서버[2](위에서 설명한 바와 같이), 객체[3] 지향 및 메시지 지향 미들웨어입니다[4].

이 패턴의 구현의 예로는 javax.servlet이 있습니다.필터 인터페이스 - Java Platform Enterprise Edition의 일부입니다.

AOP는 일반적으로[clarification needed] 인터셉터 패턴에 정의된 요소를 사용하지 않지만 AOP(Aspect-Oriented Programming)를 사용하여 인터셉터 기능을 제공할 수도 있습니다.

레퍼런스

  1. ^ "Schmidt, Stal, Rohnert & Buschmann: "Pattern-Oriented Software Architecture Vol.2: Patterns for Concurrent and Networked Objects", pp. 109--140, April 2001". Archived from the original on 2017-12-23. Retrieved 2009-11-24.
  2. ^ Apache 소프트웨어 재단:Tomcat 6.0 채널 가로채기 참조, 2009년 11월 24일 액세스
  3. ^ OMG, "CORBA v3.1, Part I: 인터페이스", 제16장 "휴대용 인터셉터", 2008년 1월
  4. ^ E. 카레, D.Chambers와 G. Lyons는 2004년 제3회 분산 이벤트 기반 시스템 국제 워크숍(DEBS '04, ICSE '04, 스코틀랜드 에든버러, 2004)에서 "인터셉션을 사용한 메시지 지향 미들웨어 확장"을 발표했습니다.