RxJava를 활용한 리액티브 프로그래밍 정리 Vol.1
date_range 07/05/2018 11:30
1장 개요
- RxJava란?
- 자바와 안드로이드를 위한 리액티브 프로그래밍 구현체로, 함수형 프로그래밍의 영향을 받았다.
- 리액티브 프로그래밍이란?
- 데이터나 이벤트 변화의 반응에 초점을 맞춘 프로그래밍을 뜻한다. (ex. 스프레드 시트)
- RxJava의 동작방식
- RxJava의 핵심은 이벤트 스트림을 나타내는 Observable타입이며, 이벤트 밀어내기(Push) 방식을 지향한다.
- Observable과 그를 구독하는 Observer(Subscriber)의 쌍으로 구성된다.
- RxJava는 일반적으로 비동기로 동작하지만, 기본값은 동기 방식으로 되어있으며, 명시적 요청이 없다면 동시성 처리를 하지 않는다.
- 단일 Observable은 동시성/병렬성 둘 다 허용하지 않는다. 대신 여러 비동기 Observable조합을 통해 이를 수행한다.
- 동시성(Concurrency) : 싱글 코어에서 멀티 스레드를 동작시키는 방식, 동시에 실행되는 것 처럼 보이는 것, 실제론 번갈아 실행
- 병렬성(Parallelism) : 멀티 코어에서 멀티 스레드를 동작시키는 방식, 실제로 동시에 작업 처리되는 것
- onNext, onCompleted, onError 이벤트는 동시에 방출되지 않는다. 달리 말해, 하나의 Observable은 항상 직렬화되어 스레드에 안전해야 한다.
- Observable은 느긋(lazy)하다. Observer가 구독하지 않는 한 이벤트 방출을 시작하지 않는다.
- Observable은 재사용할 수 있다.
MSA Retro
date_range 27/04/2018 07:10
서론
- MSA 개발을 통해 애자일 문화전파와 조직 변화를 기대했었다.
- MSA는 넷플릭스지 라고 생각했었다. 당연히 이럴것이다 하는 기대를 가지고 시작했다. MSA라면 당연히 ~~는 있어야지 하는 생각과 ~~까지는 없어도 된다 라는 생각을 가진 사람이 있었다.
MSA에 Contract Test 적용 하기
date_range 21/04/2018 12:10