개발 일지/Spring

[Spring WebFlux] Reactive System

미숫가루설탕많이 2023. 3. 27. 12:38

 리액티브 시스템(Reactive System)이란, 비동기적인 시스템에서 발생하는 문제를 해결하고 확장성과 반응성을 높이기 위해 만들어진 시스템이다.

 

 리액티브 시스템의 가장 큰 특징은 '반응성'이다. 즉, 시스템이 빠르게 요청에 응답하고 실패를 적극적으로 처리하여 사용자에게 최상의 경험을 제공하는 것이다.

 

 이를 위해, 시스템에서 발생하는 모든 이벤트를 비동기적으로 처리하고, 이벤트에 따라 적절한 반응을 취한다.

 

 리액티브 시스템에서는 비동기적으로 발생하는 이벤트를 처리하기 위해 다양한 기술과 패턴을 사용하는 데, 대표적으로는 스트림 처리 방식이 있다. 이는 데이터를 처리할 때 일부분씩 처리하는 것이 아니라 모든 데이터를 순차적으로 처리하면서 새로운 데이터가 추가되는 경우에도 지속적으로 처리할 수 있는 방식이다. 스트림 처리 시 데이터 처리 속도가 발행 속도보다 느리면 시스템에 부하가 걸릴 수 있는데, 이를 방지하기 위해 스트림의 발행 속도를 제한하는 배압 제어 기능을 제공한다.

 

 또한, 여러 대의 서버로 분산되어 있는 컴포넌트들을 효과적으로 관리하고, 네트워크 상의 지연이나 중단과 같은 문제를 처리하는 방법을 제공한다.

 

 이러한 기술과 패턴을 사용하여 설계된 리액티브 시스템은 높은 성능과 확장성을 갖고 있으며, 비즈니스 요구사항의 변화에 빠르게 대응할 수 있는 유연성을 갖고 있다. 또한, 다양한 클라우드 환경에서 운영되는 모바일 애플리케이션, IoT기기 등 다양한 시나리오에서 사용될 수 있다.

'개발 일지 > Spring' 카테고리의 다른 글

[Sprgin JPA] FetchType  (0) 2023.04.09
[Spring WebFlux] Reactive Programming  (0) 2023.03.28
[Spring Security] 토큰 기반 인증 절차  (0) 2023.03.21
[Spring Security] JWT  (0) 2023.03.20
[Spring Security] 권한 부여 처리 흐름  (0) 2023.03.17