[RxJAVA] 리액티브자바 프로그래밍 시작하기!
안녕하세요 Dibrary입니다.
RxJAVA에 대한 내용을 정리하고자 합니다.
eclipse에서 RxJAVA를 사용하려면 관련 라이브러리를 사용해야겠죠?
mvnrepository에서 RxJAVA를 입력해서 나온 화면에서 rxjava2를 씁니다.
Maven Repository: Search/Browse/Explore (mvnrepository.com)
사전에 자바 프로젝트를 만들어 두셨다는 전제 하에 진행하겠습니다. (maven을 사용하든, gradle을 사용하든 다 괜찮습니다.)
저는 자바 프로젝트를 gradle로 만들어서 gradle 부분 코드를 복사합니다.
그리고 프로젝트에서 build.gradle 파일에 붙여넣으시면 됩니다.
그리고 프로젝트에서 마우스 오른쪽을 누른 뒤에 Gradle -> Refresh Gradle Project를 한 번 해 주시면 됩니다.
사전준비 끝!
가장 기본적인 Hello World를 RxJAVA를 이용해서 출력 해 보겠습니다.
먼저 클래스 파일을 생성합니다. 그리고 아래와 같이 코드를 작성 했습니다.
일반 JAVA 코딩만을 해 오셨다면 못 보던게 있죠?
바로 Observable, just, subscribe, emit 함수 입니다.
먼저 출력부터 보여드리겠습니다.
대충 출력으로 매칭을 해 보면 Observable.just에 넣은 데이터가 하나씩 '출력'이 되는 걸 알 수 있죠.
출력은 .subscribe에 정의된 함수죠.
Observable은 RxJAVA에서 가장 기본이 되는 클래스 입니다. 데이터를 발행하기 시작하는 시작점이라고 보시면 됩니다.
그 다음에 시작점에서 just함수는 인자로 넣은 값을 차례대로 발행하는 역할을 합니다.
subscribe함수는 Observable를 구독합니다. 여기서 subscribe 함수 내부에 System.out.println함수가 들어가 있는걸 보실 수 있습니다. Observable.just에서 차례대로 발행한 데이터는 subscribe에 전달된 함수를 사용하게 됩니다.
근데, 그저 이렇게 까지만 코드르 작성하면 동작하지 않습니다.
실제 이렇게 짠 코드가 동작하는 순간을 알려면 신호를 줘야 합니다. 그게 emit입니다.
코드 입장에서 emit을 써준 부분에서만 Observable이 동작하는 것이죠.
2 부분에 emit을 쓰면 두 번 나올까요? 직접 입력해보면 알겠죠.
출력은 예상한 대로 2번이 나옵니다.
우선 시작이니까 잘 이해가 되지 않더라도, 트리거를 주면 데이터 플로우가 한 번에 진행된다는 느낌을 잘 파악하시면 좋습니다.