Spring Framework

Spring Framework - AOP

상상날개 2022. 6. 22. 17:02

1. AOP(Aspect Oriented Programming)

  • 관심지향 프로그래밍으로 정의한다
  • 애플리케이션 핵심 업무 로직에서 공통 기능 로직을 분리하는 것이다

 1) 핵심 관심 사항 (Core concern)

  - 애플리케이션의 주 목적을 달성하기 위한 핵심 로직에 대한 관심사를 말한다

 

 2) 공통 관심 사항 (Cross-cutting concern)

  - 애플리케이션 전반에 걸쳐 공통적으로 사용되는 기능을 말한다

  - 로깅, 보안, 트랜젝션 등이 있다

 

2. AOP가 필요한 이유

  • 코드의 간결성을 유지
  • 객체 지향 설계 원칙에 적합한 코드 구현
  • 코드의 재사용

※ 트랜젝션(Tranjection) : 데이터를 처리하는 하나의 작업 단위를 말한다

  • 트랜젝션에는 커밋(commit) 과 롤백(rollback) 기능이 있다
    - 커밋은 모든 작업이 성공적으로 수행되었을 경우 수행한 작업을 데이터베이스에 반영하는 것이다
    - 롤백은 작업 중 하나라도 실패하면 이전에 성공한 작업들을 작업 수행 이전으로 되돌리는 것이다
  • 여러 작업을 하나의 트랜젝션으로 묶으면 코드는 간결해지고 재활용성은 높아진다