Spring AOP 어디다 쓰면 좋을까?

어드바이스 종류 별로 생각해 보는게 좋을 듯 합니다. 어드바이스 특징이나 기타 자세한 설명은 생략하겠습니다. 제 블로그 어딘가에 다 있을 겁니다.ㅋ

1. Before 어드바이스
– 보안에 쓰면 좋겠다. 해당 메소드 실행 전에 인증과 권한을 체크해서, 없으면 예외를 던지도록 할 수 있겠다.
– 로깅은 어떨까.. 어떤 메소드를 실행하기 전에 해당 메소드 실행하겠다고 로그 메시지를 남기는거..

2. After returning 어드바이스
– 결과값을 확인해야 할 경우. 결과값이 특정 값이면 예외를 던지도록…
– 흠.. 매우 사용처가 난감하네. 이미 메소드 호출 한 다음이라.. 뭘 해야 한담.
– 메소드 호출 한 뒤에 로그 메시지를 남기도록 할까?

3. Throws 어드바이스
– 예외 로그 처리. 특정 예외가 발생했을 때 로그를 남길 수 있겠다.
– 예외 계층 구조를 바꿀 수 있겠다. Hibernate 예외를 스프링 예외로 변환하는 작업을 해본적이 있었지..

4. Around 어드바이스
– 트랜잭션 처리는 아마 이 녀석이 할 것 같다. 특정 메소드 실행 전에 트랜잭션 열고, 메소드 호출하고 트랜잭션을 커밋하거나 롤백해야 하니까.
– 로깅을 이걸로 할까. 그러면 Before, After, Throws에서 하려던 로깅을 이걸로 다 할 수 있으니..
– 성능측정. 스프링 레퍼런스에 StopWatch 예제가 있었던 것 같다. 개발 할 때만 만들어서 돌려보고 병목지점 발견하는데 요긴하게 쓸 수 있을 것 같기도 하다.

전반적으로 AOP는 기존 코드를 건드리지 않고 애플리케이션에 특정 행위를 추가할 수 있다는 것이 매력적인 것 같다.

4 thoughts on “Spring AOP 어디다 쓰면 좋을까?”

  1. 우아~안그래도 지금 AOP부분을 보면서 이런 저런 생각하다가 기선님 블로그를 왔는데 딱 알맞는 글을 포스팅해 주셨네요.

    감사합니다. ^^

  2. 잠시 신경쓸일이 있어서.. 자주 못들어왔었는데.. 이런 간단하지만 개념을 잡을수있는

    좋은 글을 또 올려주셨네요..

    감사합니다 ^^;;; AOP 너무 좋고 너무 신기하네요 ^^;;

Leave a Reply

Your email address will not be published. Required fields are marked *