인프런 커뮤니티 질문&답변

이규연님의 프로필 이미지
이규연

작성한 질문수

Kevin의 알기 쉬운 RxJava 1부

결합 연산자

데이터 결합 연산자 / merge 관련 질문

작성

·

311

0

안녕하세요 강사님!! RxJava 강의 열심히 듣고있습니다.

다름이 아니라 Merge 함수를 실행할 때 Observable을 merge() 결합할 때 interval로 설정한 시간만큼 통지시점에 따라 순차적으로 데이터가 통지된다고 하셨는데

제 코드에서는 정상적으로 동작하지 않는 것 같아서 질문 드립니다.

1.결과값을 보면 스레드 할당이 제대로 안되는 것 같은데 merge말고 다른 부분에 문제가 있는 건가요?? 결과값도 실행할 때마다 바뀝니다..

2. 저는 RxJava3 으로 설정해서 사용 중인데 변경된 부분이 있어서 그럴까요?? 공식문서를 찾아봐도 merge에 관한 변경점은 못찾았습니다ㅠㅠ

답변 1

0

이규연님의 프로필 이미지
이규연
질문자

추가 ) interval을 10배 늘려서 실행하니 정상적으로 출력되었습니다. 처리 속도가 빨라서 스레드가 얽히는 건가요??

Kevin님의 프로필 이미지
Kevin
지식공유자

규연님, 안녕하세요? 어제 너무 밤 늦게 질문이 들어온걸 확인해서 답변을 제대로 드리지 못했구요. 오늘 낮에는 업무를 해야해서 불편하시겠지만 밤에 답변 드리도록하겠습니다. ^^;

감사합니다.

Kevin님의 프로필 이미지
Kevin
지식공유자

규연님, 안녕하세요?

RxJava 3.0 버전은 현재 제가 사용해보고 있지는 않은 상태인데 공식 문서 상으로도 특별한 차이점을 현재는 발견하지 못한 상태입니다.

merge 연산자는 마블 다이어그램에서 확인할 수 있다시피 기본적으로 데이터가 통지된 시간을 기준으로 merge가 되는건 맞고, 제 컴퓨터 환경에서는 매번 실행때 마다 데이터가 바뀌는 증상이 있거나 하지는 않습니다.

다만 조금 더 분석해 볼 필요가 있는 부분은 저희 강의가 2.2.x 버전으로 예제 코드가 구성이 된 상태라서 3.x 버전으로 저도 테스트를 한번 해봐야 될 것 같구요.
추가적으로 interval 연산자에서 사용하는 Scheduler에 대해서 조금 더 분석을 해 볼 필요가 있긴할 것 같습니다.
Scheduler의 동작이 실행 환경에 영향을 얼마나 받는지 분석을 해보겠습니다.

시간이 조금 걸릴 것 같은데 이 부분은 우선 건너뛰고 학습을 진행해주시길 바랄게요.
감사합니다.

이규연님의 프로필 이미지
이규연
질문자

넵 감사합니다!!

이규연님의 프로필 이미지
이규연

작성한 질문수

질문하기