728x90 Spring83 [Spring Cloud] OpenFeign OpenFeign netflex 에서 만든 Declarative(선언적인) HTTP Client 도구이다 Declarative(선언적인) 해당 용어의 표현은 어노테이션으로 선언을 하여 이를 구현할수 있다는 뜻으로 이해하면 쉬울것 같다. OpenFeign 사용이유 서비스 로직의 집중 - 사용방법이 간편하다 - 서비스 로직과 분리 할 수 있다. 명시적인 표현 - 어노테이션으로 명시적으로 선언하여 쉽게 사용용도를 파악 할 수 있다. 간단한 코드 사용 - Controller 처럼 인터페이스를 구현하여 깔끔하게 사용할수 있다. - Rest API 통신을 할때 Controller 를 구현하는 것처럼 사용할 수 있다. OpenFeign 예제 먼저 스프링 부트에 스프링 클라우드를 추가해 줘야 한다. 단 버전을 잘 맞춰.. 2023. 10. 21. [Spring] Spring AOP 개념 Spring AOP Spring AOP 는 스프링에서 사용하는 AOP 방식이다. 개념과 어떻게 사용 하는지 파악해보자. Spring AOP Proxy AOP를 적용하기 위해선 프록시가 필요하다. 스프링은 CGLIB 프록시를 사용한다. Spring AOP 용어 용어를 바로 설명하기 전에 예제를 한번 보자 아래 처럼 OrderService가 있고 그안에 save, cancel 메소드가 있다고 해보자. 사용자가 주문을 취소 했을때 cancel 이 몇번 되었는지 로그를 쌓고 싶다고 가정해보자. Advice 우리는 먼저 로그를 저장하는 부가 기능을 구현을 해야 한다. 아래처럼 Log 를 저장하는 기능을 Advice 라고한다. PointCut 그럼 저 어디바이스를 어떻게 지정을 할까? 우리는 Pointcut 으로 .. 2023. 6. 27. [Spring] AOP 개념 AOP(Aspect Oriented Programming) 말그대로 관점 지향 프로그래밍이다. 관점 지향: 횡단 관심사의 분리를 허용하는 프로그램밍 횡단 관심사: 시스템의 수많은 다른 부분에 의존하거나 영향을 미쳐야 하는 프로그램의 일부분이다 간단하게 정리를 한다면 시스템의 수많은 부분에 의존하거나 영향을 미치는 프로그램을 분리 하는 것이다. AOP 예제 횡단 관심사 A, B, C 서비스가 있고 각 서비스는 서비스에 맞는 비즈니스 로직을 가지고 있다. 하지만 로그 찍는 로직이 동일하게 들어가 있다고 하자 로그를 찍는 print log 의 코드는 동일하다. pring log가 횡단 관심사가 되는 것이다. 그럼 AOP 맞게 구조를 바꿔 보자 횡단 관심사 분리 pring log 라는 기능을 따로 빼고 A, B.. 2023. 6. 15. [Spring] CGLIB CGLIB(code generator library) 바이트 코드를 조작해서 동적으로 클래스를 생성하는 기술을 제공하는 라이브러리 jdk와 달리 인터페이스가 필요없다. CGLIB 예제 CGLIB 은 MethodInterceptor를 제공한다. package org.springframework.cglib.proxy; public interface MethodInterceptor extends Callback { Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable; } obj : CGLIB이 적용된 객체 method: 호출된 메소드 args: 메서드를 호출하면서 전달된 인수 proxy: 메서.. 2023. 4. 18. 이전 1 2 3 4 ··· 21 다음 728x90 반응형