aop

    관점 지향 프로그래밍(Aspect Oriented Programming, AOP)

    💡관점 지향 프로그래밍 등장 배경 프로그래밍을 하다보면 공통적인 기능이 많이 발생하는데 이러한 공통 기능을 모든 모듈에 적용하기 위해선 상속을 이용한다. 하지만 Java에서는 다중 상속이 불가능하며 상속만으로 공통 기능을 부여하기에는 한계가 있다. 예를 들어, 객체마다 핵심 기능을 수행하기 위한 로직과 함께 로깅, 트랜잭션 등의 코드가 있는데 로깅과 트랜잭션 코드는 객체마다 동일한 기능을 수행할 확률이 높고 동일한 코드가 각각의 객체에 포함될 수 있다. 💡 이러한 문제를 해결하기 위해 AOP를 사용한다. AOP는 관점을 기준으로 개발하는 방식을 의미하며 여기서 관점이란 어떤 기능을 구현할 때 '핵심 기능'과 '부가 기능'으로 구분해 각각을 하나의 관점으로 보는 것을 의미한다 💡 핵심 기능은 비스니스 로직..