1. AOP (Aspect Oriented Programming) - AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 따라서 AOP를 통해 부가 기능을 모듈화할 수 있다. AOP를 사용하면 핵심 기능과 분리하여 부가 기능 중심으로 설계, 구현이 가능해진다. - 스프링에서 부가기능은 "어드바이스", 부가기능을 적용할 위치를 "포인트컷" 이라고 한다. 다음은 AOP를 통해 부가기능을 모듈화한 코드이다. 여기서 부가 기능은 사용자의 API 수행 시간을 측정하는 것이다. 부가 기능은 excute 메서드에 구현되어있다. @Arou..