횡단 관심사

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기

객체 지향 소프트웨어 개발에서 횡단 관심사 또는 크로스커팅 관심사(cross-cutting concerns)는 다른 관심사에 영향을 미치는 프로그램애스펙트이다. 이 관심사들은 디자인과 구현 면에서 시스템의 나머지 부분으로부터 깨끗이 분해되지 못하는 경우가 있을 수 있으며 분산(코드 중복)되거나 얽히는(시스템 간의 상당한 의존성 존재) 일이 일어날 수 있다.

이를테면, 의무기록을 관리하기 위한 애플리케이션을 작성한다고 했을 때 이러한 기록의 색인화는 핵심 관심사인 한편 변경 이력을 기록 데이터베이스나 사용자 데이터베이스에 로깅하는 일이라든지, 인증 시스템과 같은 것은 횡단 관심사이며 이들은 프로그램의 더 많은 부분과 상호작용한다.

배경[편집]

횡단 관심사들은 시스템의 수많은 다른 부분에 의존하거나 영향을 미쳐야 하는 프로그램의 일부분이다. 애스펙트의 개발의 토대를 형성한다.[1] 이러한 횡단 관심사들은 객체 지향 프로그래밍, 절차적 프로그램에 딱 들어맞지는 않는다.[2]

관심사를 횡단하는 것은 프로그램 내에서 시스템 상호 의존과 밀접한 관련이 있다. 절차적, 함수형 프로그래밍 구조체가 완전히 프로시저 호출을 이루기 때문에 두 가지 목표(구현할 기능과 관련 횡단 관심사)를 동시에 해결할 수 있는 시맨틱이 없다.[3] 이로 인해 횡단 관심사를 해결하는 코드는 서로 관련된 다양한 장소에 분산되거나 중복될 수 밖에 없으며 그 결과 모듈화의 손실이 발생하게 된다[2]

관점 지향 프로그래밍은 횡단 관심사들을 애스펙트캡슐화함으로써 모듈화를 갖는 것을 목표로 한다. 이를 통해 횡단 관심사를 해결하는 코드의 깨끗한 분리와 재사용을 달성할 수 있게 한다.[4] 횡단 관심사에 대한 기초적인 설계를 통해 소프트웨어 공학적 장점으로 모듈화와 단순해진 유지보수가 포함될 수 있다.[5]

[편집]

횡단하는 경향이 있는 관심사들의 예는 다음과 같다:

같이 보기[편집]

각주[편집]

  1. U.S. Patent 6467086, p.4
  2. Kiczales, p.1
  3. Kiczales, p.6
  4. Kiczales, p.2
  5. Li, p.1

참고문헌[편집]

  • Kiczales, Gregor; Lamping, John; Mendhekar, Anurag; Maeda; Lopes, Cristina; Longtier, Jean-Marc; Irwin (1997). “Aspect-Oriented Programming”. 《Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP 1997)》 (Jyvaskyla, Finland): 220–242.  이름 목록에서 |이름5=이(가) 있지만 |성5=이(가) 없음 (도움말)
  • US patent 6467086, Kiczales et. al, "관점 지향 프로그래밍", issued 2002-10-15 
  • Li, Harry; Krishnamurthi, Shriram; Fisler, Kathi (2002). “Verifying Cross-Cutting Features as Open Systems”. 《ACM SIGSOFT Software Engineering Notes》 27 (6): 89–98. doi:10.1145/605466.605481. 
  • Parnas, David L. (December 1972). “On the Criteria To Be Used in Decomposing Systems into Modules”. 《en:Communications of the ACM15 (12): 1053–1058. doi:10.1145/361598.361623. 
  • Tarr, Peri; Ossher, Harold; Harrison, William; Sutton, Stanley M., Jr. (1999). “N Degrees of Separation: Multi- Dimensional Separation of Concerns”. 《Proceedings of the 21st International Conference on Software Engineering》 (Los Angeles, California, USA: en:IEEE Computer Society Press): 107–119. ISBN 1581130740. doi:10.1109/ICSE.1999.841000. 

추가 문헌[편집]

  • Laddad, R. (2003): AspectJ in Action, Practical Aspect-Oriented Programming, Manning Publications Co.

외부 링크[편집]