Spring Boot Server Sent Event(SSE) 간단 샘플

Server Sent Event (SSE)는 웹 어플리케이션에서 실시간 업데이트를 제공하는 데 사용되는 웹 기술 중 하나이다. Spring에서는 Spring MVC에서 사용되는 SseEmitter 클래스를 제공하여 손쉽게 SSE 스트림을 생성하고 클라이언트에게 이벤트를 푸시할 수 있도록 한다. 이를 통해 클라이언트가 연결을 유지하면서 서버로부터 데이터를 지속적으로 수신할 수 있도록 한다. 이번 포스팅에서는 Spring에서 SSE를 사용하는 방법에 대해서 정리해보고자 한다.

Spring Boot RestClient (ver 3.2)

지금까지 대표적으로 사용했던 HTTP 클라이언트 모듈은 WebClient와 RestTemplate가 대표적으로 사용되었다. 하지만 RestTemplate은 이제 maintenance 모드로 변경되었고 (deprecated는 아니다) WebClient는 강력하지만 단순한 동기 호출에는 좀 과한 면이 있었다.
이런 문제를 조금 더 개선해 줄 수 있는 HTTP 클라이언트 모듈이 Spring Framework 6.1 (Spring Boot 3.2) 부터 소개된 RestClient다. RestTemplate의 직관적인 API 디자인과 WebClient와 같이 fluent API를 결합하여 동기 방식의 HTTP 통신을 지원하는 RestClient에 대해서 정리하고자 한다.

spring boot docker compose support 로컬에서 인프라 올려서 테스트 하기 (spring boot 3.1)

애플리케이션 개발을 하면서 로컬에 docker로 인프라 환경을 구성하고 테스트 코드를 수행해 본 적이 있을 것이다. 별도의 인프라 환경을 구성하기 위해서 docker 엔진을 구동하고 docker compose 혹은 docker로 인프라 환경을 컨테이너로 올려서 테스트 코드를 돌리는 일은 참으로 번거로운 일이 아닐 수 없다.
하지만 spring boot docker compose support를 통해서 앞으로는 더욱 손쉽게 테스트를 위한 인프라를 손쉽게 구성할 수 있다. spring boot 3.1부터 지원되는 docker compose를 어떻게 사용하면 되는지 그 사용법에 대해서 정리해 보고자 한다.

MockMvc – Spring Boot Controller 테스트 필수템

Spring Boot Controller 테스트할 때 가장 널리 사용되는 도구가 MockMvc와 WebTestClient다. Spring Boot 3.X부터는 WebTestClient 사용 빈도가 점점 증가하고 있는 추세라고 하지만 MVC 모델에서는 아직도 MockMvc를 많이 사용하고 있다. 이번 포스팅에서는 MockMvc 사용법에 대해서 정리해 보고자 한다.