๐ iOS & ๐น Flutter/๐ถ ๊ถ๊ธ์ฆ5 [iOS] ARC_๊ฐ์ฒด ์๋ช , weak์ unowned ์ฐจ์ด Swift์์ struct์ ๊ฐ์ ๊ฐ ํ์ ์ด ์๋๋ผ, class์ ๊ฐ์ ์ฐธ์กฐ ํ์ ์ ์ฌ์ฉํ๋ฉด ์ฐธ์กฐ ์นด์ดํธ, Reference Count๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค. ์ด๋ ์ ํ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ฑฐ๋, ์ฐธ์กฐํ ๋ ์นด์ดํธ๋ฅผ ์ฆ๊ฐ์ํค๊ณ ์ฌ์ฉ์ ์๋ฃํ๋ฉด ๊ฐ์์ํต๋๋ค.Objective -C์์๋ ์ด๋ฅผ ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ด๋ฆฌํ์๊ณ , ๊ทธ๊ฒ์ MRC Manual Reference Counting ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.๊ทธ๋ฆฌ๊ณ ํ์ฌ Swift์์๋ ์ง์ ์ ์ผ๋ก ์ฐธ์กฐ ์นด์ดํธ๋ฅผ ์ฝ์ ํ๊ณ ํด์ ํ๋ ์ฝ๋๋ฅผ ์์ฑํ ํ์ ์์ต๋๋ค. complier๊ฐ ์ปดํ์ผ ํ์์ ์๋์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์์ ํตํด ์์์ ๊ด๋ จ ์ฝ๋๋ฅผ ์ฝ์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ํด์ฃผ๋๋ฐ ์ด๋ฅผ ARC Automatic Reference Counting์ด๋ผ๊ณ ํฉ๋๋ค.. 2024. 3. 21. [iOS] Swift์ ์ปดํ์ผ๋ฌ _ LLVM โค๏ธ Swift Compiler _ LLVM LLVM์ 2000๋ ์ผ๋ฆฌ๋ ธ์ด ๋ํ์์ Chris Lattner ์ธ ๋ช ๋ช ์ผ๋ก ๊ตฌ์ฑ๋ ์ฐ๊ตฌ ํ์์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ ์ ๋ฐ ๋์ ์ปดํ์ผ์ ๋ชจ๋ ์ง์ํ ์ ์๋ ํ๋์ ์ธ ์ปดํ์ผ ์ ๋ต์ ์ ๊ณตํ๊ธฐ ์ํ ์ฐ๊ตฌ ํ๋ก์ ํธ๋ก ์์๋์๋ค. intermediate / binary ๊ธฐ๊ณ ์ฝ๋๋ฅผ ๊ตฌ์ฑ, ์ต์ ํ, ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ์ปดํจํฐ๊ฐ ์ฝ์ ์ ์๋ intermediate, binary ์ฝ๋๋ก ์ปดํ์ผ ํ๋๋ฐ ์ฌ์ฉ๋๋ค. ๐ ์ปดํจํฐ์ ํ๋์จ์ด๋ Binary Code๋ง ์ฝ์ ์ ์๋ค. ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ์์ฑํ ์ฝ๋๋ค์ ํ๋์จ์ด๊ฐ ์ฝ์ ์ ์๊ฒ ๋ฐ๊ฟ์ฃผ๋ ์์ ์ ๊ฑฐ์ณ์ผ ํ๋๋ฐ ์ด๋ Intermediate Representation, ์ฆ ์ค๊ฐํํ์.. 2024. 3. 12. [NSCache&URLCache]์ ์ด๋ฏธ์ง ํ์ผ์ด URLCache์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ ๋์คํฌ์ ์ ์ฅ๋ ๊น? ์๋ ํ์ญ๋๊น, ๋ฏผํธ์ ๋๋ค. ๐๋ฐ์ดํฐ๋ค์ ์ด๋์ ์ ์ฅ๋๊ณ ์ด๋ป๊ฒ ์ฌ์ฉ๋ ๊น์?๋จผ์ ํ๋ ๋์คํฌ์ ์ฐ๋ฆฌ์ ๋ฐ์ดํฐ๋ค์ด ์ ๋ถ ์ ์ฅ๋ฉ๋๋ค. ๋๋ฌธ์ ํ๋ ๋์คํฌ๋ ์ฉ๋์ด ๋งค์ฐ ํฌ๊ณ , ๊ธฐ์ต์ ํ๋ ๊ฒ์ ์น์ค๋์ด ์์ต๋๋ค.RAM, ๋ฉ๋ชจ๋ฆฌ๋ ๊ทธ๋ฌํ ํ๋ ๋์คํฌ์์ ์ฑ์ ์คํํ๋๋ฐ์ ํ์ํ ์ค์ ๋ฐ์ดํฐ๋ค์ ๋ค๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ ํ ๋ด์ฉ์ ๋ฐฉ๋ํ๊ณ , RAM์ ๋์คํฌ๋ณด๋จ ๊ธฐ์ตํ ์ ์๋ ์์ด ์ ๊ณ , CPU์ ๊ฐ๊น์์ ๋น ๋ฅด์ง๋ง ์ด์ฐ ๋์๊ฑด ๊ธฐ์ต์ ํ๋ ๊ฒ์๋ง ๋ฅ๋ ฅ์ด ์น์ค๋์ด ์์ต๋๋ค.CPU๋ RAM์์ ๋ฐ์ ๋ฐ์ดํฐ๋ค์ ์ด์ฉํด ์ฑ์ ์คํํฉ๋๋ค. ๊ธฐ์ต๋ณด๋ค๋ ์ฑ๋ฅ์ด ์ค์ํด, ๊พธ์คํ๊ฒ ์ฑ๋ฅ์ด ์ ๊ทธ๋ ์ด๋ ๋์ด ์์ต๋๋ค. ๋๋ฌธ์ RAM๊ณผ CPU๋ ๊ธฐ์ต๊ณผ ์ฑ๋ฅ์ผ๋ก ๊ฐ์์ ๋ชฉ์ ์ด ๋ค๋ฅด๊ธฐ์ ์๋ก์๋ก ์ฑ๋ฅ์ฐจ์ด๊ฐ ์ ์ ์ฌํ๊ฒ ๋๊ฒ ๋ฉ๋๋ค. .. 2024. 1. 28. [UIKit]loadView์ view๋ ์ธ์ ํ ๋น๋ ๊น? ์๋ ํ์ญ๋๊น, ๋ฏผํธ์ ๋๋ค. ๐loadView์ View๋ ์ธ์ ํ ๋น๋ ๊น์?์ฝ๋๋ฒ ์ด์ค๋ก ์ง ์ฝ๋์์ ์คํํด ๋ณธ ๋ด์ฉ์ ๋๋ค. ์์์ผ๋ก๋, super.loadView()๊ฐ ์คํ๋๊ธฐ ์ ๊น์ง๋ view๊ฐ nil์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ๋๋ฌธ์ LLDB๋ก view๋ฅผ loadView() ํจ์ ๋ด๋ถ์์ ์ฐ์ด๋ณด์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์์๊ณผ๋ ๋ค๋ฅธ ์ผ์ด ์์์ต๋๋ค. super.loadView()๊ฐ ๋ถ๋ฆฌ๊ธฐ ์ ์ po view๋ก ์ฐ์ด๋ณด๋, loadView์ loadView๋์ด ์ฐํ๋๋, ๊ฐ์ด ๋จ๋ ๊ฒ์ ๋๋ค! ์ฐธ๊ณ ๋ก ์์ UIViewController์ view๋ (id) 0x0์ผ๋ก ํ ๋น๋์ด ์์ง ์์์ต๋๋ค. ์ค๋ฅ์ธ๊ฐ? ์ view๊ฐ ์ฐํ์ง?๊ทธ๋์ loadView()๋ฅผ ์ฌ๋ฌ๋ฒ ์ฐ์ด๋ณด๊ณ ํ๋์ฉ ๋ด๋ ค๊ฐ๋ฉด์ po v.. 2024. 1. 27. [Swift]super.init()์ด ๋ฐ๋์ ํ์ํ๋ ๊ฒฝ์ฐ ์๋ ํ์ญ๋๊น, ๋ฏผํธ์ ๋๋ค. ๐ super.init()์ ๋ํด์ ์ด๊ฒ์ ๊ฒ ์ฐพ์๋ณด๋ค ์ ๊ธฐํ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์์ต๋๋ค.class A { init(some: String) { print("a") }} A์ ๊ฐ์ด ๋งค๊ฐ๋ณ์๊ฐ ์๋ init์ ๊ฒฝ์ฐ์๋, ์์์ ํด์ ๋ด๋ถ์ ๋ณํ๋ฅผ ์ค ๋class B: A { override init(some: String) { super.init(some: some) print("b") }}๋ฐ๋์ super.init์ ๋ถ๋ฌ์ผ ํ๋ค๋ ์๋ฌ ๋ฉ์ธ์ง๊ฐ ๋ด์ต๋๋ค. 2๋จ๊ณ ์ด๊ธฐํ์์ ๋ณด๋ฉด, customize๋ ์ด๊ธฐํ๋ 1. superClass์ subclass๊ฐ ์์ ๋ subClass ์ด๊ธฐํ 2. superClass ์ด๊ธฐํ ์์ผ๋ก ์ฌ๋ผ๊ฐ.. 2023. 11. 8. ์ด์ 1 ๋ค์