[swift] RxSwift란?

2024. 6. 20. 17:32·swift

RxSwift를 알기 전에 먼저 Reactive Programming을 알아야 한다.

 

Reactive Programming이란?

Reactive Programming이란 비동기적 데이터 흐름과 전달에 관한 프로그래밍 패러다임이다.

이러한 Reactive Programming의 핵심은 모든 것을 비동기적 데이터의 Stream으로 간주하고, 다양한 방법을 통해 이러한 비동기 이벤트를 처리하는 것이다.

 

RxSwift란?

RxSwift란 Reactive Extension + Swift의 약자로 비동기 프로그래밍을 관찰 가능한 순차적 형태와 함수 형태의 연산자를 통해 처리하게끔 도와준다.

 

RxSwift를 사용하는 이유

  • Reactive Programming된 API를 제공하기 때문에 명확하고 명시적으로 비동기 데이터를 처리할 수 있다.
  • 다양한 비동기 처리방식을 하나로 통합함으로써 코드에 일관성을 제공한다.
  • 결국 확장이 어려웠던 아키텍쳐 패턴까지 해결할 수 있다.
  • 콜백 지옥에서 탈출하여 코드가 깔끔해지고 스레드관리가 용이해진다.

RxSwift의 단점

  • 러닝커브가 높다.
  • 작동 기반이 비동기로 이루어져 있어 디버깅이 어렵다.
  • 클로저 사용이 많기 때문에 메모리 누수 및 순환참조가 일어날 수 있다. 이를 피할 수 있도록 캡처 리스트를 신경써야 한다.

Observable

  • Observable은 데이터를 스트림 형태로 처리하는 객체이다.
  • 시간이 지남에 따라 변할 수 있는 값을 방출하며, 이 데이터를 구독(Subscribe)하여 처리할 수 있다.

Observer

  • Observer는 Observable이 방출하는 값을 수신하고 처리하는 역할을 한다.
  • Observable을 구독하여, 새로운 데이터가 방출될 때마다 그 값을 처리한다.

 

 

'swift' 카테고리의 다른 글
  • [swift] Tuist 겉핥기
  • [swift] 위치 권한 설정
  • [swift] ARC
  • [swift] URLSession
GwanSon
GwanSon
버그는 도전, 코드는 해결. 열정있는 개발을 하자.
  • GwanSon
    관슨의 개발일지
    GwanSon
  • 전체
    오늘
    어제
    • 분류 전체보기 (56)
      • iOS (3)
      • swift (15)
      • UIKit (0)
      • swiftUI (2)
      • 알고리즘 (8)
      • CS (8)
      • 면접 (11)
      • Flutter (4)
      • 회고 (2)
      • 잡담 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    2025 토스 Next
    챌린지
    네이버 부스트캠프 후기
    백준
    ios
    토스
    네이버 부스트캠프
    후기
    부스트캠프
    boj
    tuist
    모듈화
    부스트캠프 10기
    Swift
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
GwanSon
[swift] RxSwift란?
상단으로

티스토리툴바