측면 지향 프로그래밍에 대한 나의 2 센트

AOP (aspect-oriented programming)는 특정 정책을 정의하기 위해 채택 할 수있는 프로그래밍 스타일로, 애플리케이션에서 교차 문제를 정의하고 관리하는 데 사용됩니다. 본질적으로 애플리케이션이 변경 사항에 적응할 수 있도록하는 프로그래밍 패러다임입니다.

따라서 애플리케이션에서 AOP를 활용하면 관심사 분리를 통해 애플리케이션의 모듈성을 높일 수 있습니다. AOP를 사용하면 코드의 가독성과 유지 관리 성을 개선하여 코드 혼란을 줄일 수 있습니다.

AOP는 새로운 프로그래밍 패러다임 일 뿐이며 어떤 식 으로든 OOP를 대체하지 않습니다. 오히려 모듈화를 달성하고 코드 혼란을 줄이는 또 다른 방법을 제공하여 OOP를 보완합니다.

AOP에서 측면은 관심사의 모듈화로 정의 될 수 있습니다. 따라서 이러한 스타일의 프로그래밍을 측면 지향 프로그래밍이라고합니다. OOP에서는 클래스를 활용하여 모듈화를 달성 할 수 있습니다. 반대로 AOP에서 측면을 통해 모듈화를 달성 할 수 있습니다.

AOP의 본질은 일반적인 기능을 캡슐화하는 동시에 애플리케이션에서 필요에 따라 이러한 기능을 활용할 수 있도록하는 것입니다. 이러한 공통 기능 또는 교차 절단 문제에는 보안 관리, 로깅, 알림, 트랜잭션 관리, 예외 관리 등이 포함됩니다. 널리 사용되는 AOP 프레임 워크에는 PostSharp, Spring 프레임 워크, Castle Windsor, Microsoft Unity 프레임 워크, 정책 주입 블록 등이 있습니다.

AOP 용어에 익숙해지기

AOP로 작업 할 때 몇 가지 주요 개념에 익숙해야합니다. 여기에는 다음이 포함됩니다.

  • 측면 : 교차 절단 문제 또는 재사용 가능한 모듈. 애플리케이션에 하나 이상의 측면이있을 수 있습니다.
  • 소개 : 특정 유형에 대한 추가 메서드 및 특성을 선언하는 데 사용되는 기능입니다.
  • 연결 지점 : 애스펙트를 연결할 수있는 지점입니다.
  • 조언 : 특정 연결 지점에서 수행되는 작업입니다. 또한 메서드 실행 이전 또는 이후에 수행해야하는 작업을 정의하는 데 사용됩니다.
  • 위빙 : 복잡한 코드에 대한 솔루션을 제공합니다. 이를 통해 응용 프로그램의 다른 개체와 다른 측면을 연결할 수 있습니다. 위빙이 발생하는시기에 따라 컴파일 시간,로드 시간 또는 런타임 위빙이있을 수 있습니다.
  • 대상 개체 : 대상 개체는 응용 프로그램의 하나 이상의 측면에서 권장하는 것으로 정의 될 수 있습니다.
  • Pointcut : 직조 규칙을 지정합니다. 즉, 특정 조언이 애플리케이션에 적용될 수있는 결합 지점을 정의하는 데 사용됩니다.

어쨌든 AOP를 사용해야하는 이유는 무엇입니까?

OOP는 이미 코드의 재사용 성과 유연성을 촉진합니다. 그렇다면 왜 AOP가 필요합니까? AOP는 OOP의 모든 이점도 포함하는 프로그래밍 패러다임입니다. 여기에 추가하여 느슨한 결합을 촉진하고 애플리케이션 코드의 변경없이 필요할 때 플러그 형 측면을 사용하도록 애플리케이션을 활성화 할 수 있습니다. AOP를 사용하면 애플리케이션의 비즈니스 로직에 집중하는 동시에 측면을 비즈니스 로직에 연결할 수 있습니다. AOP 사용의 주요 이점 중 하나는 aspect를 한 번만 작성하면 애플리케이션에서 필요할 때마다 재사용 할 수 있다는 것입니다. 따라서 AOP는 애플리케이션 소스 코드의 복잡성을 줄이고 코드를 깔끔하게 만드는 좋은 방법입니다. AOP의 이점은 다음과 같습니다.

  • 코드 혼란 감소
  • 코드 중복 감소
  • 더 쉬운 코드 유지 관리
  • 더 빠른 개발
  • 코드 가독성 향상

내 지원서에서 AOP를 어떻게 달성합니까?

애플리케이션에서 AOP를 구현하기 위해 가장 먼저해야 할 일은 비즈니스 로직에서 애플리케이션의 측면을 분리하는 것입니다. 측면을 디자인 할 때 염두에 두어야 할 가장 중요한 것은 측면이 독립적이어야하고 애플리케이션에 대한 종속성이 없어야한다는 것입니다. 또한 서로 독립적 인 측면을 테스트 할 수 있어야합니다. 다음으로 이러한 측면을 애플리케이션에서 필요한 곳에 짜서 애플리케이션의 소스 코드에 적용해야합니다. 애플리케이션에서 AOP를 구현할 수있는 방법 중 하나는 속성을 사용하는 것입니다.