관심사(Concern)#

1. 개념 : 전체적인 소프트웨어 시스템의 목적을 달성하기 위해 처리해야 하는 구체적인 요구사항이나 고려사항
2. 종류
  • 핵심 관심사(core Concern) : 각 모듈에서 수행해야 하는 기본적이고 대표적인 업무처리 기능을 취급
  • 횡단 관심사(cross-cutting Concern) : 여러개의 모듈에 걸치는 시스템 전체적인 부가적인 요구사항을 다룸
    • 사용되는 경우 : 인증, 로깅, 자원 공유, 성능, 메모리 관리, 자료의 영속성, 보안, 다중 스레드 처리, 트랜잭션 무결성, 오류검사 등
    • 처리방법 : EJB, 동적 프록시(dynamic proxy) 사용

관점지향 프로그래밍의 혜택#

  1. 각 모듈에 대한 명확한 책임 소재
  2. 고도의 모듈화
  3. 시스템 개선의 용이
  4. 설계 결정 시점의 연기
  5. 코드 재사용의 확대
  6. 향상된 적시 시장 출시
  7. 기능 구현의 비용 감소

관점지향 프로그래밍의 결론#

  1. 관점지향 프로그래밍에 의해 프로그램의 흐름을 파악하기 어렵게 된다.
  2. 관점지향 프로그래밍이 새로운 문제를 해결하지는 못한다.
  3. 관점지향 프로그래밍은 서투른 설계를 조장하지는 않는다.
  4. 잘 만든 객체 지향 프로그래밍의 추상 인터페이스가 해결할수 있는 부분 이상을 다룰수 있다.
  5. 관점지향 프로그래밍 컴파일러가 단순히 핵심 구현을 임시로 수선하지는 않는다.
  6. 관점지향 프로그래밍은 체계적이고 통제된 방법으로 캡슐화를 방해한다.
  7. 관점지향 프로그래밍이 객체 지향 프로그래밍을 대체하지는 않는다.

AspectJ#

  • cross-cutting(횡단요소)
    1. 동적횡단
    2. 정적횡단
  • 횡단요소
    1. join point(결합점) - AOP에 의해 해당 메소드가 호출되는 부분, 시스템에서 구별이 가능한 실행지점
      • 노출된(exposed) 결합점 - 교차점에서 선택할수 있는 결합점(메소드 호출, 메소드 실행, 객체 생성, 필드 접근, 예외처리)
    2. pointcut(교차점) - joinpoints들의 묶음, 자바의 메소드 선언과 유사
    3. Advice(충고) - joinpoints에서 호출되는 코드, 자바의 메소드 구현과 유사
    4. introduction(도입)
    5. 컴파일 시점 선언
    6. Aspect(애스펙트) - advice와 pointcuts의 모음, 자바의 클래스와 유사
    7. Weaving - 분리된 실제 비즈니스 로직과 AOP로직을 결합시키는 것.
    8. Target - 핵심 비즈니스 로직을 구현하는 클래스

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-10) was last changed on 15-Jun-2007 11:11 by DongGukLee  
G’day (anonymous guest) My Prefs

Referenced by
AspectOrientedProgra...

JSPWiki v2.8.4