본문 바로가기

Development/Spring

DDD 기반의 AOP에서 비즈니스 로직이 가지는 의미

AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)에서 중심적 관심사(Primary Concerns)는 횡단적 관심사(Crosscutting Concerns)와 대비되는 개념으로, 중심적 관심사는 해당 소프트웨어존재 목적으로서 소프트웨어를 통해 해결하고자 하는 현실세계의 문제를 뜻한다.

 

DDD(Domain Driven Design, 도메인 주도 설계)를 통해 중심적 관심사도메인(영역) 별로 분류하고, 각각의 도메인을 해결하기 위한 의사결정을 수행하는 로직이 비즈니스 로직이다. 반면 중심적 관심사의 원활한 처리와 가공을 위한 횡단적 관심사의 반복적인 처리는 최소화하기 위해, annotation(외부 소프트웨어에 처리 내용을 지시하는 명령)을 활용하여 최대한 spring framework위임한다. spirng framework에서는 비즈니스 로직 처리 전후에 advice 메소드를 호출해 횡단적 관심사를 처리할 수 있는 AOP 기능을 제공한다.

 

비즈니스 로직을 통해 해결하고자 하는 문제는 해당 소프트웨어의 개발 목적에 따라 변화한다. 예를 들어 온라인 쇼핑몰이라면 이를 통해 다수의 고객에게 물건을 판매하여 이윤을 극대화하는 것이 소프트웨어의 목적이다. 따라서 오프라인 상점에서 수행해야 하는 재고 관리, 상품 진열, 결제, 상품 전달(배송), 고객 관리 등의 업무(현실세계문제)를 온라인 쇼핑몰에서도 동일하게(혹은 보다 효율적으로) 처리할 수 있어야 한다. 현실세계와 상이한 메커니즘을 가지는 소프트웨어에서 이를 효율적으로 구현하기 위한 수행 방법과 절차가 비즈니스 로직이다.