### 1. AOP의 주요 개념 - **Aspect**: 공통 관심사를 모듈화한 것입니다. 예를 들어, 로깅이나 보안 같은 기능이 이에 해당합니다. - **Join Point**: AOP가 적용될 수 있는 지점으로, 메서드 호출, 객체 생성 등이 포함됩니다. - **Pointcut**: 어떤 Join Point에 Aspect를 적용할지를 정의하는 표현식입니다. - **Advice**: Aspect가 적용되는 방식으로, 특정 Join Point에서 실행될 코드입니다. 종류에는 `Before`, `After`, `Around`, `AfterReturning`, `AfterThrowing` 등이 있습니다. - **Weaving**: Aspect를 애플리케이션 코드에 적용하는 과정으로, 컴파일 시, 로드 시, ..