AOP/관점 지향 프로그래밍/Aspect Oriented Programming

    반응형

    반복된 로직(공통 관심사)을 한 곳으로 몰아서 코딩할 수 있도록 해준다.

    ==> AOP란, 핵심 Business 로직에서 공통 관심사를 분리하는 것!

     

    핵심 관심사와 공통 관심사

    핵심 관심사

    핵심 로직에 대한 관심사, 핵심 기능

    공통 관심사

    애플리케이션 전반에 걸쳐 공통적으로 사용되는 기능들에 대한 관심사

    ex) Method Parameter, 실행시간 등 로깅, 보안, Parameter Encode 등...

     

    AOP를 활용하지 않으면

    실질적 로직에 공통 기능을 반복 코딩 해야 한다.

    공통 기능에 수정이 필요해진다면, 모두 수정해야 한다.

     

    대표적으로, Spring에서 제공하는 @Transactional

     

     

     

    AOP의 필요성

    1. 간결한 코드 유지

    2. 객체 지향적인 코드 구현

    3. 코드 재사용

    항상 깔끔하고, 중복되는 코드를 분리하여 재사용 할 수 있도록 고민하자!

     

    주요 Annotation

    @Aspect: AOP를 정의하는 Class에

    @Pointcut

    @Before/After

    @AfterReturning

    @AfterThrowing

    @Around

     

    반응형

    댓글