ios
-
LLDB - ๋ช ๋ น์ด (4)LLDB 2021. 4. 20. 11:54
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ค๋ ํฌ์คํ ์์๋ LLDB์์ ๋ชจ๋ ๋ด ์์ธํ ์ ๋ณด๋ฅผ ์ป๋ Image ๋ช ๋ น์ด์ ๋ช ๋ น์ด์ ๋ณ์นญ์ ๋ถ์ฌํ์ฌ ์ฌ์ฉํ๋ Alias ๋ช ๋ น์ด์ ๋ํด ์์๋ณด๊ณ ํ์ตํ๊ฒ ์ต๋๋ค๐ง๐ป๐ป Image? - (lldb) image subcommand - ๋ชจ๋ ๋ด ์ฌ๋ณผ์ ์ ๋ณด๋ฅผ ์ป๋ ๋ช ๋ น์ด๋ก ์ธ๋ฐํ ์ ๋ณด ํ์์ด ๊ฐ๋ฅ - ํด๋น ๊ธฐ๋ฅ์ ํตํด ์จ๊ฒจ์ง๊ฑฐ๋ ์ธ๋ถ์ ์ธ privateํ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ Module & Symbol? - ๋ชจ๋์ ํ๋ก์ธ์ค์์ ์คํ๋๋ ํ๋ ์์ํฌ/๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ ๋ชจ๋ ๊ฒ์ ๋งํจ - ์ฌ๋ณผ์ ์์ค์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ ๋จ์๋ก ๋ฉ์๋/๋ณ์/ํด๋์ค ๋ฑ์ ์ ๋ถ ์ฌ๋ณผ๋ก ๋ณผ ์ ์์ (์ฝ๋ ์์ฒด๋ผ๊ณ ๋ณด๋ฉด๋จ) SymbolTable? - ์ปดํ์ผ๋ 2์ง ํํ์ธ binary๋ฅผ ๊ฐ ์ฝ๋์ ํด๋นํ๋ ์ฌ๋ณผ๋ก ๋งคํํด์ฃผ๋ ..
-
LLDB - ๋ช ๋ น์ด (3)LLDB 2021. 4. 19. 17:08
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ค๋ ํฌ์คํ ์์๋ LLDB์์ ๋ธ๋ ์ดํฌํฌ์ธํธ ๋์ด ๋ฉ์ถฐ์์๋ ์ ๋์์ ์คํ์ํค๋ ๋ช ๋ น์ด์ ๊ธฐ๋ฅ์ ๋ํด ์์๋ณด๊ณ ํ์ตํ๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ค๋ ์์๋ณผ ๊ธฐ๋ฅ์ Expression์ ๋๋ค. ๋ง๊ทธ๋๋ก ํด์ํ์๋ฉด ํํ์ด๋ ์๋ฏธ์ ๋๋ค. ๊ทธ๋ผ ์ฐ๋ฆฌ๋ LLDB์์ ์ด๋ค๊ฑธ ํํํด๋ณผ ์ ์์๊น์? ๊ฐ์ฒด ์ํ์ ๋ํ ํํ? ๋ทฐ์ ํํ? ์ด์ ์์๊ฐ๋ณด๋๋ก ํ๊ฒ ์ต๋๋คโบ๏ธ Expression? - breakpoints ๊ฑธ๋ ค์์๋ ์๋ก์ด ๋์์ ์คํ์ํค๋ ๊ธฐ๋ฅ - expression = expr = e po? - ๊ฐ์ฒด์ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๋ ๊ธฐ๋ฅ์ผ๋ก LLDB๋ฅผ ์ ํ๊ณ ๊ฐ์ฅ ๋ง์ด ์ฐ๊ณ ์๋ ๊ธฐ์ด์ ์ธ ๋ช ๋ น์ด - (lldb) expression -O -- (๊ฐ์ฒด)์ ํจ์ถ ํํ - O๋ Object ์ฆ ๊ฐ์ฒด์ ์์ธ..
-
์์ผํต์Swift 2021. 4. 19. 16:21
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์์ผํต์ ์ ๋ํด ์์๋ณด๊ณ swift์์๋ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ๊ฐ๋จํ ์์๋ณด๊ฒ ์ต๋๋ค๐ ์์ผํต์ ? - ๋คํธ์ํฌ๋ฅผ ํตํด ์๋ฒ ํด๋ผ์ด์ธํธ ๋ ๋ถ๋ถ์ ๋งํฌ ์์ฑ ํ ํด๋น ๋งํฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ธฐ์ - HTTP ํต์ ์ธ Request / Response์ ๋จ์ ์ ํด๊ฒฐํด์ค (๋ฐ์ดํฐ ์์ฒญ์ ๊ณ์ ํด์ผํ๋ ๋จ์ ..!) - ์๋ฒ์์ ํฌํธ๋ฒํธ ์ค์ ํ๋ฉด ํด๋ผ์ด์ธํธ์์ ํด๋น ํฌํธ๋ก ์ ์ ์ ์ฐ๊ฒฐ๋จ (์ฐ๊ฒฐ๋์ด ์์ด์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๋ฉด ๋ฐ๋ก๋ฐ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅ) - ์ค์ํํธ์์๋ socket.IO๋ฅผ ์ฌ์ฉํด ๊ตฌํ - ์ฐ๊ฒฐ์งํฅ์ ํต์ / ์ค์๊ฐ ํต์ (์ฑํ ๋ฐ ์คํธ๋ฆฌ๋ฐ ๋ฑ) HTTP ํต์ ๊ณผ์ ์ฐจ์ด? - HTTP ํต์ ์ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ผ๋๋ง ์๋ฒ๊ฐ ์๋ตํ๊ณ ๊ทธ ๊ณผ์ ์ด ๋๋๋ฉด ์ฐ๊ฒฐ ์ข ๋ฃ..
-
LLDB - ๋ช ๋ น์ด (2)LLDB 2021. 4. 17. 11:25
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ค๋ ํฌ์คํ ์์๋ LLDB์์ ์ํ ๋ณํ๋ฅผ ์ค ์ ์๋ ๋ช ๋ น์ด์ ๊ธฐ๋ฅ์ ๋ํด ์์๋ณด๊ณ ํ์ตํ๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ค๋ ์์๋ณผ ๊ธฐ๋ฅ์ Stepping์ธ๋ฐ์, ์คํ ํ ๋ง ๊ทธ๋๋ก ๋ฐ๊ฑธ์ ๊ฐ์ ์๋ฏธ๋ก LLDB์์ ํ๋ก์ธ์ค ์งํ ์ํ๋ฅผ ๋จ๊ณ๋ณ๋ก ๋์๊ฐ๋ฉด์ ์ํ ๋ณํ๋ฅผ ๋ณผ ์ ์๋ ๊ธฐ๋ฅ์ ๋๋ค. Stepping์๋ 3๊ฐ์ง์ ๊ธฐ๋ฅ์ด ๋ด๊ฒจ์๋๋ฐ Step Over / Step In / Step Out์ ๋๋ค. ๊ทธ๋ผ ์ด์ ์์ธํ 3๊ฐ์ง์ ๊ธฐ๋ฅ๊ณผ ์ด๋ค ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉฐ ๋ฌด์จ ์ฐจ์ด๊ฐ ์๋์ง ์์๋ณด๊ฒ ์ต๋๋ค๐ Step Over : ๋ธ๋ ์ดํฌํฌ์ธํธ๊ฐ ๊ฑธ๋ ค์๋ ์ํ์์ ๋ค์ ์ฝ๋๋ก ๋์ด๊ฐ๋ ๊ธฐ๋ฅ์ผ๋ก ์ถ๊ตฌ์์๋ ํ๋ค๋ฆฌ ์ง๊ธฐ ๋์์ธ๋ฐ ์ด๋ป๊ฒ ๋ณด๋ฉด ํ๋ค๋ฆฌ๋ฅผ ์ง๋ ๋์ ์์ฒด๊ฐ ์ง๊ธ ํ์ฌ ์์น๋ณด๋ค ๋ฐ์ ํ๋จ๊ณ ๋ ๋์๊ฐ์ ์ง๋..
-
LLDB - ๋ช ๋ น์ด (1)LLDB 2021. 4. 16. 17:27
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ LLDB์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ ๊ตฌ์กฐ์ ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ๋ช ๋ น์ด์ ๋ํด ํ์ตํ๊ฒ ์ต๋๋ค๐ LLDB์ ๋ฌธ๋ฒ ๊ตฌ์กฐ : (lldb) command [subcommand] -option “Argument” - command & subcommand: lldb ์์์์ ์ค๋ธ์ ํธ ์ด๋ฆ (๋ธ๋ ์ดํฌํฌ์ธํธ, ์ , ๋ฆฌ์คํธ ๋ฑ) -> ๊ณ์ธตํ ๋ฐ ์ปค๋งจ๋์ ๋ฐ๋ผ ์๋ธ์ปค๋งจ๋ ์ข ๋ฅ๊ฐ ๋ค๋ฆ - option: ์ปค๋งจ๋ ๋ค ์ด๋๊ณณ์ด๋ ์์น๊ฐ ๊ฐ๋ฅํจ - Argument: ์ธ์์ ๊ณต๋ฐฑ์ด ํฌํจ๋์ด์์๋๋ ์์ด ์ฃผ๋ก ๋ฌธ์์ด์ฒ๋ผ ๋ฌถ์ด์ ํํํด์ค (๊ผญ ๋ฌธ์์ด์ฒ๋ผ ๋ฌถ์ด์ ํํํด์ผ๋๋๊ฒ์ ์๋) - ๋ช ๋ น์ด์ ์ต์ ๋ค์ ์ 1~2๊ฐ ์ฒ ์๋ก ํจ์ถํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ ex) (lldb) breakpoint set --file ViewCon..
-
LLDB - ๊ฐ๋ ๋ฐ ์๊ฐLLDB 2021. 4. 16. 17:09
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ค๋๋ถํฐ LLDB๋ฅผ ๋ถ์ ๋ณด๊ฒ ์ต๋๋ค!! ์ด๋ฒ ํฌ์คํ ์ LLDB๋ ๊ฐ๋ตํ ๋ฌด์์ธ์ง ์ ์ฌ์ฉํ๋๊ฒ์ธ์ง? ๊ฐ๋ ๋ฐ ์๊ฐ๋ฅผ ํ๊ฒ ์ต๋๋ค๐ง๐ป๐ป LLDB? - Low-Level Debugger๋ผ๋ ๋ป์ผ๋ก LLVM์ ๋๋ฒ๊ฑฐ ์ปดํฌ๋ํธ๋ฅผ ๊ฐ๋ฐํ๋ ์ ํ์ ์๋ธ ํ๋ก์ ํธ - ๋ก์ฐ๋ ๋ฒจ ์ปจํธ๋กค ๊ฐ๋ฅํ ๋ชจ๋๋ก ์ด๋ค์ ธ์์ผ๋ฉฐ ๊ธฐ๊ณ์ด์ ๊ฐ๊น์ด ์์ญ๊น์ง ๋๋ฒ๊น ๊ฐ๋ฅ (C/C++/Object-C/Swift ์ง์) - Xcode์ ๊ธฐ๋ณธ ๋๋ฒ๊ฑฐ๋ก ๋ด์ฅ - ์ฐจ์ธ๋ ๊ณ ์ฑ๋ฅ ๋๋ฒ๊ฑฐ!? - Clang์ ํ์ ๋ฐ LLVM ๋์ค์ด์ ๋ธ๋ฌ์ ๊ฐ์ LLVM ํ๋ก์ ํธ์ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ ์งํฉ์ผ๋ก ๋น๋๋จ - ์ค์ ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ์ดํด๊ฐ ์ฌ์์ง - LLVM์ ํ๋ก ํธ์๋์ ๋์ํ๋ ๋๋ฒ๊ฑฐ๋ก ๊ฐ๊ฒฐํ๊ณ ..
-
RxSwiftRxSwift 2021. 4. 15. 16:07
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ RxSwift์ ๋ํด ๊ธฐ์ด์ ์ธ ๋ถ๋ถ์ ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ฐ์ ์ด์ ํฌ์คํ ์ธ SwiftUI์ ์ด์ด RxSwift๋ฅผ ํ์ตํ๊ธฐ์ ์ ์ด๋ฐ๊ฒ์ ๋ํด ๋ฐฐ์์ผํ๋์ง ๋ญ๊ฐ ์ค์ํ์ง ๊ฐ๋ตํ ์์๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๊ธฐ ์ํด์๋ ์ฐ์ MVVM์ ๋ํด ์ ํ์๊ฐ ์์ต๋๋ค. MVC / MVP / MVVM 1. MVC - ์ปจํธ๋กค๋ฌ์์ ์ฌ์ฉ์์ ์ด๋ฒคํธ๋ฅผ ๋ฐ๊ณ ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญ ๋ฐ ๋ณํํ์ฌ ๋ทฐ์ ์ ๋ฐ์ดํธ ํด์ฃผ๋ ์ํคํ ์ณ ํจํด - ๊ฐ๊ฐ์ ๋ถ๋ฆฌํ์ฌ ์์กด์ฑ์ ์์ ๋ คํ๋๋ฐ ๋ทฐ์ ์ปจํธ๋กค๋ฌ์์๋ ์ํต์ ํ๊ธฐ์ ์์กด์ฑ์ด ์๊ธธ ์ ์์ด ์ฌ์ฌ์ฉ์ฑ์ด ๋ฎ์์ง 2. MVP - MVC์ ๋์ผํ ๊ฐ๋ ์ผ๋ก C๋์ P๊ฐ ๋ค์ด๊ฐ๊ฒ์ผ๋ก ํ๋ ์ ํฐ๋ก ๋ณ๊ฒฝ - ๋ทฐ์ ํ๋ ์ ํฐ์ ์์กด์ฑ ๋ฌธ์ ๊ฐ ๊ฒฐ๊ตญ ๋ํ๋จ 3. MVVM -..
-
SwiftUISwiftUI 2021. 4. 14. 22:55
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ค๋์ ํฌ์คํ ์ SwiftUI์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป SwiftUI? - ์ค์ํํธ ์ธ์ด๋ก ๋ชจ๋ ํ๋ซํผ์์ ์ฑ์ ๋ํ UI์ ๋์์ ์ ์ธํด์ฃผ๋ ํ๋ ์์ํฌ - ์ ๊ทผ์ฑ ๋ฐ ์ง์ญํ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์๋์ผ๋ก ์ง์ํด์ค (๋คํฌ๋ชจ๋, ์ ๋์ ๊ธ์ ํฌ๊ธฐ ์กฐ์ ๋ฑ) - UIKit, AppKit, WatchKit ํ๋ ์์ํฌ ๊ฐ์ฒด์ ํตํฉํด ํ๋ซํผ ๋ณ ๋ ๋ง์ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ - ์บ๋ฒ์ค์ ์ฝ๋๊ฐ ๋๊ธฐํ๋์ด MVVM ์ํคํ ์ณ ํจํด์ ์ ํฉ - Xcode12, iOS13 ์ด์๋ถํฐ ์ง์ ๊ฐ๋ฅ - ๋ทฐ ํ๋กํ ์ฝ์ ์ฑํํ๊ณ ๋ฐ๋๋ฅผ ๊ตฌํํด์ฃผ์ด ๋ทฐ๋ฅผ ์ฌ์ฉํ๊ฒํจ - ๊ณต๊ฐ์ ๊ฐ๋ ์ผ๋ก ๋ทฐ๋ฅผ ๋ง๋ค๋ฉด ์ค์๋ถํฐ ์ฐจ์งํ๊ฒ๋จ (์๋์ ์ด ์๋) SwiftUI ์ฅ์ ? - ํ๋ฒ์ ๊ฐ๋ฐ๋ก ๋ชจ๋ ํ๋ซํผ์์ ๋์์ด ๊ฐ๋ฅํ ์ฑ ..