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