면접 - 스프링프레임워크

개발자 면접 질문 - AOP 정의

snow-line 2020. 12. 3. 20:45
반응형

1. AOP

 - 관점을 기준으로 프로그래밍 하는 기법

 - 공통 관심 사항을 구현한 코드를 핵심 로직을 구현한 코드 안에 삽입하는 것

 

2. 주요 용어

 - Joinpoint : Advice를 적용 가능한 지점을 의미한다. (메서드 호출, 필드 값 변경 등)

 - Pointcut : Joinpoint의 부분 집합. 실제 Advice가 적용되는 Joinpoint를 나타낸다.

 - Advice : 언제 공통 관심 기능을 핵심 로직에 적용할 지를 정의한다.

 - Weaving : Advice를 핵심 로직 코드에 적용하는 것을 의미한다.

 - Aspect : 여러 객체에 공통으로 적용되는 공통 관심 사항을 의미한다.

 

* Weaving 방식

- 컴파일시

- 클래스 로딩시

- 런타임 시 (프록시를 이용하여 AOP를 적용한다.)

 

* Advice 종류

- Before Advice : 대상 객체의 메서드 호출 전 공통 기능 실행

- After Returning Advice : 대상 객체의 메서드가 예외 없이 실행한 이후 공통 기능 실행

- After Throwing Advice : 대상 객체의 메서드를 실행하는 도중 예외가 발생한 경우에 공통 기능 실행

- After Advice : 대상 객체의 메서드를 실행하는 도중 예외가 발생했는지의 여부와 상관 없이 메서드 실행 후 공통 기능 실행

- Around Advice : 대상 객체의 메서드 실행 전, 후 또는 예외 발생 시점에 공통 기능 실행

반응형