본문 바로가기
Clean Code

Reactive Programming

by devOat 2023. 5. 21.

Reactive Programming 

반응형 프로그래밍 이라는 직관적인 단어 !

 

Reactive Programming is programming with asynchronous data streams.

"반응형 프로그래밍은 비동기 데이터 스트림을 이용한 프로그래밍이다" 라는 정의가 있다.

 

 

 

이게 무슨 뜻이냐 ... 하면 ! Click Event를 생각해보자 !

Click event 의 흐름

Click Event의 발생을 관찰, 즉 Observe 하다 Event 발생 시 이에 따른 동작을 수행할 수 있다

 

 

Reactive는 이의 확장이라고 할 수 있는데,

이러한 비동기적인 이벤트들을 비동기 데이터 스트림으로 만드는 것이 Reactive Programming의 핵심이다.

 

Stream이란 흐름이라고 할 수 있는데,

시간의 흐름에 따른 데이터의 움직임을 얘기한다.

 

즉, 시간 순으로 진행중인 이벤트( =데이터) 를 나열한 것이다. 

 

 

디자인 패턴 중 Observer Pattern이 이와 가장 유사한 형태를 보인다고도 할 수 있다.

 

데이터들과 끊임없이 상호작용하며, 변화가 생겼을 때 즉각적으로 반응하고

이에 따른 동작을 수행하는 프로그래밍 방식이다.

 

 

특징 

반응성 

- 즉각적인 반응으로 일관성 있는 응답시간 제공

 

회복성

- 각각의 구성요소를 분리하여 , 하나의 구성요소에서 장애가 발생하여도 부분적인 에러만 발생하고

다른 요소에 영향을 미치지 않음

 -> 이는 곧 전체 시스템에 큰 장애를 불러오지 않고 해당 부분만을 복구할 수 있도록 보장

 

탄력성

- 입력 속도의 변화에 따라 할당된 자원을 증가, 감소 시키며 변화에 대응

 

메세지 주도

- 구성 요소 간의 경계(느슨한 결합, 격리, 위치 투명성)를 설정하기 위해 비동기 메세지 전달에 의존

 

 

 

 

 

유니티에서 Reactive Programming을 사용하는데 쓰이는 UniRx에 대해 다음에 포스팅 해보겠다...

'Clean Code' 카테고리의 다른 글

DI pattern  (0) 2023.05.10