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이상 |
참고사이트
- https://daesiker.tistory.com/m/95
- https://sujinnaljin.medium.com/ios-arc-%EB%BF%8C%EC%8B%9C%EA%B8%B0-9b3e5dc23814
- https://ios-development.tistory.com/95
- https://duwjdtn11.tistory.com/583
- https://developer.apple.com/documentation/Combine
- https://icksw.tistory.com/271
- https://eunjin3786.tistory.com/67