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)과 같은 스트리밍 프로토콜을..
AVKit
·
iOS/Framework
AVKit이란? 이전 포스팅에서 AVFoundation은 여러 미디어 데이터를 다루는데 중점을 둔 프레임워크라고 배웠다.그렇다면 그 데이터를 실제 재생하고 컨트롤하는 UI는 어디에 있을까 ?? 위에 그림을 보면 AVFoundation은 UIKit보다 아래에 있어 표준 UI를 제공해주지 않는다.그러므로 미디어 데이터를 다루는 UI를 만들기 위해서는 AVFoundation보다 아래 계층에 있어야한다. 하지만 이 경우는 상당히 low-level까지의 지식과 많은 작업량이 필요한데 이 때 애플에서는 AVkit이라는 걸 제공하게된다.  역할Create user interfaces for media playback, complete with transport controls, chapter navigation, p..
AVFoundation (1) [AVAsset]
·
iOS/Framework
부스트 캠프의 여정이 어느새 마무리 단계인 그룹미션이 어느새 다음 주로 다가왔다.이번주부터 1주일 정도 개인 공부를 할 수 있는 시간이 있어서 나는 평소에 관심있던 스트리밍쪽 기술을 공부해보려고한다.스트리밍 쪽 공부를 하기 위해 가장 기본이 되는 기술이 AVFoundation이라고 많이 추천을 해주셨다.  이번에 한번 깊이 공부해보자. AVFoundation이란?AVFoundation이란 apple 생태계에서 미디어와 관련된 모든 측면을 다룰 수 있는 매우 유연하고 확장 가능한 프레임워크이다.Work with audiovisual assets, control device cameras, process audio, and configure system audio interactions. 역할1. 미디어 재..
퀵 정렬과 퀵 선택
·
PS/알고리즘
퀵 정렬 개념정해진 pivot을 기준으로 pivot보다 작은 것은 왼쪽 piviot보다 큰 거는 오른쪽으로 배치한다. 퀵 정렬은 크게 2가지 과정으로 이루워진다. partition을 통해 pivot을 기준으로 정렬한다. 재귀적 반복을 통해 잘게 분할한다. 여기서 분할하는 기준은 pivot의 정렬된 이후 위치이다.전체 적인 과정은 아래에서 살펴보자.과정 pviot을 고르 때 가장 오른쪽에 있는 값을 고른다.우리는 두가지 포인터를 사용한다.i = 바뀜을 당할 위치 포인터 , i는 low부터 시작한다. [ 왼쪽 끝에서 시작 ]j = arr를 순회할 포인터 pivot가 비교될  값들  arr[j] pivot 이하라는 것은 왼쪽에 위치해야하므로, i를 증가 즉, 바뀔 공간을 확보한다.이후 j와 i 값을 바꿈 , ..
해시 테이블
·
CS/자료구조
오늘은 멘토님의 갑작스러운 질문에 답변하지 못했던 기억을 되살려 해시테이블을 뿌셔보려고한다.사실 swift에서는 굳이 해시 테이블을 직접 구현해서 쓸일 이 없다 왜냐면 딕셔너리가 있기 때문이다. 하지만 꼭 내가 swift만 공부할거라는 보장도 없고 이번 기회에 내부적으로 어떤식으로 공부하면 다른 언어에서도 자료구조 공부할 떄 도움이 될 것 같다 . 그러면  거두절미하고 바로 들어가보자. 해시 테이블이란?  해시 테이블은 Key - value 형태로 데이터를 저장하는 자료구조 중 하나이며 다음과 같은 특징을 같는다.특징key 값을 해시 함수를 통해 해시 주소값 해시 index(해시 주소값)으로 바꾼다.value에 접근할 때는 위에서 만든 해시 index을 통해 접근한다.해시 테이블의 평균 시간 복잡도는 O..