안녕하세요 선생님! 틈틈이 강의 잘 듣고 있습니다. 강의 수강 도중, 궁금한 점이 있어 질문드립니다! Single은 전통적인 client - server 방식의 요청을 처리하는 데 사용한다고 말씀해주셨습니다. 실제로 회사에서 single.blocking() 이런 방식으로 처리하는 코드를 본 적이 있는데, single을 해당 의도처럼 사용할 경우, 동기처리 방식에 비해 얻는 이점이 있을까요?? 제가 아직 생각하기로는 코드는 리액티브이지만 비동기 방식으로 처리하는 것이 아닌 거 같아서요! 또한 강의 영상 3분 정도에서 보여주신 SingleCreateExample 코드에서, 발행자인 Single의 create 메소드의 파라미터인 SingleOnSubscribe<T>가 구현하고 있는 subscribe가 아래 구독자가 구독하는 subscribe() 와 같은 함수가 맞을까요? 코드적으로는 둘이 연관이 있어 보여서, SingleObserver<T>와 SingleEmitter<T> 사이의 같은 부모가 있는지 확인 해보았는데 그것두 아니더라구요 ㅠ... 둘이 아예 다른 메소드 인가요?? 4. 코드를 살펴보다가 RxJavaHooks 라는 유틸성 클래스를 발견하게 되었는데, 함수형 인터페이스들이 막 정의되어 있는 것은 알겠는데 어떻게 해석해야 할 지가 감이 안 잡히더라구요 ㅠㅠ... 혹시 코드를 해석하는데 조언을 주실 수 잇으실까요?.. 항상 깊게 답변 해주셔서 감사드립니다 :)
안녕하세요! 강의 잘 듣고 있습니다. 본격적인 첫 강의부터 궁금한 점들이 많아 질문 드리게 되었습니다 ㅠ.. 저는 해당 강의를 듣게 된 사유가 웹플럭스 같이 비동기 적으로 처리하는 것에 관심이 많아서 자연스럽게 기본부터 다지고자 해당 강의를 수강하게 되었는데요. 그래서 RxJava 코드가 비동기를 위한 코드라는 인식이 있습니다. 그런데 해당 강의 마지막 부분에 cold/hot publisher 예제 코드에서 콘솔에 데이터가 출려되는 형태를 보면 구독자1이 데이터를 모두 소비하고 구독자2가 그 다음으로 데이터를 소비하는, 동기적으로 처리하는 것처럼 보이더라구요. 혹시 제 생각처럼 동기적으로 처리되고 있는 것이 맞을까요? 그렇다면 사유가 궁금합니다 ㅠ RxJava는 사실 단순 pub/sub 형태의 인터페이스를 구현한 구현체에 불과해서 RxJava를 이용해 소스코드를 작성하여도 이걸 비동기적으로 처리하기 위해서는 더 아랫단의 도움을 받아야 하는건지 그렇다면 이 코드를 실행하는 was의 영향을 받는건지 만약 그냥 java로 실행한다면 비동기적으로 실행할 수 없는 건지 아니면 RxJava는 동기적 비동기적으로 소스코드를 작성할 수 있는데, 그냥 현재 예제 코드가 동기적으로 코드를 작성한 것인지 아니면 메인 스레드가 구독자1과 2의 역할을 동시에 하고 있기 때문에 순차처리가 되는것인지 또한 비동기에 대한 정의에 대해 여쭤보고 싶습니다. 비동기 처리라는 것을 스레드의 동작 방식을 제어하는 것이라고 이해하면 될까요?? 비동기 처리를 구현하기 위해서는 스레드 제어만 하면 되니까 OS단의 도움을 받지 않고 어플리케이션 단에서 구현을 할 수 있다고 이해해도 괜찮을까요?? 답변해주시면 감사하겠습니다!
안녕하세요! 이제 막 RxJava를 배우기 시작하였습니다 ㅎㅎ 1강 14:20초 즈음에 예시로 보여주신 ToDoSample.class코드에 대해 질문 드립니다. java app은 main thread가 종료되어도 다른 non-deamon thread가 실행 중이면 app이 종료되지 않는 것으로 알고 있는데, subscribeOn( Schedulers.io () ) 메소드 실행 시, 다른 thread 가 시작하기도 전에 main thread가 종료되어, 실행 중인 thread가 없어져 app이 종료되었다고 파악해야 할까요?? subscribeOn( Schedulers.io () ) 메소드를 실행하였음에도 왜 다른 스레드가 실행이 바로 되지 않는 걸까요??