728x90
AOP(Aspect oriented Programming)
AOP는 관점 지향 프로그래밍언어로 객체지향 프로그래밍의 뒤를 이은 또 하나의 프로그래밍 언어 구조입나다.
(객체지향언어(OOP)를 안쓰고 AOP를 쓰는 것이 아니라 OOP도 쓰면서 AOP도 같이 씀)
-문제를 해결하기 위한 핵심관심사항과 전체에 적용되는 공통관심사항을 기준으로 프로그래밍함으로써 공통모듈을 여러 코드에 쉽게 적용할 수 있도록 지원하는 기술
-공통으로 사용하는 기능들을 모듈화하고 해당 기능을 프로그램 코드에서 직접 명시하지 않고 선언적으로 처리하여 필요한 컴포넌트에 계층적으로 다양한 기능들을 적용
CC(Core Concern)
- 주 관심사항(핵심 관심사항)
CCC(Corss Cutting Concern)
- 공통 관심사항(Logging, transaction 등)
간단한 코드로 예를 들면
Man.java
package com.test01;
public class Man {
public void classWork() {
System.out.println("출석한다");
try {
System.out.println("컴퓨터를 켜서 뉴스본다. ");
}catch(Exception e) {
System.out.println("쉬는날이었다....");
}finally {
System.out.println("집에 간다.");
}
}
}
Woman.java
package com.test01;
public class Woman {
public void classWork() {
System.out.println("출석한다");
try {
System.out.println("컴퓨터를 켜서 주식본다. ");
} catch (Exception e) {
System.out.println("쉬는날이었다....");
} finally {
System.out.println("집에 간다.");
}
}
}
MTest.java
package com.test01;
public class MTest {
public static void main(String[] args) {
Woman w = new Woman();
Man m = new Man();
System.out.println("여학생 입장");
w.classWork();
System.out.println("-----");
System.out.println("남학생 입장");
m.classWork();
}
}
실행결과
해당 코드에서 여학생과 남학생이 입장했을때의 행동을 예로 들어 보았습니다.
여학생과 남학생 모두 출석을 하고나서 마지막에 집에 간다는 공통적인 부분이 있지만 컴퓨터를 키고 나서 주식을 보는것과 뉴스를 보는 것으로 나뉩니다.
여기에서 출석하는 것과 집에 가는것을 공통관심사항(CCC)라고 하고 주식을 보는것과 뉴스를 보는것을 주 관심사항(CC) 라고 합니다.
728x90
'Java 관련 > Spring Legecy' 카테고리의 다른 글
[Spring] AOP(Aspect Oriented Programming) (0) | 2022.03.26 |
---|---|
[Spring] AOP(joinpoin, pointcut, advice, aspect, weaving) (0) | 2022.03.25 |
[Spring] Annotation(@Component) (0) | 2022.03.23 |
[Spring] Annotation(@Autowired, @Qualifier) (0) | 2022.03.22 |
[Spring] Spring Annotation(스프링 어노테이션) (0) | 2022.03.21 |