목록전체 글 (177)
study record
Background인스타 라이브, 유튜브 라이브는 RTMP 프로토콜을 사용한다고 한다.RTMP란?RTMP(Real Time Message Protocol)은 어도비 독점 프로토콜로 보통 비디오나 오디오 등을 인터넷 상에서 실시간으로 스트리밍 데이터를 전송해서 불특정 다수들이 받아 볼 수 있도록 하는 기술의 규격이다.RTMP와 WebRTC의 차이점?인스타, 유튜브, 트위치 라이브는 RTMP를 사용하여 실시간 스트리밍을 한다. WebRTC는 더 낮은 Latency를 가지고 있고 Real Time과 비슷한 방송을 할 수 있다.구글 밋, 디스코드, 게더 타운 등 어떠한 소프트웨어 설치도 없이 웹브라우저만 있으면 화상 회의를 가능하게 해주는 기술이 WebRTC 기술이다. WebRTC 란?WebRTC(Web Re..
Future하나의 값을 만들고 끝나거나 실패하는 publisherfinal class Future where Failure : Error 어떤 작업을 수행하고 비동기적으로 하나의 값을 publish 하고자 할 때 future를 사용한다. 첫번째 value를 보내면 스트림이 바로 끝난다.Future.Promise를 받는 클로저로 future를 initialize한다. 성공 또는 실패를 가리키는 Result와 함께 promise를 호출한다.결과가 error인 경우 publishing은 에러와 함께 종료된다. func generateAsyncRandomNumberFromFuture() -> Future { return Future() { promise in DispatchQueue.main..
1. Stream이란? 스트림(Stream)이란 데이터의 흐름을 의미한다. 이러한 데이터 흐름은 단방향이며, 한번에 일부 데이터를 처리한다. 즉, 데이터를 한번에 모두 처리하지 않고, 데이터가 하나씩 또는 여러 개씩 일정한 간격으로 생성되어 이를 연속적으로 처리하는 방식이다. 스트림은 많은 데이터를 처리하는 경우 유용하며, 여러 개의 데이터를 처리할 때 코드의 가독성과 유지보수성이 좋아진다. 스트림은 실시간으로 데이터를 처리하고, 데이터가 발생하는 즉시 처리할 수 있어 대규모 데이터 처리에 유용하다. 2. AsyncStream이란? An asynchronous sequence generated from a closure that calls a continuation to produce new elemen..
Chapter 5. Intermediate async/await & CheckedContinuation Continuation continuation은 주어진 포인트에 프로그램의 상태를 추적하는 객체이다. 각각의 비동기 작업 단위를 그것을 위한 전체 스레드 하나를 만드는 것 대신에 continuation에 작업을 할당한다. 이것이 concurrency model이 작업을 하드웨어 가용성에 기반해 더 효율적으로 작업하게 한다. 이것이 CPU 코어만큼만 스레드를 만들게 하고, 스레드들 사이의 변환이 아닌 continuation 사이에서 전환하게 한다. await한 작업이 완료되고 원래 코드가 다시 resume되는 것은 어떻게 작동하는가? 코드가 suspend될 때 그 시점의 전체적인 상태를 캡쳐한 conti..