킹의 개발일지

쏙쏙 들어오는 함수형 코딩 44일차 본문

독서/책너두 챌린지

쏙쏙 들어오는 함수형 코딩 44일차

k1ng 2023. 9. 27. 02:07

44일차 <암묵적 시간모델, 명시적 시간모델 / 반응형 아키텍처>

자바스크립트는 다음과 같이 단순한 시간 모델을 가지고 있다.

이는 언어차원에 존재하는 암묵적 시간 모델이다. 위 그림은 단일 스레드로 동작하는 자바스크립트의 암묵적 시간 모델이며 복잡한 프로그래밍에서 발생하는 문제들을 앞에서 살펴보았다.

 

우리는 이런 문제들을 해결하기위해 Queue, Cut, JustOnce, DroppingQueue와 같은 동시성 기본형을 만들어 보았다. 이런 동시성 기본형들은 명시적 시간 모델이다.

 

이제 우리가 만들었던 명시적 시간모델들의 기본적인 타임라인 다이어그램을 보도록 하자.

 

 

확실히 암묵적 시간 모델에 비해 명시적 시간 모델은 예기치 못한 동시성 문제들을 우리가 컨트롤 할 수 있게 만들어 준다.


18장부터 더 높은 수준에서 설계와 아키텍처에 대해 설명한다. 여기서 소개하는 아키텍처는 반응형 아키텍처어니언 아키텍처가 있다. 오늘 파트에서는 반응형 아키텍처에 대해서 먼저 알아보자.

 

반응형 아키텍처는 애플리케이션을 구조화하는 방법이다. 반응형 아키텍처의 핵심 원칙은 이벤트에 대한 반응으로 일어날 일들을 지정하는 것이다. 그래서 반응형아키텍처는 웹 서비스와  UI에 잘 어울린다.

 

이벤트 핸들러 예제를 통해 반응형 아키텍처 찍어먹어보자.

 

이벤트 핸들러 예제를 반응형 아키텍처로 변경해보았는데, 코드를 통해서 살펴보지 않는한 크게 이해가 되지 않을것 같다.

 

이전 파트에서 타임라인 단순화 작업으로 같은 타임라인에 있는 액션들은 순서가 보장 된다면 하나의 상자안에 넣는 과정이 있는데, 반응형 아키텍처에서 웹 서비스 의 다이어그램은 단순화 과정을 통해서 줄여야 하는 액션들로 보인다. 아직 반응형 아키텍처에 대해서 자세한 설명이 들어가 있지 않는 탓에 다음 파트에서 코드와 함께 설명을 들어야 제대로 이해할 수 있을것 같다.