본문 바로가기
🍎 iOS/RXSwift

[RxSwift] Observable

by hyebin (Helia) 2024. 6. 7.

Observable 이란?

Observable은 RxSwift에서 데이터의 스트림을 나타냅니다. 단순히 말하자면, Observable은 시간이 지남에 따라 여러 값을 방출할 수 있는 객체입니다. 이러한 값들은 사용자 입력, 네트워크 요청 응답, 파일 입출력 등 다양한 소스에서 발생할 수 있습니다. Observable은 세 가지 유형의 이벤트를 방출할 수 있는데, 이는 next, error, completed입니다.

  • next
    • Observable이 새로운 데이터 요소를 방출할 때 발생합니다.
    • Observable은 여러 개의 next 이벤트를 발생시킬 수 있습니다.
  • error
    • 에러가 발생했을 때 방출되며, 이후에는 더 이상의 이벤트가 발생하지 않습니다.
  • completed
    • Observable이 모든 데이터 요소의 방출을 완료했음을 나타냅니다.
    • 이후에는 더 이상의 이벤트가 발생하지 않습니다.

Observable 생성하기

RxSwift에서 Observable을 생성하는 방법은 여러 가지가 있습니다. 가장 간단한 방법은 Observable.just, Observable.of, Observable.from 등의 연산자를 사용하는 것입니다.

// 단일 요소를 포함하는 Observable 생성
let observable1 = Observable.just("Hello, RxSwift!")

// 여러 요소를 포함하는 Observable 생성
let observable2 = Observable.of("Hello", "RxSwift")

// 배열의 요소를 개별 요소로 방출하는 Observable 생성
let observable3 = Observable.from(["Hello", "RxSwift"])

 

Observable 구독하기

Observable에서 이벤트를 수신하려면, subscribe 메서드를 사용하여 구독해야 합니다. subscribe 메서드는 Observable이 방출하는 이벤트를 처리할 핸들러를 인자로 받습니다.

observable1.subscribe { event in
    print(event)
}

 

Observable의 생명주기

Observable은 구독이 시작될 때 활성화되고, completed 또는 error 이벤트가 발생하면 종료됩니다. 이것은 RxSwift의 Disposable을 통해 관리될 수 있으며, 필요 없어진 구독을 적절하게 해제하여 리소스 누수를 방지할 수 있습니다

let subscription = observable1.subscribe(onNext: { element in
    print(element)
})

// 구독 해제
subscription.dispose()

 

이처럼 RxSwift의 Observable은 비동기 프로그래밍을 간결하고 효율적으로 만들어주는 강력한 도구입니다. 데이터 스트림을 쉽게 생성, 변환, 구독할 수 있게 해 주며, 복잡한 비동기 코드를 더 이해하기 쉽고 관리하기 쉬운 방식으로 작성할 수 있게 도와줍니다.

반응형

'🍎 iOS > RXSwift' 카테고리의 다른 글

[RxSwift] RxSwift란?  (0) 2024.06.03

댓글