안녕하세요 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..
안녕하세요 Hani입니다. ☺️ 지난 포스팅에서는 WWDC17 Engineering for Testability의 Testable App Code에 대하여 알아봤고 이번에는 같은 세션의 Scalable Test Code에 대하여 알아볼 거예요. Scalable Test Code는 프로젝트의 크기나 복잡성이 커져도 대응할 수 있는 테스트 코드를 말합니다. 이를 위해 테스트 코드를 더 빠르고, 읽기 쉽고, 모듈화를 할 수 있는 방법에 대하여 다룰 거예요. Scalable Test Code를 위한 기술로 총 세 가지가 제시됐는데 순서대로 알아보겠습니당. 먼저 UI Test와 Unit Test의 균형을 맞추는 거예요. ☺️ Unit Test는 UI Test보다 더 빠르기 때문에 테스트 코드에서 더 비중이 커야 ..
안녕하세요 Hani입니다. ☺️ 잠깐 주저리주저리 해보자면.. 얼마 전에 프로젝트를 하나 완성하고 Unit Test까지 해보는 경험을 가졌었는데 테스트 코드를 작성하는 것이 전부가 아니라 Testable한 코드를 짜야 테스트 코드를 잘 쓸 수 있다는 걸 알게 됐어요. 🥺 이 글을 쓰는 이유 역시 Testable한 코드를 짰다고 생각되지 않았기 때문.. 크게는 두 가지 이유가 있었는데 첫번째는 저수준의 모듈은 고수준의 모듈에 직접 의존해도 된다고 생각했어요. 그런데 저저수준(?)의 모듈이 저수준 모듈에 의존하고 저수준 모듈이 고수준 모듈에 의존하다 보니 저저수준이 결국 고수준 모듈에 의존하는 추이 종속성 문제가 있었습니다. (요건 클린 아키텍쳐 개방 폐쇄 원칙 부분 읽으면서 알게 됨..) 그래서 의존성 역..
안녕하세요 Hani입니다. 이번에는 WWDC16에서 발표된 Understanding Swift Performance에 대하여 알아볼 거예요. ☺️ 해당 토픽이 다루는 목차는 총 5개로 이루어져 있어요 1. Allocation 2. Reference Counting 3. Method Dispatch 4. Protocol Types 5. Generic Code 이번 포스팅에서는 Protocol Types에 대하여 다뤄보려고 합니다. 지난번에는 Drawable 클래스와 그 클래스를 상속받는 Point / Line 클래스가 예시로 소개되었는데 이번에는 Drawable 프로토콜과 이를 채택하는 구조체로 바뀌었네욥. 물론 프로토콜을 채택하는 클래스도 가능하지만 의도하지 않은 공유가 일어날 수 있습니다. 🥺 Draw..
- Total
- Today
- Yesterday
- observeOn
- 최단경로문제
- WWDC16
- 부스트캠프 6기
- CompositionalLayout
- WWDC21
- 에드몬드 카프 알고리즘
- mach-o
- 네트워크 유량
- MeTal
- test coverage
- rxswift
- 컴퓨터 추상화
- WWDC17
- Testable
- 최단경로 알고리즘
- IOS
- WWDC19
- 다익스트라 시간복잡도
- 최대 매칭
- 강한 순환 참조
- 벨만포드 시간복잡도
- 포드 풀커슨 알고리즘
- 코딩대회
- CPU와 Memory
- 최단경로 문제
- 벨만포드 알고리즘
- HIG
- State Restoration
- 네트워크 플로우
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |