이번에는 Java 진영의 서킷브레이커 라이브러리인 Resilence4J를 RestTemplate에 적용하는 방법에 대해 알아보도록 하겠습니다. 1. Resilence4J 라이브러리와 구성 요소 [ Resilience4J란? ] Resilience4J는 함수형 프로그래밍으로 설계된 경량(lightweight) 장애 허용(fault tolerance) 라이브러리로, 서킷브레이커 패턴을 위해 사용된다. 서킷 브레이커 패턴에 대해서는 앞선 포스팅을 참고하도록 하자. fault-tolerance란 하나 이상의 구성 요소에 문제가 생겨도 시스템이 중단없이 계속 작동할 수 있는 시스템을 의미한다. Resilience4J를 적용하면 외부 서비스에 장애가 발생하여도 자신의 시스템은 계속 작동할 수 있는 것이다. 참고로 ..
이번에는 Java 진영의 서킷브레이커 라이브러리인 Resilence4J를 OpenFeign에 적용하는 방법에 대해 알아보도록 하겠습니다. 아래의 내용은 공식 문서와 직접 구현 및 테스트한 부분을 바탕으로 작성되었습니다. 1. Resilence4J 라이브러리와 구성 요소 [ Resilience4J란? ] Resilience4J는 함수형 프로그래밍으로 설계된 경량(lightweight) 장애 허용(fault tolerance) 라이브러리로, 서킷브레이커 패턴을 위해 사용된다. 서킷 브레이커 패턴에 대해서는 앞선 포스팅을 참고하도록 하자. fault-tolerance란 하나 이상의 구성 요소에 문제가 생겨도 시스템이 중단없이 계속 작동할 수 있는 시스템을 의미한다. Resilience4J를 적용하면 외부 서비..
이번에는 특히 MSA 환경에서 필수 패턴 중 하나인 서킷브레이커 패턴에 대해 알아보도록 하겠습니다. 1. 서킷 브레이커 패턴(Circuit Breaker Pattern)의 등장 및 개념 [ 서킷 브레이커 패턴(Circuit Breaker Pattern)의 등장 ] 개발을 하다 보면 외부 API를 호출해야 하는 경우가 있다. 특히나 전체적인 시스템 구성이 MSA로 되어 있다면 다른 서비스를 호출하는 경우가 매우 빈번하다. 문제는 서버들에 장애가 발생할 수 있다는 점인데, 호출한 다른 서비스에 장애가 발생했다면 장애가 전파되어, 해당 서비스까지 문제가 발생할 수 있다. 또한 장애가 발생한 서버에 계속 요청을 보내는 것은 장애 복구를 힘들게 만든다. 그래서 장애가 발생한 서비스를 탐지하고, 요청을 보내지 않도..
아래의 내용은 토비님과 토비의 스프링 읽기를 하면서 얘기가 나온 부분을 개인적으로 공부한 후에 정리한 것입니다. 1. JUnit의 진화 과정과 public 접근 제어자 Java 진영에서 사용되는 테스트 프레임워크로는 JUnit이 있다. 오늘날 우리에게 익숙한 JUnit4와 5는 각각 2006년과 2016년에 출시되었다. 그리고 그 이전 버전들도 있는데, 이번에는 JUnit3부터 살펴보고자 한다. Junit3: 2007년 마지막 Release Junit4: 2006년 첫 Release Junit5: 2016년 첫 Release [ Junit3의 규칙과 관례 ] JUnit3를 사용해 테스트를 실행하기 위해서는 몇 가지 규칙 및 관례가 있는데, 크게 다음과 같다. 테스트 클래스는 TestCase 클래스를 상속..
스프링으로 개발을 하다 보면 application.yml 또는 application.properties 설정 파일에 있는 리소스를 암호화해야 하는 경우가 있습니다. 이번에는 리소스의 내용을 암호화하여 노출시키지 않는 방법에 대해 알아보도록 하겠습니다. 1. Jasypt와 jasypt-spring-boot 라이브러리 [ Jasyp와 jasypt-spring-boot 라이브러리 ] Jasypt 라이브러리는 암호화에 대한 깊은 지식이 없어도 최소한의 비용으로 암호화 기능을 제공할 수 있도록 도와주는 자바 라이브러리이다. 자바 애플리케이션에서는 Jasypt 라이브러리를 사용해 리소스를 손쉽게 암/복화를 구현할 수 있다. 하지만 일반적으로 자바는 스프링 애플리케이션에서 주로 사용된다. 스프링으로 개발을 하다 보면..