이번에는 Spring6에 새롭게 추가된 HttpInterface에 대해 알아보도록 하겠습니다. 아래의 내용은 토비님 영상에서 정보를 얻어 공식 문서를 바탕으로 개인적인 학습을 하며 정리한 내용입니다. 1. HttpInterface란? [ HttpInterface 소개 및 사용법 ] 스프링의 HttpInterface는 HTTP 요청을 위한 서비스를 자바 인터페이스와 어노테이션으로 정의할 수 있도록 도와준다. 그리고 해당 서비스를 구현하는 프록시 객체를 생성하면 이를 통해 손쉽게 HTTP 요청을 보낼 수 있다. HttpInterface를 사용하는 방법은 다음과 같다. 먼저 다음과 같이 인터페이스를 구현한다. import org.springframework.web.service.annotation.GetExc..
이번에는 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를 적용하면 외부 서비..
스프링으로 개발을 하다 보면 application.yml 또는 application.properties 설정 파일에 있는 리소스를 암호화해야 하는 경우가 있습니다. 이번에는 리소스의 내용을 암호화하여 노출시키지 않는 방법에 대해 알아보도록 하겠습니다. 1. Jasypt와 jasypt-spring-boot 라이브러리 [ Jasyp와 jasypt-spring-boot 라이브러리 ] Jasypt 라이브러리는 암호화에 대한 깊은 지식이 없어도 최소한의 비용으로 암호화 기능을 제공할 수 있도록 도와주는 자바 라이브러리이다. 자바 애플리케이션에서는 Jasypt 라이브러리를 사용해 리소스를 손쉽게 암/복화를 구현할 수 있다. 하지만 일반적으로 자바는 스프링 애플리케이션에서 주로 사용된다. 스프링으로 개발을 하다 보면..
이번에는 Spring에서 사용되는 ObjectMapper의 동작 방식에 대한 정리해보도록 하겠습니다. 1. ObjectMapper를 이용한 직렬화(Serialize) [ ObjectMapper의 직렬화(Serialize) 동작 방식 ] ObjectMapper는 리플렉션을 활용해서 객체로부터 Json 형태의 문자열을 만들어내는데, 이것을 직렬화(Serialize)라고 한다. 해당 부분은 @ResponseBody나 @RestController 또는 ResponseEntity 등을 사용하는 경우에 처리된다. Spring에서는 기본적으로 jackson 모듈의 ObjectMapper라는 클래스가 직렬화를 처리한다. 그리고 그 과정에서 ObjectMapper의 writeValueAsString이라는 메소드가 사용된..