Spring boot에서 Annotation 기반의 AOP

강의를 듣는데 Spring boot에서 Annotation 기반의 AOP 이라는 주제가 나왔다.

예를들어 method의 총 실행시간을 측정을 하기 위해서는 어떻게 해야할까? 단순하게 생각하면 아래와 같은 코드를 기존코드에 넣어야 할것이다.

근데 위와 같은 코드를 넣어야 할 곳이 여러곳이라면 어떻게 하겠는가?

매번 method의 처음과 끝에 저 코드를 넣어야 할 것이다.

DRY 라고 뭔가 중복되는 코드가 들어간다.

Code smell 나는 코드이다.

그렇다면 이걸 어떻게 개선할 수 있을까?

AOP(Aspect-oriented programming) 로 이걸 해결할 수 있다.

AOP의 정의에 대해서는 Wiki를 참고하길 바란다.

Spring boot에서 AOP를 사용하기 위해서는 gradle에 Dependency를 추가해줘야 한다.

Version 명시를 안해주는건 Spring boot에서 버젼관리를 해주기 때문에 굳이 명시할 필요가 없기 때문이다.

compile('org.springframework.boot:spring-boot-starter-aop')

인제 timeCheck 하던 부분을 Annotation 기반으로 만들기 위해서 Annotaion Class, Aspect class를 만들어준다.

Written on October 28, 2018