다시 웹, 백엔드로/스프링

AOP

EnoughTT 2024. 6. 2. 13:40

AOP (Aspect Oriented Programming)

 

  • 관점지향 프로그래밍
  • MVC 웹 어플리케이션에서는 Web Layer, Business Layer, Data Layer 로 정의
    • Web Layer: REST API 제공, Client 중심의 로직 적용
    • Business Layer: 내부 정책에 따른 logic 개발, 주로 해당 부분을 개발
    • Data Layer: 데이터베이스 및 외부와의 연동 처리

 

 

주요 Annotation

 

 

 

횡단 관심

  • AOP 는 메소드들 또는 특정 구역에 반복되는 로직들을 한 곳으로 몰아서 코딩을 할 수 있게 해줌

 

  • 공통적인 기능들 로그
  • 통신
  • 메서드 실행 시간 확인
  • 인코딩, 암호화 기능

 

 

예제

   - 메서드 실행 시 argument와 return 값에 대한 추적 log

RestApiController.java

 

User.java

 

ParameterAop.java

 

 

 

 

 

   - 메서드 실행 시 실행시간 추적

TimerAop.java

 

Timer.java

 

RestApiController.java

 

ParameterAop.java @before, @AfterReturning 어노테이션 주석처리

 

 

 

 

   - 전, 후로 데이터 변경 (많이 쓰이진 않지만 인코딩, 암호화할 경우)

DecodeAop.java

 

RestApiController.java

 

Decode.java

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

feat. 패스트캠퍼스 - Java/Spring 웹 개발 마스터 초격차

'다시 웹, 백엔드로 > 스프링' 카테고리의 다른 글

여러가지 Annotation  (0) 2024.06.02
Object Mapper 활용  (0) 2024.06.02
IoC / DI  (0) 2024.06.01
스프링의 핵심  (0) 2024.05.31
Object Mapper  (0) 2024.05.31