AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)는 객체 지향 프로그래밍(OOP)을 보완하는 개념으로, 프로그램의 로직을 핵심 관점과 부가 관점으로 나누어 모듈화하는 방법이다. ( 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것 )핵심 관점: 주된 비즈니스 로직부가 관점: 데이터베이스 연결, 로깅, 파일 입출력 등 핵심 로직을 보조하는 기능 AOP는 반복적으로 나타나는 코드, 즉 흩어진 관심사(Crosscutting Concerns)를 하나의 Aspect로 모듈화하여 핵심 로직에서 분리하고, 이를 재사용 가능하게 만든다. 결국, AOP는 코드의 중복을 줄이고, 관심사를 명확히 분리하여 유지보수성을 높이는 목적을 가지고 있다.