2022/11(4)
-
Reactor 제대로 이해하기, Marble Diagram
본 포스팅은 Project Reactor를 Marble Diagram을 읽는 방법과 함께 쉽게 이해하는 것이 목표입니다. 시리즈가 시작됐습니다 🔥 프로젝트 리액터를 파볼 예정입니다. Reactor는 Spring의 WebFlux가 채택한 Reactive Library입니다. 즉, WebFlux의 기반이자 기본 구성 요소이 됩니다. | Reactor Series | - Reactive Programming, 제대로 이해하기 👉🏻 Reactor 제대로 이해하기, Marble Diagram - Reactor, 제대로 이해하기 - Flux Create Reactor는 JVM 환경에서 Non-blocking의 Reactive Programming을 전적으로 지원하며, "Backpressure"을 관리하면서 데이터의..
2022.11.30 -
Reactor, 제대로 사용하기 - Error Handling
Project Reactor의 Reactor API 사용 중 발생하는 오류를 처리하기 위한 메소드를 이해하고 사용하는 것이 해당 포스팅의 목표입니다. onErrorXxx onErrorXxx 형태의 메소드는 Reactor API 처리 중 오류가 발생하면 일어나는 onError Signal을 대상으로 처리합니다. 다룰 메소드를 훑어보면 아래와 같습니다. ✔ onErrorComplete(): : onError Signal을 onComplete Signal로 변경 ✔ onErrorContinue(BiConsumer) : 해당 Element 스킵 후 다음 Element로 로직 계속 진행. Consumer에서 적절한 처리 지정 ✔ onErrorMap() : Exception을 다른 Exception으로 타입 전환 ..
2022.11.27 -
Rate Limiter, 제대로 이해하기
Rate limiter의 역할과 강단점을 살펴보고, 구현 알고리즘 5가지를 이해하는 것이 해당 포스팅의 목표입니다. 본 포스팅의 모든 그림은 필자가 직접 그린 것으로 무단 사용을 금하며, 사용 시 출처를 반드시 남겨주시길 바랍니다. Rate Limiting Rate Limiting이란 특정 시간 내에 할 수 있는 API 호출 수를 의미합니다. 사용자의 API 호출 수가 Rate Limit값을 초과하면 API 호출이 제한되며 요청이 실패하게 됩니다. 즉, 단어 그대로 API의 속도를 제한합니다. Rate Limiter를 적용하면 고가용성과 안정성을 보장할 수 있습니다. 무차별적으로 인입되는 요청을 받는 서버에서의 불안정성을 생각해보면 RateLimiter의 이 특징을 금방 납득할 수 있습니다. Why us..
2022.11.20 -
Reactive Programming, 제대로 이해하기
Spring의 WebFlux에 대한 개념을 쉽고 정확하게 이해하는 것을 목표로 합니다. | Reactor Series | 👉🏻 Reactive Programming, 제대로 이해하기 - Reactor 제대로 이해하기, Marble Diagram - Reactor, 제대로 이해하기 - Flux Create Background 많은 서비스를 한 앱에 구현하는 monolithic 구조는 더 이상 사용하지 않습니다. 빠른 속도를 요구하는 시대에서 monolithic 구조는 문제가 점점 도태되었습니다. 대신 작게 분산된 컴포넌트를 구성하여 연결하는 microservice 구조(MSA)와 이를 서비스하는 클라우드 기반의 클러스터를 선호하게 되었습니다. Microservice 구조는 한 앱을 작은 컴포넌트로 분산시킨..
2022.11.16