[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기
반응형

분류 전체보기 495

[Swift] AVFoundation 기초

최근에 AVFoundation을 알아야 할 일이 있어서 공부를 좀 했습니다. 본 포스트는 애플 공식 문서의 의역을 대다수 포함합니다. AVFoundation 시청각 asset들로 작업하고, 장치 카메라를 제어하고, 오디오를 처리하고, 시스템 오디오 상호 작용을 구성할 수 있습니다. AVFoundation은 Apple 플랫폼에서 미디어를 검사, 재생, 캡처 및 처리는 등 광범위한 작업을 포괄하는 몇 가지 주요 기술 영역을 포괄하고 있습니다. UIKit 너머의 Core 프레임워크와 맞닿아 있는 프레임워크입니다. AVAsset https://developer.apple.com/documentation/avfoundation/avasset/ 시간이 지정된 시청각 미디어를 모델링하는 객체 해당 객체는 파일 기반의..

🍎 Apple/Swift 2023.07.15

[Swift][문서의역] Macro

본 포스트는 스위프트 공식문서의 매크로에 대한 설명을 의역한 것이며 편의를 위해 생략 혹은 추가된 내용이 있을 수 있습니다. Macro https://docs.swift.org/swift-book/documentation/the-swift-programming-language/macros 컴파일 타임에 코드를 만들 수 있는 기능 Macro는 컴파일할 때 소스코드를 변환해서 반복적인 코드를 최소화할 수 있도록 돕는다 컴파일시간에 Swift는 코드를 빌드하기 전에, 코드 안에 존재하는 모든 매크로를 확장(Expands)한다. 매크로의 특징 매크로의 코드 확장 작업은 추가적인 작업으로, 기존 코드를 수정하거나 삭제하지는 않는다. 매크로 코드와 매크로 확장 결과 코드 모두에서 유효한 Swift 코드 여부를 확인..

🍎 Apple/Swift 2023.07.15

[Swift] Mirror

Mirror Mirror란 reflection은 일반적인 프로그래밍 기능 중 하나로, 런타임에 동적으로 멤버를 검사하고 작업할 수 있습니다. 원래는 Swift같이 정적으로 타입을 지정하는 언어에는 사용하지 않지만 Swift2부터 지원이 추가되었습니다. Swift에서 reflection을 사용하면 struct, class 혹은 기타 타입에 관련없이 타입에 있는 stored property의 값을 읽을 수 있습니다. reflection을 사용하기 위해 필요한 객체가 Mirror입니다. Mirror는 인스턴스의 저장 property, collection 혹은 tuple의 요소 등에 대해 특정 인스턴스를 구성하는 부분을 설명합니다. Mirror는 어떻게 Mirror가 렌더링될지 지정하는 "display styl..

🍎 Apple/Swift 2023.05.18

[앱 추천] 드래그 번역 툴 DeepL Translate

안녕하세요 이누입니다. 🐕 제가 원래 앱 소개글같은건 잘 안올리는 사람인데... 이건 너무 편해서 정보 공유안하고는 못 배겨서 올려요 하하 DeepL https://www.deepl.com/translator DeepL 번역: 세계에서 가장 정확한 번역기 텍스트 및 전체 문서 파일을 즉시 번역하세요. 개인과 팀을 위한 정확한 번역. 매일 수백만 명이 DeepL로 번역합니다. www.DeepL.com 회사 동료분의 추천으로 알게된 DeelL이라는 번역 앱인데요. 이게 꽤나 성능이 준수합니다. 저는 구글 번역이나 파파고 번역에 밀리지 않거나 그 이상이라고 느꼈어요. 그런데 그냥 번역을 잘해주기만하면 추천 글까진 올리지 않았을겁니다. DeepL에서 제공해주는 앱을 Mac에 직접 설치해서 사용해보니 너무 편리하..

[Concurrency] Actor

Task 복습 Task는 block 내부를 비동기적으로 실행해준다. print("\\(Thread.current)") Task { print("\\(Thread.current)") } print("\\(Thread.current)") // {number = 1, name = main} // {number = 6, name = (null)}// {number = 1, name = main} 그런만큼 각 Task는 독립적인 동작을 수행한다. 만약 참조타입의 값을 공유할 경우, 데이터에 동시적으로 접근하는 Data Race가 발생할 수 있다. 다만 무조건으로 동시성을 보장하는 것은 아닌데, 부모의 Context를 물려받는 경우 Task를 열어 비동기 컨텍스트를 만들어도 같은 스레드에서 실행될 수 있기 때문이다..

[Concurrency] Continuation

Continuation Continuation Continuation는 동기식 코드와 비동기식 코드 간의 인터페이스를 위한 메커니즘이다. 즉, 동기식 코드를 비동기식 코드에 이식할 때 간단하게 인터페이스를 제공해줄 수 있는 것이다. 그 종류에는 정확성 체크를 진행하는 CheckedContinuation와 체크하지 않는 UnsafeContinuation가 있다. 정확성 체크란 누락되거나 여러 번 재개된 작업이 있는지 런타임 검사를 수행하는 것을 의미한다. UnsafeContinuation는 오버헤드가 적은 것을 목표로 하기 때문에 불변성을 체크하지 않는다. 대표적으로 사용하는 함수는 withCheckedThrowingContinuation(withCheckedContinuation)이다. func getD..

[Concurrency] Task

Task Task : 격리되어 있고 독립적인 비동기 작업 단위로, 코드 내에서 이를 활용하면 내부 코드는 비동기적으로 동작한다. async 함수를 사용하기 위해서는 그 함수를 호출하는 컨텍스트 또한 동시성을 띄고 있어야 한다. (스레드가 제한된 상황에서는 처리 불가능) 그러면 async를 호출하는 곳을 async로 만들고 이를 반복하다보면 결국엔 일반 메서드까지 도달할텐데 어떻게 처리해야 할까? 이럴 때 사용하는 것이 Task이다. Task를 사용하면 명시적으로 동시성 컨텍스트를 생성할 수 있게 된다. 함수를 async로 표시하면 기본적으로 Task를 기반으로 한 동시성 컨텍스트를 사용하지만, 한 비동기 함수에서 다른 비동기 함수를 호출할 때는 여전히 동일한 Task(실행 컨텍스트)가 실행에 사용된다. ..

[Concurrency] async / await

기초 개념 스레드와 실행컨텍스트 스레드 : 운영체제 관리하는 실행단위로, 하나의 프로세스 내에서 여러개의 스레드가 동시에 실행될 수 있다. 스레드는 독립적인 스택 및 레지스터를 가지고 있으며 CPU가 실행할 수 있는 최소 단위이다. 스레드는 병렬성을 구현하는데 사용된다. 실행 컨텍스트 : 실행중인 코드의 실행상태를 추상화하는 개념으로, 실행 컨텍스트는 해당 코드의 실행위치, 변수값, 호출스택 등을 저장한다. 비동기적 실행을 구현하는데 사용된다. 각 실행 컨텍스트가 해당 코드의 실행 상태를 저장하고 있어 해당 코드가 중단되고 다시 실행될 수 있다. 예를 들어 함수를 호출하면 해당 함수는 독립적인 실행 컨텍스트를 가진다. Swift에서는 Task로 실행 컨텍스트의 개념을 대체한다. 하나의 스레드는 여러개의 ..

[UIKit] 선언형 레이아웃 라이브러리 SwiftLayout

https://github.com/ioskrew/SwiftLayout GitHub - ioskrew/SwiftLayout: A swifty way to use UIKit A swifty way to use UIKit. Contribute to ioskrew/SwiftLayout development by creating an account on GitHub. github.com 안녕하세요! 오늘은 SwiftLayout이라는 오픈소스 라이브러리를 소개해보려 합니다. SwiftLayout은 한마디로 정의하면 UIKit에서 SwiftUI 같은 선언적 레이아웃 관리를 할 수 있도록 도와주는 라이브러리입니다. if kakao에서 발표된 영상을 간단하게 정리한 게시글이니, 관심이 있으신 분은 구현자분들께서 직접 설..

🍎 Apple/UIKit 2022.12.14

[회고] 신입 iOS 개발자가 되기까지 feat. 카카오

카카오에서 두 달간의 인턴 기간을 마치고 정규직 전환에 성공했습니다. 이로서 어엿한 신입 iOS 개발자가 되었네요. 지금까지 꾸준히 노력했던 시간들을 한 번에 인정받은 것 같아서 기쁩니다. 이렇게 되니 지난 시간들이 새록새록 떠오르며 기분도 센치해지네요. 감성 가득 찬김에 지금까지 개발자가 되기 위해 준비했던 시간들을 되돌아보면 좋을 것 같아서 키보드를 잡았습니다. 커리어적인 이야기보단 개인적인 이야기가 대부분이니 감안해서 읽어주세요! 2019년 컴퓨터공학부 전과와 독고다이 라이프 (2019.03 ~ 2019.12) 군대에서 독학했던 파이썬에 흥미를 느끼고 개발의 폭넓은 문제 해결 능력에 매력을 느낀 저는 전역 후 컴퓨터공학부 전과를 결심합니다. 그런데 생각해보면 정말 아무것도 모르고 전과를 결심했던 것..

반응형