Task
·
iOS/Swift Concurrency
Task정의A unit of asynchronous work. @frozenstruct Task where Success : Sendable, Failure : Error 구조체로 만들어진 비동기 작업 단위독립적인 스레드에 할당되도록한다.작업은 병렬적으로 일처리를 진행구조1. 리턴 값let task: Task = Task { return "String"}작업 성공 시 결과 값Success와 Failure를 지정해줄 수 있다. 여기서 리턴 값은 Success에 해당되는 부분이다.변수.value 를 이용해서 얻어 낼 수 있다.위 코드에서는 String에 해당된다.2. 결과 값리턴 값과 혼동이 될 수 있지만 말그대로, Result 형태로 받는다.변수.result로 얻을 수 있다.Task 블럭 내에서 발생..
클로저와 self
·
프로그래밍언어/swift
클로저간단하게 클로저를 먼저 정리해보자.함수는 이름이 있는 클로저클로저는 1급 객체이다.클로즈는 참조타입이므로 기본적으로 힙에 할당된다.Closure란 내부 함수와 내부 함수에 영향을 미치는 주변 환경을 모두 포함한 객체이다.클로저 캡처클로저 캡처란 매개변수나 지역변수가 아닌 외부 context를 사용하기 위해 주변 외부의 context를 참조하는 것클로저는 값을 캡처할 때, Value / Reference 타입에 관계 없이 모두 Reference 캡처를 사용한다. 즉 , 참조를 한다는 뜻캡처 리스트 값 타입은 값을 복사해서 캡처 - 외부 요인에 의한 값 변경을 방지!참조 타입은 캡처리스트 내에서 weak, unowned 참조 선언 (강한 참조 해결)클로저와 self @escaping 키워드클로저와 s..
코어 / 프로세스 / 스레드, 동기 / 비동기, 직렬 / 동시 / 병렬 프로그래밍
·
CS/OS
1. 코어코어는 CPU(프로세서)의 실행 단위이다.  하나의 CPU에는 하나 이상의 코어가 포함된다.각 코어는 독릭접으로 작업을 수행할 수 있는 '작은 프로세서'라고 이해하면된다. 다른 말로하면 멀티코어 프로세서는 여러개의 코어가 하나의 CPU안에 있다는 뜻이다. 멀티코어 프로세서는 병렬성을 활용하여 여러 작업을 동시에 처리하는데, 싱글코어와 비교했을 때 성능적 이점이 크다.2. 프로세스프로그램이 실행될 때 운영체제에 의해 메모리에 로드되고 실행되는 상태하나의 프로그램에는 하나의 프로세스가 할당된다.3. 스레드하나의 프로그램에서 여러개의 작업을 수행하기 위한 더 작은 실행 단위하나의 프로세스에는 여러 개의 스레드가 할당된다. 스레드끼리는 스택을 제외한 메모리를 공유하기하기 때문에 통신이 더 빠르고 효율적..
AVFoundation (4) [AVAudioSession]
·
iOS/Framework
AVAudioSession란?정의An object that communicates to the system how you intend to use audio in your app. 오디오 세션을 관리하는 객체로, 앱에서 오디오 입출력 동작을 제어하는 데 사용한다.class AVAudioSession : NSObject 특징오디오 활성화 처리오디오 카테고리 설정오디오 모드 설정오디오 라우팅 제어오디오 인터럽트 처리 1.  오디오  active / deactive앱이 오디오를 사용할 것인지 / 사용이 끝난지에 대한 설정 Audio Session Active (활성화)간단히 표현하면, OS에게 앞으로 이 앱이 오디오를 쓸 것이라고 알리는 것. 오앱이 사용할 오디오 옵션들을 구성한 뒤, 이 옵션을 반영하기 위해..
AVFoundation (3) [AVPlayerLayer]
·
iOS/Framework
AVPlayerLayer이란?이전 포스팅에서 우리는 AVPlayer라는 것을 학습했다. AVPlayer는 오직 미디어 데이터를 재생하고 컨트롤 할 수 있는 기능을 담당하고 있다. 즉 유저에게 시각적으로 제공되는 역할을 할 수 없다.  바로 그 역할을 도와주는 것이 AVPlayerLayer다 An object that presents the visual contents of a player object. class AVPlayerLayer : CALayer 역할1. 비디오 콘텐츠 렌더링AVPlayerLayer는 AVPlayer 객체에서 재생되는 비디오 스트림 화면에 표시하는 역할을 한다.2.비디오 크기 조절videoGravity 속성을 통해 비디오 콘텐츠 크기를 조절할 수 있다.resizeAspect , ..
AVFoundation (2) [AVPlayer, AVPlayerItem]
·
iOS/Framework
이전 AVKit 에서 우리는 미디어 데이터를 재생할 때 별도의 커스텀이 없는 UI를 사용할 때는 AVKit을 이용했다. 이번 학습에서는 커스텀 UI를 통해 미디어 데이터를 다뤄보자. AVPlayer란?정의 오디오 및 비디오 콘텐츠를 재생하는데  다양한 제어를 위한 인터페이스를 제공한다.  class AVPlayer : NSObject 역할1. 비디오 및 오디오 재생로컬 파일뿐만 아니라 네트워크 스트리밍 콘텐츠도 재생할 수 있다2. 미디어 제어재생, 일시 정지, 앞으로/뒤로 탐색 등의 기본적인 미디어 제어 기능을 제공한다.3.시간에 따른 재생 제어특정 시간으로 점프하거나 현재 재생 시간을 확인할 수 있습니다.4. 네트워크 스트리밍 지원HTTP Live Streaming (HLS)과 같은 스트리밍 프로토콜을..