๐ญ ๋ผ-์ดํ
์ค๋์ ๋ฐฐ์ #118
์ค๋์ ๋ฐฐ์ #118
2022.01.172022.01.16 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. Disposables.create ์ฝ๋ ๋ฏ์ด๋ณด๊ธฐ Rx ๊ณต๋ถ ๋ฉด์ ์ค๋น ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. Extension์ ์ถ๊ฐํ ์ ์๋ ํ๋กํผํฐ์ ์ข
๋ฅ๋ ์ฐ์ฐ ํ๋กํผํฐ, ํ์
์คํํฑ ์ ์ฅ ํ๋กํผํฐ์ด๋ค. ํ์
ํด๋์ค ์ ์ฅ ํ๋กํผํฐ๋ ์ถ๊ฐ๊ฐ ์๋จ. ํ๋กํ ์ฝ์ extension์๋ ์คํํฑ ์ ์ฅ ํ๋กํผํฐ๋ ์ถ๊ฐ๊ฐ ์๋๋ค. ํด๋ก์ ์ ๊ฐ ์บก์ณ์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ๋ ๋ฒจ ์ง์์ ์์ฃผ ์์ธํ ์จ๋์ ๋ต๋ณ์ด ์๋ค. ๋ด์ผ ์ฝ์ด๋ด์ผ๊ฒ ๋ค. Swift function object wrapper in apple/swift After reading: https://github.com/rodionovd/SWRoute/wiki/Function-hooking-in-Swift https://github.c..
์ค๋์ ๋ฐฐ์ #117
์ค๋์ ๋ฐฐ์ #117
2022.01.162022.01.15 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. CALayer ์ ๋ฆฌํ๊ธฐ - ์ด์ ์ข ์ดํด๊ฐ ๋ ๊ฒ ๊ฐ๋ค. ๋ฉด์ ์ค๋น - Rx ๊ณต๋ถ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. ๋ทฐ๊ฐ ์์ฑ๋ ๋ ์ฌ์ฉํ CALayer์ ํ์
์ ๋ฐ๊ฟ์ฃผ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค. layerClass ํ๋กํผํฐ๋ฅผ ๋ทฐ์์ ์ค๋ฒ๋ผ์ด๋ฉํด์ ์ํ๋ ๋ ์ด์ด ํด๋์ค์ ๋ฉํํ์
์ ๋ฐํํ๋ฉด ๋๋ค. UIView๋ CALayer์ delegate ๊ฐ์ฒด์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ๋ํ ์ธํฐํ์ด์ค๋ CALayerDelegate์ ๋ ๊ฐ์ ๋ฉ์๋๊ฐ ์ ์๋์ด ์๋ค. ๋ ๋ฉ์๋๊ฐ ํด์ผํ๋ ์ผ์ CALayer์ ํ๋ฉด์ ๊ทธ๋ฆฐ ์ปจํ
์ธ ๋ฅผ ๋นํธ๋งต์ผ๋ก ๋ฐ๊ฟ์ ์ ๊ณตํ๋ ๊ฒ์ด๋ค. ์ ์ด๋ ๊ฒ ํ๋๋ฉด CALayer๋ ์ง์ ๊ทธ๋ฆฌ๋๊ฒ ์๋๋ผ ๋นํธ๋งต์ผ๋ก ์ปจํ
์ธ ๋ฅผ ๊ด๋ฆฌํ๊ณ ์ด๊ฑธ ์บ์ฑํด๋์๋ค๊ฐ ํ๋ฉด์ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค. ..
์ค๋์ ๋ฐฐ์ #116
์ค๋์ ๋ฐฐ์ #116
2022.01.142022.01.14 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ์ค๋
ธ์ฐ ์ฝํ
๋ณด๊ธฐ ์ด๋ฒ ์ฃผ์ ๋ฉด์ ๋ณธ ๋ ๊ณณ ๋ฉด์ ๋ณต๊ธฐ naljin๋ gcd ํฌ์คํธ ์ญ ๋ค์ ์ฝ์ด๋ณด๊ธฐ - ํญ์ ๋๋ผ์ง๋ง ๊ธ์ ์ง์ง๋ก ์ ์ฐ์ ๋ค.. ๊ฐ๋ฒผ์ด๋ฏํ๋ฉด์ ํ์ํ ๋ด์ฉ์ ๋ชจ๋ ์ ๋ฌํ์ ๋ค. ๋ณธ๋ฐ๊ณ ์ถ์ ํฌ์คํ
์ค๋ ฅ.. [iOS] ์ฐจ๊ทผ์ฐจ๊ทผ ์์ํ๋ GCD — 1 ์ด๋ฒ์ ์ ๋ฐ ์ดํดํ๊ณ ์ถ๋ค GCD..๐ฅ sujinnaljin.medium.com ๋ฉ์ธ ์ค๋ ๋์์ UI๋ฅผ ๋ชจ๋ ์ฒ๋ฆฌํ๋ ์ด์ ์ฝ์ด๋ณด๊ธฐ - ์ฝ๊ฐ ๋ก์ฐ๋ ๋ฒจ ๊ฐ๋
์ด ์์ฌ์์ด์ ์ฝ์ง๋ ์๋ค. iOS: Why the UI need to be updated on Main Thread Do you ever think about why UI really MUST to be updated on main thread? W..
์ค๋์ ๋ฐฐ์ #115
์ค๋์ ๋ฐฐ์ #115
2022.01.122022.01.12 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ๋ฉด์ ์ค๋น ์๊ณ ๋ฆฌ์ฆ ํ๊ธฐ - ๋ฌธ์์ด์ด ๋ถ์กฑํ ๊ฒ ๊ฐ์์ ์ด๋ ต์ง ์์ ๋ฌธ์ ๋ก ์ญ ํ์ด๋ดค๋ค. ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. ์ค๋์ ์๋ก์ด ์ง์์ ํ์ตํ์ง๋ ์์๋ค. ์ค๋ ๋๋ ๊ฒ. ์ค๋์ ํ ๊ธฐ์
์์ ๋ถํฉ๊ฒฉ์ ๋ฐ์๋๋ฐ ๋ฌ๊ธ์๋ ์๊ฐ์ ์ ๋ฌผ์ฒ๋ผ ๋ค๋ฅธ ๊ธฐ์
์์ ๋ฉด์ ์ด ํ๋ ๋ ์กํ๋ค. ์ด๋ป๊ฒ๋ ๊ณ์ ๊ธฐํ๊ฐ ์ฃผ์ด์ง๊ณ ์๋ค๋ ๊ฒ์ ๊ฐ์ฌํ๋ค ์ ๋ง! ์ค๋์ ์ง์ค์ด ์ ์๋ผ์ ํผ์ ์นดํ์ ์์์ ๊ฐ๋ฅ์ฒ ํ์ ํ๋ค. ๋ด๊ฐ ์ง์์๋ฅผ ๋ฃ๊ธฐ๋ก ๊ฒฐ์ ํ ํ์ฌ๋ค์ ๊ธฐ์ค์ด ์ด๋ ๋์ง, ๋๋ 5๋
, 10๋
๋ค์ ์ด๋ค ๊ฐ๋ฐ์๋ก ์ด๊ณ ์ ํ๋์ง, ๋์๊ฒ iOS๋ ์ด๋ค ์์ญ์ธ์ง.. ์ฌ์ค ์๋ฒฝํ๊ฒ ์ ๋ฆฌ๊ฐ ์ ์๋๊ณ , ๋ฑ ์ ๋ฆฌํ ์๋ ์๋ ์ฃผ์ ๋ค์ด๊ธฐ๋ํ๋ค. ๊ฐ๊น์ด ๋ฏธ๋์๋ ๋ ์๊ฐ์ด ๋ฐ๋์๋ ์๋ ๋ฌธ์ ์ด๊ณ . ๋ ..
์ค๋์ ๋ฐฐ์ #114
์ค๋์ ๋ฐฐ์ #114
2022.01.122022.01.11 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ์๊ณ ๋ฆฌ์ฆ ํ ๋ฌธ์ NSCoder ์ ๋ฆฌ URLSession ์ ๋ฆฌ WWDC ์์ ๋ณด๊ธฐ - https://developer.apple.com/videos/play/tech-talks/10855/ Explore UI animation hitches and the render loop - Tech Talks - Videos - Apple Developer Explore how you can improve the performance of your app's user interface by identifying scrolling and animation hitches in your app... developer.apple.com ์ฌ์ค ๋ณด๊ณ ์๋ฒฝํ๊ฒ๋ ์ดํด ๋ชปํ๋๋ฐ, ํฐ..
์ค๋์ ๋ฐฐ์ #113
์ค๋์ ๋ฐฐ์ #113
2022.01.102021.01.10 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ๋ฉด์ ๋ณด๊ณ ์ค๊ธฐ. ํ๊ต ์ง์ง ๋ฉ์ ธ.. ๊ณผ์ ๋ง๋ฌด๋ฆฌ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. ์๋กญ๊ฒ ๋ฐฐ์ด ๊ฒ๋ค์ ๋ง์ด ์๋ค. ๋ฉด์ ๊ณผ์ ์์ URLSessionDataTask์ ์ค๋ ๋์ ๋ํ ์ง๋ฌธ์ ๋ฐ์๋๋ฐ, ์ด๋ค ์ค๋ ๋์์ ํ์คํฌ๊ฐ ๋์๊ฐ๋์ง ์๊ฐ์ ์ํด๋ดค๋ค. ๋ด์ผ ์ข ์ฐพ์๋ด์ผ๊ฒ ๋ค. ๊ณผ์ ๋ฅผ ํ๋ฉด์ Compositional Layout์ ๋ค์ ์ฌ์ฉํด๋ดค๋ค. ํ์คํ ํ
์ด๋ธ ๋ทฐ์ ์คํฌ๋กค๋ทฐ๋ ์ฝ๋ ์
๋ทฐ๋ฅผ ๋ผ์๋ฃ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ํธ๋ฆฌํ ๊ฒ ๊ฐ๋ค..! ์ค๋ ๋๋ ๊ฒ. ๋ฉด์ ๊ฒฝํ์ด ๋๋ฌด ์ข์๊ณ , ๊ทผ๋ฌด ํ๊ฒฝ์ด๋ ๋ถ์๊ธฐ๋ ์์ฒญ ์ข์๋ณด์ฌ์ ์ง์ง ์ข์ ํ์ฌ๊ฐ๋ค๋ ์๊ฐ์ ํ๋ค..! ์ ๋ฐฐ ๊ฐ๋ฐ์๋ถ๋ค์ด๋ ํฐํ์์ ๊ฐ์ง๋ค ์จ ๋๋.. ํ์ง๋ง ๋๋ตํ์ง ๋ชปํ ๋ถ๋ถ๋ ์ ์ง์๊ฒ ์์๊ณ ํด์ ์ด๋ฒ์๋ ๊ธฐ๋ํ์ง ์๊ณ ๊ธฐ๋ค๋ฆฌ..
์ค๋์ ๋ฐฐ์ #112
์ค๋์ ๋ฐฐ์ #112
2022.01.092022.01.08 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. Rx ์ ๋ฆฌํ๊ธฐ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. ์ต์ ๋ฒ๋ธ์ ์์ ํ๋กํ ์ฝ์ ObservableType์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ฐ ์ฑํํ๋ ํ๋กํ ์ฝ์ ObservableConvertibleType. ObserverbaleConvertibleType์ asObservable์ ๋ํ ๋ช
์ธ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ์ด๊ฑธ ObservableType์์ ๊ตฌํํ๊ณ ์์. ๊ทผ๋ฐ ์ฌ์ค์ Observable์ createํจ์๋ฅผ ๋ถ๋ฅด๋ฉด์ ์๊ธฐ๋ฅผ subscribeํ๋ ๋ก์ง์ ๋ฃ์ด์ค๋ค. ์ต์ ๋ฒ๋ธ์ ์์ํ๋ ๋ชจ๋ ํ์
๋ค์ ๊ฐ์ ์์ ์ subscribe๋ฅผ ๊ตฌํํ๊ณ ์๋ค. just, single ์ฒ๋ผ ์๊ฐ๋ฅผ ์์ฐ๊ณ create๋ก ๋ง๋๋ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง. ์ด๋ด๋๋ AnonymousObservable์ด ๋ง๋ค์ด์ง๋ค. su..
์ค๋์ ๋ฐฐ์ #111
์ค๋์ ๋ฐฐ์ #111
2022.01.072022.01.07 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ๋ฉด์ ์ค๋น - iOS ๊ณผ์ ์งํ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. ์๋๋ฐ์ค ๋๋ ํ ๋ฆฌ๋ค์ด ๊ฐ์ง๋ ์ฐจ์ด๋ค ์ค์ ๋์ฌ๊ฒจ ๋ณด์์ผํ๋ ๊ฒ์ iCloud ๋ฐฑ์
์ฌ๋ถ์ธ ๊ฒ ๊ฐ๋ค. ์บ์ ๋๋ ํ ๋ฆฌ๋ ๋ฐฑ์
์ด ์๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์คํฌ ๊ณต๊ฐ์ด ๋ถ์กฑํ๋ฉด ์์คํ
์ด ์ฌ๊ธฐ ์๋ ํ์ผ๋ค์ ์ง์ธ ์๋ ์๋ค(์คํ ์ค๋ฒํ๋ก์ฐ์์ ์ด๋ ๊ฒ ๋งํ๋๋ฐ ์ถ์ฒ๋ฅผ ๋ชจ๋ฅด๊ฒ ๋ค. ๊ทธ๋ฅ ์๋์ฒ ์ํ๋๊ฒ ๋์ ๊ฒ ๊ฐ๋ค..) ์ฝ์ด๋ฐ์ดํฐ์ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ค์ application support์ ์ ์ฅ๋๊ณ ์ด ๋๋ ํ ๋ฆฌ๋ ๋ฐฑ์
์ด ๋๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋ ์ํ๋ก ์ด๋ํ๋ ์ฑ์ ๋ง์ง๋ง์ผ๋ก ํ๋ฉด์ ๋ณด์๋ ๋ทฐ๋ฅผ ์ค๋
์ท์ฐ์ด์ ์บ์ ๋๋ ํ ๋ฆฌ์ ์ ์ฅํด๋๋ค. ๋ง์ฝ ์ฑ์ด suspended๋์๋ค๊ฐ ํฌ๊ทธ๋ผ์ด๋๋ก ๋์์ค๋ฉด ์ฌ์ค์ ์ฑ์ด ๋ค์ ์์๋๋๋ฐ, ์ฌ์ฉ์๊ฐ ์ด..
์ค๋์ ๋ฐฐ์ #110
์ค๋์ ๋ฐฐ์ #110
2022.01.052022.01.05 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ํด์์ ์ฆ๊ธฐ๊ธฐ ๊ฐ๋ณ๊ฒ ๋ฏธ๋์ ๊ธ ์ฝ๊ธฐ Open Nuts and Bolts of Memory Management in iOS : Swift Part 2 Continuing part 1, we have few more things to bath into. I recommend you to read Part 1 first if you haven’t, so that you can get full… varun04tomar.medium.com Open Nuts and Bolts of Memory Management in iOS : Swift Part 1 Memory management is one of the crucial part in any development. ..
์ค๋์ ๋ฐฐ์ #109 ๐๐ปโ๏ธ
์ค๋์ ๋ฐฐ์ #109 ๐๐ปโ๏ธ
2022.01.042022.01.04 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ๋ฉด์ ๋ณด๊ธฐ ๊ณผ์ ์งํ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. ๋ ์์ง ๊ฐ ๊ธธ์ด ๋ฉ์๋ค๋๊ฒ... ์ค๋ ๋๋ ๊ฒ. ํ๋ก์ ํธ๋ฅผ ํ ๋ ๋๋ฆ ๊ณ ๋ฏผ์ ๋ง์ด ํ๋ค๊ณ ์๊ฐํ๋๋ฐ, ๋์น ๋ถ๋ถ๋ ๋ง์ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ฐ ๋ถ๋ถ๋ค์ ์ ์ง์ด์ฃผ์
์ ๊ฐ์ ํ๊ณ ์ถ์ ์ ๋ค์ด ๋ง์ด ์๊ฒผ๋ค. ์๋
๋ฉด์ ๋ณด๋ค๋ ์ค์ค๋ก ๋ง์ด ์ฑ์ฅํ๋ค๊ณ ๋๊ผ๋ค. ๊ฒฐ๊ณผ๋ ๊ธฐ๋ํ์ง ์๊ณ ๊ทธ๋ฅ ๊ทธ๋์ ๋์๊ฒ ๋งก๊ธฐ๊ธฐ๋ก ํ๋ค. ๋ณต๊ธฐ๋ฅผ ํด๋ณด๋๊น ์ง๋ฌธ์ 40๊ฐ ์ ๋ ๋ฐ์๋ค.. ์ง์ง ์ฝ์ง ์์๋ค.. ๋ด์ผ์ ๊ณํ. ์ค๋ ์๋ฒฝ๊น์ง ๊ณผ์ ๋ฅผ ๋ง๋ฌด๋ฆฌํ๊ณ ๋ด์ผ์ ์ฌ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. ๋ช๋ฌ๋ง์ธ๋ฐ ์ ๋๋ก ์ฌ์ด๋ณด์. ์ค๋์ ๊ฐ์ฌ. ๋ฉด์ ์ ์ ๋ง์น๊ฒ ํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค! ๊ฒฐ๊ณผ๋ฅผ ๋ ๋์ ์ต์ ์ ๋คํด์ ์ค๋นํ ์ ์๊ฒ ํด์ฃผ์
์ ๊ฐ์ฌํด์.
์ค๋์ ๋ฐฐ์ #108
์ค๋์ ๋ฐฐ์ #108
2022.01.022022.01.01 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ๋คํธ์ํฌ ๊ณต๋ถ RxSwift ๊ณต๋ถ ๊ณผ์ ์งํ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. HTTP, TCP, UDP๋ฅผ ๋นก์๊ฒ ์ ๋ฆฌํด๋ดค๋ค. TCP๋ ์ ๋ขฐ์ฑ ์๋ ํต์ ์ ๋ณด์ฅํ๋ ์ฐ๊ฒฐ์งํฅํ ํ๋กํ ์ฝ, UDP๋ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง๋ ์์ง๋ง ๋น ๋ฅธ ์๋๋ฅผ ์ง์ํ๋ ๋น์ฐ๊ฒฐํ ํ๋กํ ์ฝ ์ ๋ขฐ์ฑ ์๋ ํต์ ์ ๋ณด์ฅํ๊ธฐ ์ํด์ ์ค๋ฅ์ ์ด, ํ๋ฆ์ ์ด, ํผ์ก์ ์ด๋ฅผ ์ ๊ณตํ๋ค. ๋๋ถ์ TCPํค๋๋ UDP๋ณด๋ค ํจ์ฌ ๋ ๋ฌด๊ฑฐ์ ๋ ์ ๋ขฐ์ฑ ์๋ ํต์ ์ด๋ ๋ฐ์ดํฐ์ ์์๋ ๋ณด์ฅํด์ผํ๊ธฐ ๋๋ฌธ์ seq๊ณผ ack number๋ก ์ง์ํจ. seq๋ ์ก์ ํ ๋ฐ์ดํฐ์ ์ฒซ ๋ฒํธ. ack๋ ์๋๋ฐฉ์๊ฒ ๋ค์์ ๋ฐ์์ผํ ๋ฒํธ ํ๋ฆ์ ์ด๋ stop and wait์ด๋ sliding window. stop and wait์ ๋ณด๋ธ ๋ฐ์ดํฐ์ ๋ํ..
์ค๋์ ๋ฐฐ์ #107 ๐
์ค๋์ ๋ฐฐ์ #107 ๐
2022.01.012021.12.31 2021๋
์ ๋ง์ง๋ง ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ์ ์ง๋, ์ ์๋์ด๋ ํ๋ก์ ํธ ์ ๋ฆฌํ๊ธฐ. ๋คํธ์ํฌ ๊ณต๋ถ ๊ณผ์ ์ ํ ์งํ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. Sequence Number๋ TCP ์ธ๊ทธ๋จผํธ๊ฐ ๊ฐ์ง๋ ๋ฐ์ดํฐ ๋ฒํธ๋ฅผ ์๋ฏธํ๋ค. ์ด๊ฑธ๋ก ์์ ์๋ ํจํท์ ์์๋๋ก ๋ชจ์์ ํฉ์น ์ ์๋ค. Acknowledgement Number๋ ์๋๋ฐฉ์๊ฒ ๋ฐ์์ผํ๋ ๋ค์ ์ธ๊ทธ๋จผํธ ๋ฒํธ๋ฅผ ์๋ฏธํ๋ค. ๊ธฐ๋ณธ ๊ฒ์ดํธ์จ์ด๋ ๋ผ์ฐํฐ์ ํ ๋น๋ ip์ฃผ์. ๋ผ์ฐํฐ๋ ๋คํธ์ํฌ๋ฅผ ๋๋๋ ์ญํ ์ ํ๋ค. ์ค์์น๋ก๋ ๋ถ๊ฐ๋ฅํจ. ๊ณต์ธ ip๋ฅผ ๋ผ์ฐํฐ์ ๋ถ์ฌํ๊ณ ๋ผ์ฐํฐ์ ์ฐ๊ฒฐ๋ ํธ์คํธ๋ค์๊ฒ ์ฌ์คip๋ฅผ ๋ถ์ฌํ๋ฉด ip์ฃผ์๋ฅผ ์๋ ์ ์๋ค. ์๋ํ๋ฉด ์๋ก ๋ค๋ฅธ ์ฌ์ค๋ง์ ์๋ ์ฌ์ค ip๋ผ๋ฆฌ๋ ip์ฃผ์๊ฐ ๊ฒน์ณ๋ ์๊ด์๊ธฐ ๋๋ฌธ์. ์ฌ์ค ip๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์..