AOP

Shaun·2022년 2월 20일
1

aop

목록 보기
2/2
post-thumbnail

AOP란?

  • 스프링이 아닌 방법론 이다.

  • 이것을 구현할떄 스프링이 도움을 준다(DI)

AOP

  • 코드를 작성할때 메인기능을 제외한 다른 코드들(개발자나 운영자가 필요로 하는코드) 들이 추가된다.

  • 지금까지 해왔던 객체지향 관점이 아닌 다른관점에서 보는 시선으로 접근한다.

  • 주 업무를 위해 보조 업무들이 필요하다(Ex:로그처리,보안처리,트랜잭션)

  • 보통 프로그램 진행방향이 위에서 아래로 진행되기때문에 그와는 반대가 되는방향으로 붙였다 뗄수 있어야 한다해서 Cross-Cutting Concern(보조업무) 라고도 불린다.

  • 예전 방식은 코드를 직접입력하고 필요에따라 주석 처리를 하던지 코드를 직접 수정하는 방식으로 진행됐다. 이렇게 진행될경우 코드를 직접 가지고 있어야하며 많은 불편함이 있다. 이것을 해결하고자 나온 방법론이 AOP이다.

  • 예전에는 직접 Core Concern 을 사용했다면 AOP에서는 프록시(가운데있는)를 통해서 사용하도록 한다.

  • 흐름상 프록시를 통해 사용하면, CCC를 먼저 사용을하고 Core Concern 을 사용한뒤 다시 CCC를 사용한다.(Cross -cuttiing Concern)

  • 주업무와 보조업무를 분리시킨 방법이다.

  • 프록시에 설정할 보조업무들 설정 방식이다. 필요에따라 다양하게 구성 할수있다.

조인포인트/위빙/포인트컷

  • AOP의 동작원리는 프록시를 통한 CCC와 CoreConcern 의 사용이다.

  • 보조업무(노란색부분) 과 CoreConcern 부분(메인업무) 을 엮는다 해서 위빙 이라한다.

  • 프록시에서 연결해야할 포인트(CoreConcern), 즉 타겟 을 조인 포인트라 한다.

  • CoreConcern 안에 조인포인트들중에 특정한 조인포인트만 사용하고싶으면 포인트컷을 사용하면 됀다.(지정을 하지 않으면 CoreConcern 안에 있는 메서드들이 모두 조인포인트가 됀다.)

profile
호주쉐프에서 개발자까지..

0개의 댓글