횡단 관심사
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
횡단 관심사는 시스템의 여러 부분에 걸쳐 영향을 미치는 프로그램의 일부로, 객체 지향 프로그래밍과 절차적 프로그래밍에서 모듈화의 어려움을 야기한다. 이러한 관심사들은 코드의 분산 및 중복을 초래하며, 관점 지향 프로그래밍(AOP)을 통해 애스펙트로 캡슐화하여 모듈화를 달성하고 재사용성을 높일 수 있다. 횡단 관심사에는 동기화, 보안, 로깅 등이 있으며, 대한민국에서는 개인정보 보호, 전자정부의 국제화, 인증, 재해 복구 등이 특수한 예시로 제시된다.
더 읽어볼만한 페이지
- 관점 지향 소프트웨어 개발 - 관점 지향 프로그래밍
관점 지향 프로그래밍은 코드의 핵심 기능 외에 로깅, 보안 등의 횡단 관심사를 분리하여 관리하는 소프트웨어 개발 패러다임이다. - 관점 지향 소프트웨어 개발 - AspectJ
AspectJ는 자바 언어의 관점 지향 프로그래밍 확장이자, 확장 메서드, 포인트컷, 어드바이스 등의 기능을 통해 기존 코드 변경 없이 새로운 기능을 추가할 수 있도록 설계되었다. - 관점 지향 프로그래밍 - Nemerle
Nemerle은 객체 지향 및 함수형 프로그래밍 스타일을 혼합하여 사용할 수 있는 프로그래밍 언어이며, 강력한 형식 추론, 메타프로그래밍 시스템, 다양한 프로그래밍 스타일 지원, .NET 플랫폼 라이브러리 접근 용이성 등의 특징을 갖는다. - 관점 지향 프로그래밍 - DTrace
DTrace는 시스템과 애플리케이션의 실시간 동작 추적 및 분석을 위한 동적 트레이싱 프레임워크로, 'D' 언어를 사용하여 작성된 스크립트를 통해 다양한 시스템 이벤트 계측 및 분석을 지원하며 여러 운영체제에 적용되어 시스템 분석 및 문제 해결에 기여한다.
횡단 관심사 | |
---|---|
개요 | |
개념 | 소프트웨어 개발에서 여러 모듈에 걸쳐 나타나는 관심사 |
설명 | 애플리케이션의 핵심 로직에서 분리되어, 전체 시스템에 영향을 미치는 기능 |
예시 | 로깅 보안 트랜잭션 관리 예외 처리 캐싱 모니터링 |
특징 | |
주요 특징 | 코드 중복 발생 가능 모듈성 저하 유지보수 어려움 증가 |
해결 방법 | |
일반적인 해결 방법 | 횡단 관심사 분리 (Separation of Concerns, SoC) 디자인 패턴 (예: 프록시 패턴, 데코레이터 패턴) Aspect-Oriented Programming (AOP) |
Aspect-Oriented Programming (AOP) | 핵심 관심사와 횡단 관심사를 분리하여 모듈화 Aspect를 사용하여 횡단 관심사를 정의하고 적용 코드 재사용성 향상 및 유지보수 용이성 증대 |
횡단 관심사의 중요성 | |
중요성 | 시스템 전체의 안정성 및 보안 강화 코드 가독성 및 유지보수성 향상 비즈니스 로직에 집중 가능 |
2. 배경
횡단 관심사는 시스템의 수많은 다른 부분에 의존하거나 영향을 미쳐야 하는 프로그램의 일부분이다. 애스펙트 개발의 토대를 형성한다.[6] 이러한 횡단 관심사는 객체 지향 프로그래밍, 절차적 프로그램에 딱 들어맞지는 않는다.[7]
횡단 관심사는 소프트웨어 시스템의 여러 부분에 걸쳐 나타나는 공통적인 기능을 의미한다.
횡단 관심사는 프로그램 내에서 시스템 상호 의존과 밀접한 관련이 있다. 절차적, 함수형 프로그래밍 구조체가 완전히 프로시저 호출을 이루기 때문에 두 가지 목표(구현할 기능과 관련 횡단 관심사)를 동시에 해결할 수 있는 시맨틱이 없다.[8] 이로 인해 횡단 관심사를 해결하는 코드는 서로 관련된 다양한 장소에 분산되거나 중복될 수밖에 없으며 그 결과 모듈화의 손실이 발생하게 된다.[7]
3. 횡단 관심사의 예시
횡단 관심사의 예시는 다음과 같다.3. 1. 일반적인 예시
다음은 횡단 관심사에 해당하는 예시이다.3. 2. 대한민국 특화 예시
4. 관점 지향 프로그래밍 (AOP)
횡단 관심사는 시스템의 수많은 다른 부분에 의존하거나 영향을 미치는 프로그램의 일부분이다. 이러한 횡단 관심사는 객체 지향 프로그래밍, 절차적 프로그래밍에 딱 들어맞지 않는다.[7]
횡단 관심사는 프로그램 내에서 시스템 상호 의존과 밀접하게 관련되어 있다. 절차적, 함수형 프로그래밍 구조는 프로시저 호출로 이루어지기 때문에, 구현할 기능과 관련 횡단 관심사라는 두 가지 목표를 동시에 해결할 수 있는 시맨틱이 없다.[8] 이로 인해 횡단 관심사를 해결하는 코드는 관련된 다양한 장소에 분산되거나 중복되어 모듈화를 잃게 된다.[7]
관점 지향 프로그래밍(AOP)은 횡단 관심사를 애스펙트로 캡슐화하여 모듈화를 유지한다. 이를 통해 소프트웨어 공학적 장점을 얻을 수 있다.[10]
4. 1. AOP의 장점
관점 지향 프로그래밍은 횡단 관심사를 애스펙트로 캡슐화하여 모듈화를 추구한다. 이를 통해 횡단 관심사를 처리하는 코드의 분리와 재사용성을 높인다.[9] 횡단 관심사에 기반한 설계는 소프트웨어 공학 측면에서 모듈화와 유지보수 단순화 등의 장점을 제공한다.[10]참조
[1]
논문
[2]
논문
[3]
논문
[4]
논문
[5]
논문
[6]
특허
U.S. Patent 6467086
[7]
문서
[8]
문서
[9]
문서
[10]
문서
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com