1. @PathVariable 또는 @RequestParam 등의 값을 변환하여 받기 (암호화된 @PathVaraible 값 복호화) [ 컨트롤러에서 받는 값 변환의 필요성 ] 애플리케이션을 개발하다 보면 리소스에 대한 고유한 값인 식별자(identifier)을 받아 요청을 처리하는 경우가 있다. 리소스의 식별자는 시스템 내부 정보이므로, 해당 값이 1씩 단순 증가하는 값이라면 암/복호화를 해서 사용해야 한다. 예를 들어 다음과 같이 특정 멤버의 포인트를 증가시키는 API가 있다고 하자. 이때 PathVariable로 받는 memberId 값은 암호화되어 있기 때문에 컨트롤러 혹은 이를 사용하는 하위 계층에 복호화 로직을 넣어주어야 한다. @RestController @RequiredArgsConstru..
이번에는 Spring Boot3.2에 새롭게 추가될 RestClient에 대해 알아보도록 하겠습니다. 1. Spring Boot3.2에 새롭게 추가될 RestClient [ RestClient가 필요한 이유 ] Spring에서는 RestTemplate, WebClient와 같은 Http Client를 지원하고 있다. 하지만 이들은 각각 문제점을 가지고 있었다. 대표적으로 RestTemplate은 사용이 직관적이지 못하며, WebClient와 HttpInterface는 web-flux 의존성을 필요로 했다. 2009년에 Spring 3.0에 RestTemplate이 처음 도입된 이후, Template과 같은 클래스를 통해 모든 HTTP의 기능을 노출하는 것이 부담을 줄 수 있다는 것을 발견했다. 그래서 S..
아래의 내용은 Spring Cloud Gateway의 공식 문서를 보고 요약 정리한 내용입니다. 1. Spring Cloud Gateway 공식 문서 간단히 살펴보기 [ Spring Cloud Gateway란? ] Spring 생테계를 기반으로 하는 API Gateway를 제공해주는 프로젝트 Spring Cloud Gateway는 간단하지만 효율적인 방법으로 API를 라우팅하는 방법을 제공함 그 외에도 security, monitoring/metrics, resiliency 등과 같은 공통 관심사를 처리해줌 최신의 버전은 Spring 6, Spring Boot 3 and Project Reactor를 기반으로 동작 [ Spring Cloud Gateway의 동작 순서 ] Client는 Spring Clo..
이벤트(Event)는 매우 유용하지만 상당히 간과되는 기능 중 하나입니다. 작년에 아마존 CTO는 이벤트 드리븐 아키텍처로 가야 한다고 기조 연설을 하기도 했는데, 이번에는 스프링 프레임워크에서 이벤트(Event)를 사용하는 방법에 대해 알아보겠습니다. 1. 스프링에서 이벤트 사용법 및 주의사항 [ 스프링에서 이벤트의 발행과 구독 ] 스프링은 이벤트를 발행하고 구독하는 기능을 제공하고 있는데, 해당 기능은 아래와 같은 기본적인 가이드를 따라야 한다. 스프링 부트 1.3(엄밀히는 스프링 4.2) 이전 버전이라면 이벤트 클래스가 ApplicationEvent를 상속해야 함 이벤트 발행을 위해서는 ApplicationEventPublisher를 주입받아 사용해야 함 이벤트 구독을 위해서는 Application..
이번에 다룬 내용은 토비님과의 스터디에서 시작하여 토비님의 강의와 영한님의 강의 및 직접 학습하며 배운 내용들을 기반으로 작성되었습니다. 추가할 내용 있으면 공유 부탁드리겠습니다! 감사합니다:) 1. 스프링 부트(SpringBoot)의 탄생 배경, 컨테이너리스(Containerless) 웹 애플리케이션 아키텍처 [ 기존의 스프링 배포 방식 ] 스프링 부트가 없었던 환경에서는 배포를 하려면 다음의 번거로운 작업을 거쳐야 했다. 톰캣 같은 웹 애플리케이션 서버(WAS) 설치 애플리케이션 코드를 WAR로 빌드 빌드한 WAR 파일을 WAS로 옮기고(배포) WAS 실행 이러한 작업은 톰캣과 같은 WAS를 서버에 직접 설치해야 하므로 상당히 번거로울 뿐만 아니라 개발 환경 설정과 배포 과정도 복잡하는 등 많은 단점..