본문 바로가기

Back-End/Spring WebFlux2

Hello, Reactive | 명령형 프로그래밍과 선언형 프로그래밍 명령형 프로그래밍 vs 선언형 프로그래밍 코드가 어떤 식으로 실행되어야 하는지에 대한 구체적인 로직이 코드 안에 그대로 드러나는 명령형 프로그래밍 방식과는 달리 선언형 프로그래밍의 경우는 코드 상에 보이지 않는 내부 반복자가 존재한다. // 명령형 for(int number : numbers){ if(number > 4 && (number % 2 == 0)){ sum += number; } } // 선언형 int sum = numbers.stream() .filter(number -> number > 4 && (number % 2 == 0)) .mapToInt(number -> number) .sum(); Java의 Stream API를 떠올려 보면 메서드 체인(중간 연산)에서는 선언하는 람다 표현식을 .. 2022. 10. 12.
리액티브 프로그래밍 리액티브 시스템 리액티브(Reactive)는 사전적으로 '반응을 하는', '반응을 보이는'라는 의미를 가진다. (리액션이 좋은 사람을 떠올려 보자!) 리액티브 시스템이란 클라이언트 요청에 반응을 잘하는 시스템을 의미한다. 이는 쓰레드의 Non-Blocking과 관련이 있다. 클라이언트의 요청에 대한 응답 대기 시간을 최소화하기 위해 요청 쓰레드가 차단되지 않게 함으로써 즉각적으로 반응할 수 있도록 구성된 시스템이다. 방법(MEANS): 리액티브 시스템에서의 커뮤니케이션 수단 👉 메시지 기반 통신으로 여러 시스템 간 느슨한 결합을 유지 형태(FORM): 메시지 기반 통신을 통해 어떤 특성을 가지는 구조로 형성되었는가? 👉 Elastic: 시스템에 들어오는 요쳥량과 상관없이 일정한 응답성을 유지 👉 Resi.. 2022. 10. 12.