Spring(51)
-
Garbage Collector, 제대로 이해하기
소프트웨어 개발라면 본인의 제품이 메모리를 관리하는 방식에 대한 이해가 필요합니다. 특히 Heap 영역에서 일어나는 동적 메모리 관리는 소프트웨어의 성능을 결정짓는 중요한 요소 중 하나입니다. 컴파일 언어에서 Stack 영역은 컴파일 시간에 그 크기를 가늠할 수 있는 정적 할당과는 달리, 동적 할당은 Runtime 시 Heap영역에서 할당되어 지기 때문에 그 크기가 Application 실행 동안 결정되어 집니다. Garbage Collection C나 C++에서는 개발자들이 동적 할당을 위한 코딩 작업을 하고 난 후, 더 이상 사용되지 않을 때 수동으로 해제해야 합니다. 수동으로 메모리를 해제하는 작업에 대한 휴먼 오류가 발생하기 쉬운데요. 다음과 같은 오류가 발생할 수 있습니다. - 메모리 누수를 유..
2023.01.11 -
Reactor, 제대로 이해하기, zip() method
Reactor Publisher인 Mono와 Flux의 요소를 결합하는 zip를 이해하고 예제 코드로 직접 코드를 확인하는 것이 해당 포스팅의 목적입니다. | Reactor Series | - Reactive Programming, 제대로 이해하기 - Reactor 제대로 이해하기, Marble Diagram - Reactor, 제대로 이해하기 - Flux Create 👉🏻 Reactor, 제대로 이해하기, zip() method Zip method? Reactor가 zip method를 사용하면 두 개의 소스를 병합할 수 있습니다. 다양한 형태의 zip 메소드들을 지원하고 있으며, 모든 zip 메소드는 '주어진 입력 소스를 병합하는' 동일한 역할을 합니다. 아래의 그림에서 볼 수 있듯이, zip 메소드..
2022.12.18 -
Reactor, 제대로 이해하기, Flux Create
Reactor Publisher인 Flux를 생성하는 방법에 대해 이해하고 예제 코드로 직접 코드를 확인하는 것이 해당 포스팅의 목적입니다. | Reactor Series | - Reactive Programming, 제대로 이해하기 - Reactor 제대로 이해하기, Marble Diagram 👉🏻 Reactor, 제대로 이해하기 - Flux Create .from() 🔗 Reactor Link : Publisher로 부터 새로운 Flux 인자 방출emit Flux from(Publisher
2022.12.08 -
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 -
Reactive Programming, 제대로 이해하기
Spring의 WebFlux에 대한 개념을 쉽고 정확하게 이해하는 것을 목표로 합니다. | Reactor Series | 👉🏻 Reactive Programming, 제대로 이해하기 - Reactor 제대로 이해하기, Marble Diagram - Reactor, 제대로 이해하기 - Flux Create Background 많은 서비스를 한 앱에 구현하는 monolithic 구조는 더 이상 사용하지 않습니다. 빠른 속도를 요구하는 시대에서 monolithic 구조는 문제가 점점 도태되었습니다. 대신 작게 분산된 컴포넌트를 구성하여 연결하는 microservice 구조(MSA)와 이를 서비스하는 클라우드 기반의 클러스터를 선호하게 되었습니다. Microservice 구조는 한 앱을 작은 컴포넌트로 분산시킨..
2022.11.16