티스토리 뷰

it

스프링 프레임워크개요 1-2 AOP

ITs Story biaos 2022. 8. 15. 00:39

AOP(Aspect Oriented Programming)

관점 지향 프로그래밍

핵심 관심(Core Concerns)에 대한 관점과 횡단 관심(Cross Cutting Concerns)에 대한 관점들로 프로그램을 분해하여 모듈화를 더 잘 구현하도록 함.

핵심 관심 : 본질적인 비즈니스 요구사항

횡단 관심 : 여러 개의 모듈에 걸쳐 수행될 시스템의 부가적인 업무

로깅이나 인증관련 코드를 각 모듈에 하드 코딩한다면?

관련 정책이 변경되었을 때 해당 소스를 모두 찾아 변경해야 하는 번거로움이 발생함.

객체지향적으로 작성한 소스 코드 내에 산재하여 OOP의 장점인 컴포넌트의 독립성, 재사용성, 단위 테스트 용이성, 리팩토링 용이성 등이 저하됨.

AOP의 용어

Target : 핵심 관심을 구현한 코드

Advice : 횡단 관심을 구현한 코드

Joinpoint : Advice Target에 적용되는 지점

Pointcut : Advice가 어느 Joinpoint에 적용되어야 하는지를 정의한 표현식

Weaving : Advice Target에 실제 적용하여 애플리케이션을 구현하는 일

컴파일 시점, 클래스 로딩 시점, 런타임 시점의 세가지로 제공됨

댓글