티스토리 뷰
Retrofit에 Rx를 같이 적용하면서 생긴 궁금증이었다.
처음에 Observable을 이용하여 만드는 소스를 봐서 당연히 Observable을 사용해야한다고 생각했었는데
Single을 사용해보라는 이야기를 들었는데 찾아보니 Observable에는 종류가 있었다.
과연 Single과 Observable에는 어떤 차이가 있을까?
먼저 Observable은 전송된 데이터를 관찰하는 관찰자 클래스이다.
따라서 Retrofit에서 데이터가 오는 것을 관찰하고있는다.
Observable은 데이터가 전송되는 것을 계속 감지하게되는데
내가 사용한 REST API에서는 데이터를 1번 request하고 그에 대한 응답을 받은 뒤에는 계속해서 관찰할 필요가 없었다.
계속해서 관찰하는게 결국엔 메모리 낭비가 됨으로 dispose를 직접 해줬어야했는데 Single을 이용하면 그렇지 않다.
Single도 마찬가지로 데이터를 관찰하지만 Single은 데이터를 한 번만 받는다.
즉, 데이터를 받게되면 더이상 데이터가 전송되는지에 대해 감지하지 않는다.
따라서 내가 일일히 dispose 해줄 필요가 없으므로 나 같은 경우에는 Single을 사용하는 것이 훨씬 편리한 개발을 진행할 수 있는 것이었다.
이런식으로 Observable의 종류는 Single 뿐만 아니라 maybe, Completable 등이 존재한다.
'Android' 카테고리의 다른 글
LayoutContainer는 캐시가 되고 있을까? (0) | 2020.01.18 |
---|---|
Inconsistency detected 에러에 대한 의심.. (0) | 2020.01.11 |
Kakao REST API 사용하기 (2) | 2019.06.12 |
네이버 아이디 로그인 API를 사용해보자 (1) | 2018.08.08 |
기상청에서 제공하는 Json 파일로 지역코드와 지역명 파싱하기 (0) | 2018.05.19 |
댓글