AOP 2

Custom Annotation을 AOP로 처리하기

Custom Annotation은 사용할 수 있는 범위가 정말 넓다. 속성은 눈에 명확히 보이면서, 복잡한 로직은 한 꺼풀 숨겨두고 싶을 때 유용하게 쓸 수 있다. 이번에 Custom Annotation을 사용했던 케이스는 조건에 따라 분기처리가 필요하고, 비즈니스 로직과 직접적인 연관이 없는 앞단의 필터링 작업이면서, 두 곳에서 중복 발생되는 작업이었다. 이런 경우에 if문을 사용할 경우, 비즈니스 로직과 얽혀 코드가 복잡해진다. AOP만 사용할 경우, 필터링 작업이 눈에 보이지 않아 추후에 혼란을 야기할 수 있다. 따라서, 코드는 분리하면서, 작업을 따로 정의해두었다는 표시도 눈에 잘 띄게 해주는 방법이 Custom Annotation + AOP 방식이라고 판단했다. Custom Annotation ..

멀쩡하던 파라미터 값이 중간에 자꾸 바뀐다면?

1. AOP, Interceptor를 의심해보자. 눈에 안보이는 변경은 AOP로 처리 되어있을 확률이 높다. 상위 클래스나 인터페이스까지 쭉 살펴보자. 2. get 메서드 시그니처 안에 비즈니스 로직을 넣었는지 확인하자. get 메서드는 Serialize 시 저절로 불리는 경우가 많다. Logging 등의 작업 중 Serialize가 일어나면 저절로 메서드가 불리며 실행된다. (이런 작업은 1번의 경우처럼 AOP로 숨겨져 있기도 하다.) 값을 변경하는 작업일 경우, get 메서드와 실제 작업이 실행되는 메서드는 서로 분리하는 게 속편하다.