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