본문 바로가기
정보관리기술사/★ 129회 기출문제 풀이 ★

(129 관리 1-3) AOP(Aspect Oriented Programming)의 정의, 구성, 기대효과

by 두음달인 2023. 2. 7.
반응형


찾아본 자료 중에, IT위키와 "관점지향 프로그래밍(AOP) 소개와 응용" 논문 내용이 가장 마음에 들어 관련 내용 위주로 포스팅합니다.
제가 시험을 봤다면, 이 문제는 Skip 했을 듯 합니다. 어렵네요. ^^

AOP(Aspect Oriented Programming)의 정의, 구성, 기대효과

AOP, 관점 지향 프로그래밍 개념

 

객체를 핵심관심과 횡단관심으로 구분하여 처리하는 프로그래밍 기법

횡단 관심사(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임
  • 핵심 기능(Core Concerns, Primary Concerns): 핵심 업무 로직을 수행하는 기능
  • 부가 기능(Cross-cutting Concerns): 핵심 기능을 도와주는 부가적인 기능(로깅, 보안 등)

 

AOP 개념도

출처 : IT위키

AOP 구성도와 구성 요소

 

출처 : IT위키

 

용어 설명
Joinpoint
  • 메소드를 호출하는 '시점', 예외가 발생하는 '시점'과 같이
    애플리케이션을 실행할 때 특정 작업이 실행되는 '시점'을 의미
Advice
  • Joinpoint에서 실행되어야 하는 코드
  • 횡단관점에 해당함 (트랜잭션/로그/보안/인증 등..)
Target
  • 실질적인 비즈니스 로직을 구현하고 있는 코드
  • 핵심관점에 해당함 (업무로직)
Pointcut
  • Target 클래스와 Advice가 결합(Weaving)될 때 둘 사이의 결합규칙을 정의하는 것이다
  • 예로 Advice가 실행된 Target의 특정 메소드 등을 지정
Aspect
  • Advice와 Pointcut을 합쳐서 하나의 Aspect라고 한다.
  • 즉 일정한 패턴을 가지는 클래스에 Advice를 적용하도록 지원할 수 있는 것을 Aspect라고 한다.
Weaving
  • AOP에서 Joinpoint들을 Advice로 감싸는 과정을 Weaving이라고 한다.
  • Weaving 하는 작업을 도와주는 것이 AOP 툴이 하는 역할이다.
    Aspect(부가기능)와 Application(핵심기능)의 Linking을 하는 과정이다.
    해당 객체들을 묶어 새로운 객체를 생성한다.

 

AOP 기대 효과

 

모듈에 대한 책임 소재 명확
느슨한 결합도로 모듈화를 보다 높일 수 있는 방법 제공
시스템 수정 용이

 

 

참고 자료

 

관점 지향 프로그래밍 - IT위키 (itwiki.kr)

 

IT위키

IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키

itwiki.kr

 

"관점지향 프로그래밍(AOP) 소개와 응용"

JAKO200606140754676.pdf (koreascience.or.kr)

 

[Spring] 스프링 AOP (Spring AOP) 총정리 : 개념, 프록시 기반 AOP, @AOP (tistory.com)

 

[Spring] 스프링 AOP (Spring AOP) 총정리 : 개념, 프록시 기반 AOP, @AOP

| 스프링 AOP ( Aspect Oriented Programming ) AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로

engkimbs.tistory.com

 

관점 지향 프로그래밍 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)

 

관점 지향 프로그래밍 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 컴퓨팅에서 관점 지향 프로그래밍(aspect-oriented programming, AOP)은 횡단 관심사(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그

ko.wikipedia.org

 

002. IoC, AOP , DI, POJO 의 개념 :: Mon L'étrange voyage (tistory.com)

 

002. IoC, AOP , DI, POJO 의 개념

1. IoC (Inversion of Control) IoC 란 코드의 흐름을 제어하는 주체가 바뀌는 것이다. 코드의 흐름을 제어한다는 것은 여러 행위를 포함한다. 오브젝트를 생성하는 것, 오브젝트의 생명주기를 관리하는

mojjisoft.tistory.com

 

스프링(Spring) 프레임워크 기본 개념 강좌 (2) - 주요 구성 요소 & DI (ooz.co.kr)

 

스프링(Spring) 프레임워크 기본 개념 강좌 (2) - 주요 구성 요소 & DI

1. 스프링의 핵심 개념 * DI * IoC * AOP & AOP Proxy * AOP in Spring 1) 주요 구성 요소 * IoC / DI * AOP * PSA - 용어 설명 - * Plain Old Java Object 혹은 POJO는 처음에 javax.ejb 인터페이스를 상속받지 않은, 무거운 EJB와

ooz.co.kr

 

반응형

댓글