- aop
공통의 관심 사항을 적용해서 발생하는 의존 관계의 복잡성과 코드 중복을 해소해 주는 프로그래밍 기법
각 클래스에서 공통 관심 사항을 구현한 모듈에 대한 의존 관계를 갖기 보다는 aspect를 이용해 핵심 로직을 구현한 클래스에 공통 기능을 적용
핵심로직을 구현한 클래스는 더 이상 여러 공통 모듈에 의존하지 않는다. 즉, 핵심 로직 구현 클래스에서 공통 모듈을 사용하는 코드를 포함하지 않는다.
aop에서는 해김 로직을 구현한 클래스를 실행하기 전/후에 aspect를 적용하고, 그 결과로 핵심 로직을 수행하면 그에 앞서 공통 모듈을 실행하거나 또는 로직 수행 이후에 공통 모듈을 수행하는 방식으로 공통 기능을 실행한다.
가령, a 클래스의 b() 호출시 어떤 클래스의 함수가 자동응로 동작하게끔 하는것!
함수 실행 전에 혹은 함수 실행 후에 사용자 클랫(aop 클래스)가 실행되도록. 그리고 실행전 후가 아닌
아예 대체도 가능.
즉 a클래스의 b()가 호출되면 무조건 c클래스의 d()가 호출되도록 . . .
이렇게 해서 d() 내부에 a 클래스의 b()가 호출되도록 할 수 있기 때문에 이 경우는
실행 전, 후가 아닌 c 클래스가 a 클래스를 감싸는 프록시 형태가 된다.
pojo 클래스 : 아무런 객체도 상복 받지 않는 순수한 자바 클래스
프래임웍에 의존하지 않는
클래스를 말합니다. 즉 스트럿츠의 경우는 프래임웍을 사용하기 위해
스트럿에서 제공하는 Action클래스를 상속하잖아요. 이런건 포조라고
볼 수 없구, 스프링 같은 경우는 스프링 자원을 이용하고 있더라도
스프링에서 정의한 인터페이스나 클래스를 상속하지 않찮아요.
이럴 경우 포조이구요.
또 쓰래드 클래스를 구현하기 위해 Runnable인터페이스를 상속한다면
이 클래스 또한 포조라고 할 수 있습니다. Runnable클래스를 구현하는
이유가 프레임워크 제약 때문이 아닌 구현 목적 자체(쓰래드)이기
때문입니다.
'개발 > Spring' 카테고리의 다른 글
@Autowired 어노테이션을 이용한 자동 설정 (0) | 2018.02.15 |
---|---|
의존 관계 자동 설정 (0) | 2018.02.15 |
빈 생성 (0) | 2018.02.15 |
@ModelAttribute와 @RequestParam (0) | 2018.02.15 |
@mvc 의 modelMap (0) | 2018.02.15 |