Reactive Programming
반응형 프로그래밍 이라는 직관적인 단어 !
Reactive Programming is programming with asynchronous data streams.
"반응형 프로그래밍은 비동기 데이터 스트림을 이용한 프로그래밍이다" 라는 정의가 있다.
이게 무슨 뜻이냐 ... 하면 ! Click Event를 생각해보자 !
Click Event의 발생을 관찰, 즉 Observe 하다 Event 발생 시 이에 따른 동작을 수행할 수 있다
Reactive는 이의 확장이라고 할 수 있는데,
이러한 비동기적인 이벤트들을 비동기 데이터 스트림으로 만드는 것이 Reactive Programming의 핵심이다.
Stream이란 흐름이라고 할 수 있는데,
시간의 흐름에 따른 데이터의 움직임을 얘기한다.
즉, 시간 순으로 진행중인 이벤트( =데이터) 를 나열한 것이다.
디자인 패턴 중 Observer Pattern이 이와 가장 유사한 형태를 보인다고도 할 수 있다.
데이터들과 끊임없이 상호작용하며, 변화가 생겼을 때 즉각적으로 반응하고
이에 따른 동작을 수행하는 프로그래밍 방식이다.
특징
반응성
- 즉각적인 반응으로 일관성 있는 응답시간 제공
회복성
- 각각의 구성요소를 분리하여 , 하나의 구성요소에서 장애가 발생하여도 부분적인 에러만 발생하고
다른 요소에 영향을 미치지 않음
-> 이는 곧 전체 시스템에 큰 장애를 불러오지 않고 해당 부분만을 복구할 수 있도록 보장
탄력성
- 입력 속도의 변화에 따라 할당된 자원을 증가, 감소 시키며 변화에 대응
메세지 주도
- 구성 요소 간의 경계(느슨한 결합, 격리, 위치 투명성)를 설정하기 위해 비동기 메세지 전달에 의존
유니티에서 Reactive Programming을 사용하는데 쓰이는 UniRx에 대해 다음에 포스팅 해보겠다...
'Clean Code' 카테고리의 다른 글
DI pattern (0) | 2023.05.10 |
---|