AOP 2

AOP 프로그래밍, 프록시에 대하여. 2021-12-16

우선적으로 AOP 란 Aspect Oriented Programing 의 약자이다. Aspect 란 측면이라는 뜻으로, 좁은 부분을 뜻한다. 즉, 측면 지향 프로그래밍 이란 것은, 프로그램상의 어느 한정적인 부분들을 나누어서 프로그래밍하는 것을 의미한다. 이 한정적인 부분을 공통부분이라 칭하고 핵심부분과 구분되어 별도시스템이 동작 가능하게 한다. 아래의 코드를 보자. public class RecCalculator implements Calculator{ @Override public long factorial(long num) { // TODO Auto-generated method stub if(num==1) { return 1; } return num*factorial(num-1); } } 위 코드..

프록시와 AOP 프로그래밍 [최범균 스프링 5] 2021-06-04

우선 스프링 공식 래퍼런스에는, AOP를 설명하기 위해 '프록시'라는 단어를 사용하고 있다. 프록시란, 간단히 추상적으로 설명하자면, 핵심기능을 제외한 공동의 기능을 한데 묶어서 코드의 변경 없이 사용할수 있도록 만든 클래스이다. 이런 말로하면 이해가 잘 되지 않을테니, 코드로서 설명하겠다. 우선, 정수 num이 주어졌을때, num의 팩토리얼을 를 구하는 기능을 가진 클래스를 2개 만들어 보자. 그런데 다형성을 사용하여 프록시를 통한 공통의 기능을 구현해야 하니, Calculator라는 인터페이스를 만들어서 상속시키자. public interface Calculator { public long factorial(long num); } 다형성 사용을 위해서 인터페이스를 만들어줌. public class I..