Developer/Spring eGov4.0 (Java11, Tomcat9)

Spring , AOP란 ?

단님 2024. 10. 31. 10:41
728x90
스프링 프레임 워크의 특징을 한줄로 서술한다면,
" IoC와 AOP를 지원하는 경량의 컨테이너 프레임 워크 "  
프레임 워크 다시보기
 

Spring , 스프링 프레임 워크란 ?

스프링 프레임 워크의 특징을 한줄로 서술한다면," IoC와 AOP를 지원하는 경량의 컨테이너 프레임 워크"   경량크기 측면에서 가볍다.스프링은 여러개의 모듈로 구성되어 있으며 , 각 모듈은 하

radaonmommy.tistory.com

 

관점 지향 프로그래밍(Aspect Oriented Programming),AOP

관점 지향프로그래밍은 비즈니스 메소드를 개발 할 때 , 

핵심 비즈니스 로직 부가적인 비즈니스 로직 분리하여 모듈화하는 프로그래밍 기법을 말한다.

공통 로직을 분리함으로써 응지보가 높게 개발할 수 있도록 지원한다.  

 

공통으로 사용하는 기능들은 외부의 독립된 클래스로 분리하고 ,

해당 기능들을 프로그램 코드에 직접 명시하지 않고 선언적으로 처리하는 것이 관점지향 프로그래밍의 기본 개념이다.

공통 기능을 분리하여 관리할 수 있으므로 응집도가 높은 비즈니스 컴포넌트를 만들 수 있을 뿐 아니라

유지보수를 혁신적으로 향상시킬 수 있다.

 


AOP와 다른 패러다임과의 차이
절차 지향 프로그래밍 (Procedural Programming)

순차적으로 실행되는 절차(프로시저)에 중점을 두고, 반복적인 작업을 절차적으로 처리한다.

 

객체 지향 프로그래밍 (Object-Oriented Programming)

객체를 기능단위로 모듈화하여 부속화하여 사용하는것이다.

 

관점 지향 프로그래밍(Aspect Oriented Programming)

공통 기능을 코드 단위로 모듈화해 선언적으로 처리할 수 있도록 한다.

AOP는 핵심 로직과 공통 로직을 분리해 효율적인 코드 관리를 가능하게 하고,

프로그램의 유지보수성을 높여주는 데 초점이 있다.

 

AOP에서 코드 단위로 공통 기능을 모듈화하는 예시로 try-catch-finally 구문을 들 수 있어.

예외 처리는 메서드마다 들어가지만,

AOP에서는 이 과정을 애스펙트로 관리해서 코드 곳곳에 넣지 않아도 되도록 한다.

실행 -> 성공 ? 실패 ?

핵심 기능을 기준으로 정상 종료와 비정상 종료 시의 처리를 나누고,

필요에 따라 각 기능을 행으로 나눠서 코드를 관리한다.

 

  • 핵심 기능 (Join Point): 실제 비즈니스 로직.
  • 횡단 관심사 (Advice): 로깅이나 트랜잭션처럼 비즈니스 로직 외의 공통 기능.