스프링 부트 강의를 들으면서, AOP에 관련된 내용이 문제 상황에 적용하는 방법에 대한 강의 위주로 나와 있어서 AOP에 대한 개념과 틀을 잡고 싶어서 글을 쓰게 되었습니다. 1. AOP? 인프라 혹은 부가 기능의 모듈화(로깅, 트랜잭션..etc) Aspect Oriented Programming의 약자로, **관점 지향 프로그래밍**이란 뜻입니다. 프로그래밍 과정에서 공통 기능을 모든 모듈에 효율적으로 적용하기 위해 개발된 방법입니다. 상속이나 위임을 통해 공통 기능을 모듈에 적용할 수 있지만, JAVA에서는 다중 상속이 불가능해서 한계가 있고, 기능을 구현하는 부분에서 핵심코드와 공통 기능 코드가 섞여 있어서 모듈화가 되지 않아 가독성/유지보수성이 좋지 않습니다. 그래서 공통 기능을 모듈화한 후, 공..