더북(TheBook)

공통 모듈을 재사용하는 AOP 지원

애플리케이션 대부분은 특정 기능을 책임지는 모듈 여러 개로 구성됩니다. 하지만 각 모듈은 대체로 자신의 핵심 기능 외에도 로깅이나 트랜잭션 관리, 보안 등 시스템 서비스를 수행해야 하는 경우가 많습니다. 이런 시스템 서비스는 시스템의 여러 컴포넌트와 관련되므로 이를 공통 관심사(cross-cutting concerns)라고 합니다. 애플리케이션 내부에서 공통 관심사를 비즈니스 로직으로 분리하고, 이 공통 관심사를 효과적으로 애플리케이션에 삽입하는 기술이 관점 지향 프로그래밍입니다. 즉, 핵심적인 기능에서 부가적인 공통 관심사를 분리하여 애스팩트(Aspect)라는 독특한 공통 모듈을 만들어 설계하고 개발하는 방법입니다.

의존성 주입이 애플리케이션의 객체 간 결합도를 낮춘다면, AOP는 애플리케이션 전체에 걸쳐 사용되는 기능을 애스팩트에 담아 재사용할 수 있게 합니다. 이것으로 개발자는 핵심 관점 코드에 비즈니스 기능만 구현하면 되기 때문에 개발 과정이 간소해졌습니다. 또한 공통 모듈을 각 독립된 모듈로 중복 없이 작성하고, 이를 적합한 위치인 XML 설정 파일에 설정해서 핵심 관점 코드와 결합하여 서로 독립된 다차원의 모듈로 만들 수 있습니다.

AOP는 현재 주류인 객체 지향을 대신하기보다 보완하는 패러다임입니다. 객체 지향에 의존 관계 주입과 AOP를 조합시켜 더 유연하고 견고한 소프트웨어를 개발할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.