Metal은 아래 표에 있는 스칼라 데이터 타입을 지원하는데 double, long long 등의 타입은 지원하지 않습니다. 🥺 Metal은 스칼라 데이터 타입에 사용할 수 있는 몇 가지 리터럴 접미사를 제공합니다. F 단정밀도 부동 소수점을 지정하기 위한 리터럴 H 반정밀도 부동 소수점을 지정하기 위한 리터럴 U 부호가 없는 정수를 위한 리터럴 L 부호가 있는 long 정수를 위한 리터럴 각 리터럴 접미사는 대소문자를 구별하지 않아요. ☺️ 여기서 음? 하는 포인트 단정밀도 + 반정밀도 + 부동 소수점.... 🥺 이를 이해하기 위해 컴퓨터가 실수를 표현하는 방식을 알아야 합니다. 사람은 0.75를 그대로 받아들일 수 있지만 컴퓨터는 0.75를 2진수로 0.11로 표현합니다. 그런데 0.3같은 경우는 2..
마이클 플린이 제안한 플린 분류(Flynn's taxonomy)라는 컴퓨터 아키텍처 분류에 따르면 아키텍쳐는 사용가능한 동시 명령어 수와 데이터 스트림에 따라 나눌 수 있어요. 각각 단일(Single)이냐 다중(Multiple)이냐에 따라서 총 네 가지로 나뉘는데 그 중 SIMD(Single Instruction, Multiple Data)은 하나의 Instruction으로 다수의 Data를 처리하는 아키텍처입니다. ☺️ (SIMD는 벡터 및 행렬 연산을 통해 비디오 인코딩이나 그래픽 렌더링 등에서 성능상 이점을 가져갈 수 있어요.) 여기서 Data란 64비트(MMX), 128비트(SSE), 256비트(AVX) 등의 크기를 가진 자료를 말합니다. Arm은 Intel의 AVX, AVX512 등의 데이터를 ..
안녕하세요 Hani입니다. Core Animation을 알아볼 거예욥. 목차는 이렇구 1. Core Animation Basics 2. Setting Up Layer Objects 3. Animating Layer Content 4. Building a Layer Hierarchy 5. Advanced Animation Tricks 6. Changing a Layer’s Default Behavior 7. Improving Animation Performance 이번엔 첫 번째 주제인 Core Animation Basics 차례 ☺️ Core Animation은 iOS와 macOS에서 뷰를 비롯한 시각적 요소의 그래픽 렌더링과 애니메이션을 위한 프레임워크예요. Core Animation은 시각 컨텐츠를 ..
안녕하세요 Hani입니다. 이번에는 WWDC18 Behind the Scenes of the Xcode Build Process를 정리해볼 거예요. 목차 🧐 1. Build System 2. Clang Build 3. Swift Build 4. Linker 이 세션에서는 PetWall이라는 앱을 가지고 빌드 과정을 알아볼 겁니당. ☺️ 먼저 구현 코드가 들어가있는 소스 파일가 컴파일러에 의해 컴파일되고 컴파일된 코드와 라이브러리가 링커에 의해 링크가 됩니다. 다음엔 리소스들이 복사되고 Code Sign을 하며 shell script나 makefile에서 사용자 정의 작업을 할 수도 있습니다. 빌드 과정에서 이러한 작업들은 Command Line Tool을 동작시켜 수행되는데 Xcode Project Co..
안녕하세요 Hani입니다. iOS Memory Deep Dive 정리할 거예욥. 메모리 공간은 페이지라는 단위로 나뉘며 한 페이지에는 여러 객체가 담길 수도 있고, 한 객체가 여러 페이지를 차지할 수도 있어요. OS는 메모리를 페이지 단위로 할당하게 됩니다. 한 페이지의 크기는 16KB = 16384(16*1024)B 이며 페이지의 종류는 크게 두 가지로 나눌 수 있어요. Clean: 할당은 되었지만 쓰기 작업이 일어나지 않은 상태 Dirty: 할당되었고 동적 객체에 의해 사용되는 상태 뒤에서 Compressed 라는 페이지 종류도 소개할 거예요. 그니까 총 3갠데 일단 두 개로 알아둡시당. Int 타입을 2만개 저장할 수 있는 배열을 동적할당한 모습이에요. 2만 * int 타입 크기 / 16KB 을 소..
안녕하세요 Hani입니다. 이번에는 LLDB를 이용한 디버깅 방법에 대하여 알아볼 거예욥. LLDB는 런타임에 앱을 디버깅할 수 있도록 도와주는 디버거예요.🍔 좌하단에서 런타임에 값을 확인할 수 있고 우하단에 lldb 보이시져? 저기다 커멘드 입력하면 됩니다. po, p, v 커멘드를 순차적으로 알아볼게욥. po 변수명 객체에 대한 description을 출력해주는 명령이에요. CustomDebugStringConvertible 프로토콜을 채택하고 debugDescription 프로퍼티를 구현하면 객체의 description이 구현한 문자열로 바뀝니다. CustomReflectable 프로토콜을 채택하여 하부 구조를 커스텀할 수도 있습니당. 단순한 출력뿐 아니라 의도한 대로 출력할 수도 있어요. ☺️ p..
- Total
- Today
- Yesterday
- 벨만포드 시간복잡도
- State Restoration
- 최대 매칭
- observeOn
- 코딩대회
- 에드몬드 카프 알고리즘
- WWDC16
- 네트워크 플로우
- Testable
- mach-o
- test coverage
- WWDC21
- HIG
- 컴퓨터 추상화
- 다익스트라 시간복잡도
- IOS
- WWDC19
- WWDC17
- MeTal
- 강한 순환 참조
- CompositionalLayout
- CPU와 Memory
- 최단경로문제
- 포드 풀커슨 알고리즘
- rxswift
- 최단경로 문제
- 최단경로 알고리즘
- 부스트캠프 6기
- 벨만포드 알고리즘
- 네트워크 유량
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |