프로그래밍/JAVA

[RxJAVA] 리액티브자바 프로그래밍 시작하기!

Dibrary 2022. 4. 21. 09:50
반응형

안녕하세요 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번이 나옵니다.

 

우선 시작이니까 잘 이해가 되지 않더라도, 트리거를 주면 데이터 플로우가 한 번에 진행된다는 느낌을 잘 파악하시면 좋습니다.

728x90
반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

JAVA에서 equals와 ==의 차이  (0) 2022.03.17
OpenJDK 를 STS에 적용하기  (0) 2022.01.26