첫 번째 기능은 의존성 주입(Dependency Injection)으로, 약어로 DI이다.
의존성 주입은 '의존하는 부분을 외부에서 주입하는 것'이다.
3-2에서 자세히 설명.
두 번째 기능은 관점 지향 프로그래밍(Aspect Oriented Programming)으로, 약어로 AOP이다.
공통 처리 등의 '횡단적 관심사'를 추출하고 프로그램의 여러 곳에서 호출할 수 있게 설정함으로써 개발자는 실현해야 할 기능인 '중심적 관심사'에만 집중해서 작성하면 되는 구조이다.
실현해야 할 기능을 나타내는 프로그램이다.
본질적인 기능은 아니지만 품질이나 유지보수 등의 관점에서 반드시 필요한 기능을 나타내는 프로그램이다.