rhanziy

공통관심사항(cross-cutting concern)과 AOP(Aspect Oriented Programming) 본문

Java

공통관심사항(cross-cutting concern)과 AOP(Aspect Oriented Programming)

rhanziy 2022. 1. 6. 14:58

어플리케이션은 다양한 공통 기능을 필요로 한다. 로깅과 같은 기본적인 기능에서부터 트랜잭션이나 보안과 같은 기능에 이르기까지 어플리케이션 전반에 걸쳐 적용되는 공통 기능이 존재한다. 이들 공통 기능들은 어떤 특정 모듈에서만 필요로 하는 것이 아니라, 어플리케이션 전반에 걸쳐 필요한 기능이다. 또한, 이런 공통 기능들은 어플리케이션의 핵심 비즈니스 로직과는 구분되는 기능이다. 핵심 비즈니스 기능과 구분하기 위해 공통 기능을 공통 관심 사항(cross-cutting concern)이라고 표현하며, 핵심 로직을 핵심 관심 사항(core concern)이라고 표현한다.

 

공통 관심 사항들을 객체 지향 기법(상속이나 위임 등)을 사용해서 여러 모듈에 효과적으로 적용하는 데는 한계가 있으며, 중복된 코드를 양산하곤 한다. 이런 한계를 극복하기 위해 AOP라는 기법을 사용한다.

 

Aspect Oriented Programming, 줄여서 AOP는 문제를 바라보는 관점을 기준으로 프로그래밍하는 기법을 말한다. AOP는 문제를 해결하기 위한 핵심 관심 사항과 전체에 적용되는 공통 관심 사항을 기준으로 프로그래밍 함으로써 공통 모듈을 여러 코드에 쉽게 적용 할 수 있도록 도와준다.

 

 

출처: https://code.google.com/archive/p/developerhaus/wikis/TobySpring_06.wiki

 

'Java' 카테고리의 다른 글

JSTL 개념, 문법, 셋팅  (0) 2023.03.30
스프링 파일 업로드 관련  (0) 2022.09.05
스프링 주요 특징  (0) 2022.09.05
스프링 pom.xml, dbcp 설정 정리  (0) 2022.09.05
Java언어 특징 정리  (0) 2022.01.19
Comments