RxSwift의 Cold vs Hot 개념 정리iOS 개발을 하다 보면 비동기 작업을 다룰 일이 많다.예를 들어, 네트워크 요청을 하거나, 사용자의 버튼 탭 이벤트를 처리하고,그에 따른 화면 UI를 업데이트하는 작업은 거의 매일 마주치는 일이다.이럴 때 자주 쓰게 되는 것이 Observable이다.그런데 개발을 하다 보면 다음과 같은 의문이 생길 때가 있다.“같은 Observable인데 구독할 때마다 동작이 다르네?”“subscribe만 했을 뿐인데 왜 두 번 요청이 나가지?”이런 현상은 대부분 Observable이 Cold인지 Hot인지에 따라 달라지는 동작 때문이다.이번 글에서는 RxSwift의 Cold Observable과 Hot Observable의 차이를 명확하게 짚어보고,실제 iOS 프로젝트에..
Combine, 왜 필요한가?iOS 개발을 하다 보면 비동기 작업을 처리해야 하는 경우가 많다.예를 들어, 네트워크 요청, UI 이벤트 처리, 데이터 스트림 관리 등이 대표적이다.기존에는 이를 해결하기 위해 Completion Handler, NotificationCenter, KVO, Delegate 패턴 등을 사용했다.하지만 이 방식들은 콜백 지옥(Callback Hell)을 유발하거나, 코드가 복잡해지는 문제가 있었다.Combine은 이런 문제를 해결하고, 데이터 스트림을 선언적으로 관리할 수 있도록 도와주는 프레임워크다.이번 글에서는 Combine의 개념, 기본 사용법, 활용하는 방법까지 하나씩 알아보자Combine이란?Combine은 Apple이 iOS 13부터 도입한 비동기 & 반응형 프로그래..
WebRTC(Web Real-Time Communication)는 브라우저, 모바일 앱 간에 직접 오디오, 비디오, 데이터 전송을 가능하게 하는 실시간 통신 기술이다.RTMP나 HLS 같은 스트리밍 프로토콜과 달리, 서버를 거치지 않고 P2P(Peer-to-Peer) 방식으로 데이터를 주고받을 수 있다는 것이 가장 큰 특징이다.현재 WebRTC는 화상 회의, 라이브 스트리밍, 온라인 게임, 원격 제어 등 실시간 상호작용이 필요한 서비스에서 널리 사용되고 있다.이번 글에서는 WebRTC의 개념, 동작 방식, 그리고 기존 스트리밍 기술과의 차이점까지 자세히 알아보자WebRTC의 동작 방식WebRTC는 기본적으로 P2P(피어 투 피어) 방식으로 작동하지만, 네트워크 환경에 따라 중계 서버를 활용하는 방식도 가..
HLS란 무엇인가?HLS(HTTP Live Streaming)는 Apple에서 개발한 HTTP 기반의 미디어 스트리밍 프로토콜이다.기존의 RTMP가 저지연 스트리밍에 최적화되어 있다면, HLS는 안정성, 보안, 다양한 디바이스 지원을 위해 설계되었다.현재 YouTube, Netflix, Twitch, Disney+ 등 대부분의 스트리밍 플랫폼에서 HLS를 표준으로 사용하고 있다.이번 글에서는 HLS의 개념, 동작 방식, 그리고 RTMP와의 차이점까지 자세히 살펴보자!HLS의 동작 방식HLS는 RTMP처럼 지속적인 TCP 연결을 유지하는 방식이 아니라, 비디오 데이터를 작은 조각(Chunks)으로 나누어 HTTP를 통해 전송하는 방식이다.🔄 HLS의 기본 흐름1️⃣ 미디어 파일을 여러 개의 작은 조각(C..