반응형
"5 Things to Know About Reactive Programming" 글 요약(원문은 여기 참고)
1. 리액티브 프로그래밍은 비동기 데이터 스트림을 이용한 프로그래밍
- 리액티브 프로그래밍 사용시, 데이터 스트림이 어플리케이션의 뼈대가 됨
- 이벤트, 메시지, 호출, 실패를 데이터 스트림으로 전달
- 이 스트림을 Observe(Subscrive)하고, 값을 발생(emit)할 때 반응
- 모든 것이 스트림: 클릭 이벤트, HTTP 요청, 유입 메시지, 변수 변경, 세선 값 등 바뀌거나 발생할 수 있는 모든 것 (이는 본질적으로 비동기와 관련)
2. 콜드(Cold) vs 핫(Hot)
- 콜드 스트림 : 누군가 Observe를 시작할 때까지 아무것도 안 함. 스트림이 소비될 때 동작하기 시작. 여러 subscriber가 공유하지 않음. 예) 파일 다운로드
- 핫 스트림 : 소비 전에 활성. 개별 subscriber에 독립적으로 데이터 생성. 구독하기 시작한 이후의 데이터 수신. 예) 실시간 주식 주가, 센서 데이터
3. 비동기 오용 주의
- 비동기는 리액티브 프로그래밍에서 중요한 단어
- 중요한 세 가지 : 부수 효과, 쓰레드, 블록
- 부수 효과 : 불필요한 부수 효과를 피할 것. 부수 효과 없는 함수 -> 쓰레드 안정성
- 쓰레드 : 너무 많은 쓰레드 사용을 피할 것. 다중 쓰레드는 동기화 문제 위험
- 블록 : 쓰레드를 소유하지 않으므로 쓰레드를 절대 블록하지 말 것
4. 단순
- 다른 개발자가 읽을 코드임을 잊지 말 것
5. 리액티브 프로그래밍 != 리액티브 시스템