개발자 99% 커뮤니티에서 수다 떨어요!
Topic 29. 실세계를 갖고 저글링하기 (193쪽)
이벤트에 잘 반응하는 애플리케이션을 만들 수 있는 네 가지 전략
유한 상태 기계
감시자 패턴
게시-구독
반응형 프로그래밍과 스트림
<연습문제 20>
네 가지 전략 중에서 다음 상황에 맞는 것은 각각 어떤 것일까? 여러 전략을 조합해야 할 수도 있다.
5분 동안 '네트워크 인터페이스가 꺼짐' 이벤트를 세 번 받으면 운영 직원에게 알려라.
- 초기 상태에서 네트워크 인터페이스가 꺼지는 행동에 대한 데이터를 반복 확인한다. 5분간 데이터를 수신하여 3번의 이벤트가 반복 발생할 경우 상태 변화를 감지할 수 있게 하는 방식으로 상태기계로도 구현이 가능하다. 여기에 감시자 패턴으로 구현할 수도 있다.
일몰 후에 층계 밑에서 동작이 감지된 다음 층계 위에서 동작이 감지되면 위층의 전등을 켜라.
-이 과정에서 일몰 후라는 시간 조건이 주어진 뒤, 아래 층계에서 동작이 감지되었을 때 다음 층계에서도 동작이 감지되는 연속적인 조건에서 그 위층의 전등을 켜야하는 이벤트를 실행한다. 이 경우 단순히 감시자 패턴으로 실행하는 것보다는 게시-구독 전략을 구현하여 실행할 수 있다. 이를 상태 기계와조합하여 활용한다. 게시-구독 모델은 추가적인 결합 없이 비동기 이벤트 처리를 구현한다. 애플리케이션이 작동하고 있는 도중에도 작업이 가능하므로 동시에 감지와 작동을 실행할 수 있다.
다양한 보고 시스템에 주문이 완료되었음을 알리고 싶다.
-반응성 프레임워크 중 가장 인기가 높은 것이 자바스크립트를 기반으로 한 리액트와 뷰이다. 이벤트를 연결하는 것이 쉽지만은 않기 때문에 스트림이 필요하다. 다양한 보고 시스템에 주문이 완료되었음을 알리려면 새로운 이벤트를 받고 처리하는 시스템이 필요하다.
고객에게 자동차 대출을 집행할 수 있는지 평가하기 위하여 애플리케이션이 세 가지 다른 서비스에 요청을 보내고 응답을 기다려야 한다.
-고객에게 자동차 대출을 집행할 수 있는지 평가하기 위하여 세 가지 다른 서비스에 요청을 보내고 응답을 기다려야 하는 프로그래믕ㄹ 위해서는 앞선 주문이 완료된 방식처럼 반응형 프로그래밍과 스트림 전략이 필요하다.