본문 바로가기

EXPERIENCE/ETC

ARC, RxSwift, Combine 설명할 수 있을 때까지! (with. 차이점)

728x90
728x90

 

 

 

728x90

 

 

 

 

 

Swift를 공부하다보면 자주 만나는 단어들이 있다.

오늘은 그 중 3가지를 가져와서 정의만 간단히 정리해보고자 한다.

추후 비동기 프로그래밍을 간단한 예제를 만들어보며 더 자세히 올려볼 생각이다!

그리고 가능하다면 금주 안으로는 기본 제일 먼저 짚고 넘어 갔어야 할 함수형 프로그래밍 이론에 대한 정리를 해보고자 생각 중 이다 ㅜㅜ

 

 

 

 

 

 

정의

 

  • ARC

: Auto Reference Counting의 약자로써 참조 카운트를 스스로 체크하여 메모리 관리를 해주는 도구

: 컴파일 타임에 참조 카운트를 증가시키는 retain과 감소 시키는 release을 적절 위치에 삽입하므로써 메모리 관리를 도와주는 도구

 

  • RxSwift

: Reactive eXtensions의 약자로 비동기식 프로그래밍 혹은 이벤트 기반 프로그램을 편리하게 만들 수 있도록 Swift로 만든 라이브러리

: 관찰 가능한 시퀀스 또는 함수 형태의 연산자를 이용해 비동기 또는 이벤트를 위한 프로그램을 구현할 수 있도록 구성된 Swift 라이브러리

: 각각의 Observer가 Observable을 구독하고 이벤트가 발생하면 반응하는 방식으로 사용한다

 

  • Combine

: 이벤트 처리 연산자를 결합하여 비동기식 이벤트 처리를 맞춤 제작하는 Apple에서 제공하는 프레임워크

: 시간 경과에 따라 값을 처리하기 위한 선언적 Swift API를 제공하는 것

: Publisher는 시간이 지남에 따라 변경될 수 있는 일련의 값을 전달할 수 있도록 선언하고, Subscriber는 받는 요소에 따라 작동하도록 선언하여 사용함

 

 

 

 

 

 

차이점
RxSwift Combine
- 내부적으로는 DispatchQueue와 같은 코드를 사용하여 작동하며, 이처럼 랩핑되어있기에 느리며 많은 메모리를 소요한다

- iOS 8.0이상
- Apple에서 공식적으로 제공하는 프레임워크로 빠르고 메모리 소요가 적다

- iOS 13.0이상

 

 

 

 

 

 

 

 

참고사이트

 

728x90
728x90