๐ญ ๋ผ-์ดํ/๐ ํฐ-์์ด-์
์ค๋์ ๋ฐฐ์ #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๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์..
์ค๋์ ๋ฐฐ์ #106
์ค๋์ ๋ฐฐ์ #106
2021.12.312021.12.30 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. iOS ๋ฉด์ ์ค๋น OS ๋ฉด์ ์ค๋น ๋ค๋ ๋ฉด์ ์ค๋น ๊ฐ์ฒด์งํฅ ๋ฉด์ ์ค๋น ์ด๋ฒ ์ด ํฌ๊ธฐ.. ๋ฉด์ ์ค๋นํด์ผํ ๊ฒ ๊ฐ์์ ๋ฌธ์ ๋ง ์ฝ๊ณ ๊ทธ๋ฅ ๊ป๋ค. ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. ์ค๋ฅ์ ์ด, ํ๋ฆ์ ์ด๋ ๋ฐ์ดํฐ๋งํฌ์์ ์ฒ๋ฆฌํ๋ค. ์ฌํด ๋ณธ ๊ฒ ์ค์ ์ ์ผ ์ ๋ฆฌ๊ฐ ์๋ TCP/UDP ๊ด๋ จ ๊ธ 10๋ถ ๋ง์ ํ์ด๋ณด๋ TCP์ UDP - ์ฌ๊ทธ์ง๊ทธ์ ๊ฐ๋ฐ ๋ธ๋ก๊ทธ OSI 4๊ณ์ธต์์ ๋์ํ๋ TCP์ UDP์ ํน์ง๊ณผ ์ฐจ์ด์ ์ ๋ํด ๊ฐ๋ตํ ์ ๋ฆฌํด๋ด
๋๋ค. wormwlrm.github.io ํ๋ก์ธ์ค ์ปจํ
์คํธ ์ค์์นญ์ ๋น์ผ ๋น์ฉ์ ์ฌ์ค ์ค์์นญ ์์ฒด์ ์๋๊ฒ ์๋๋ผ TLB๋ฅผ ํ๋ฌ์ฑํด์ค์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ปจํ
์คํธ ์ค์์นญ ์ดํ์๋ TLB๊ฐ ์ฑ์์ง ๋๊น์ง ๊ณ์ ๋ฏธ์ค๊ฐ ๋๋ค. ์ปจํ
์คํธ ์ค์์นญ ๊ณผ์ CPU ์ธํฐ๋ฝํธ ..
์ค๋์ ๋ฐฐ์ #105
์ค๋์ ๋ฐฐ์ #105
2021.12.302021.12.29 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ๋ค์ด๋ฒ ์ฝํ
์์ ๊ณผ์ ์ ํ ์งํ OS๋ฉด์ ์ง๋ฌธ ์ ๋ฆฌ iOS๋ฉด์ ์ง๋ฌธ ์ ๋ฆฌ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. ์ฑ ์๋์ ์ฑ์คํ ์ด๊ฐ ์ฌ์ฉ์ ๋๋ฐ์ด์ค์ ๋ง๊ฒ ์ฑ์ ์ต์ ํํด์ ๋ค์ด๋ฐ์ ์ ์๋๋ก ํด์ฃผ๋ ๊ฒ. ์ฌ๋ผ์ด์ฑ, ์ฃผ๋ฌธํ๋ฆฌ์์ค, ๋นํธ์ฝ๋ ์ธ ์ข
๋ฅ์ ๊ธฐ์ ์ ์์๋ค์ด ์๋ค. ์ฌ๋ผ์ด์ฑ์ ๋ฆฌ์์ค์ ์ฝ๋๋ฅผ ๋๋ฐ์ด์ค ์คํ์ ๋ง๊ฒ ๋๋ ๋๊ณ ํ์ํ ๊ฒ๋ง ๊ณจ๋ผ์ ๋ค์ด๋ฐ์ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ์ . ์ฃผ๋ฌธํ ๋ฆฌ์์ค๋ ์ฒ์์ ์ฑ์ ๋ชจ๋ ๋ด์ฉ์ ๋ค ๋ฐ๋๊ฒ ์๋๋ผ ์ผ๋ถ๋ง ๋ฐ์๋๊ณ ํ์ํ ๋๋ง๋ค ์ฑ์คํ ์ด์ ์์ฒญํด์ ๋ฐ๋๊ฒ. ๋นํธ์ฝ๋๋ ๋ฐ์ด๋๋ฆฌ๊ฐ ์๋ ๋นํธ์ฝ๋๋ก ์ฑ์ ์ปดํ์ผํด๋๊ณ ์ฑ์คํ ์ด์์ ํ์ํ ์์ญ์ ๋นํธ์ฝ๋๋ง ๋ชจ์์ ์ฌ์ปดํ์ผ ํ๋ ๊ธฐ์ . ๋ชจ๋ฐ์ผ ๋๋ฐ์ด์ค๋ ์ ์ฅ๊ณต๊ฐ์ด ์๋์ ์ผ๋ก ์์ผ๋๊น ์ด๋ฐ ๊ธฐ์ ..
์ค๋์ ๋ฐฐ์ #104
์ค๋์ ๋ฐฐ์ #104
2021.12.292021.12.28 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ์๊ณ ๋ฆฌ์ฆ ํ๊ธฐ ๋ฐ๋ฃจํ ๊ณต๋ถ ์ค๋
ธ์ฐ ์๋ฅ ์ ์ถ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. ๋ฐ๋ฃจํ์๋ ๋ชจ๋๊ฐ ์ฌ๋ฌ๊ฐ์ง ์๋ค. ๋ฐ๋ฃจํ๊ฐ ํน์ ํ ๋ชจ๋๊ฐ ๋๋ฉด ์ด๋ฒคํธ ์ค์ ๋ชจ๋๊ฐ ํ์ฉํ๋ ์ข
๋ฅ์ ์ด๋ฒคํธ๋ง ๋ฐ๊ฒ๋๋ค. ๋ฐ๋ฃจํ์ input source๋ Port-Based, Custom-Based ๋ ์ข
๋ฅ๊ฐ ์๋ค. Port Based๋ ์ปค๋์์ ๋ณด๋ด๋ ์ด๋ฒคํธ์ด๊ณ , Custom์ ๋ค๋ฅธ ์ค๋ ๋์์ ๋ฉ๋ด์ผ๋ฆฌํ๊ฒ ๋ณด๋ด๋ ์ด๋ฒคํธ์ด๋ค. UIApplication์ด ๋ฉ์ธ ์ค๋ ๋์ ๋ฐ๋ฃจํ๋ฅผ ์คํ์์ผ์ค๋ค. ๋ค๋ฅธ ์ค๋ ๋์์๋ ๋ช
์์ ์ผ๋ก ์คํํด์ค์ผํ๋ค. ๋ฉ์๋์ defer๊ฐ ์ฌ๋ฌ๊ฐ ์์ผ๋ฉด ํจ์๊ฐ ๋๋๊ณ ์ฝํ์ง ์ญ์์ผ๋ก ์คํ, ์ค์ฒฉ๋์ด ์์ผ๋ฉด ๊ฐ์ฅ ๋ฐ๊นฅ ์ชฝ defer๋ถํฐ ์คํ. ์ค๋ ๋๋ ๊ฒ. ์ด์ ์ค๋ ๊ณ ๋ฅธ ๋ฌธ์ ..
์ค๋์ ๋ฐฐ์ #103
์ค๋์ ๋ฐฐ์ #103
2021.12.282021.12.27 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ์๊ณ ๋ฆฌ์ฆ ํ๊ธฐ ๊ธฐ์ ๋ฐํ ์ค๋น (Method Dispatch) ์์์ ์ฐ๊ธฐ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. ์ค์ํํธ ์ปดํ์ผ๋ฌ๋ inliing ์ต์ ํ๋ฅผ ํ๋ค. ํจ์ ๋ด๋ถ๊ฐ ๊ฐ๋จํ๋ค๋ฉด ํจ์ ํธ์ถ์ ํจ์๋ก ์ ์๋ก ๊ต์ฒดํด์ ์ฝ์คํ ๋น์ฉ์ ์ค์ด๋๊ฒ. Whole Module Optimization ์ต์
์ ํค๋ฉด ์ปดํ์ผ ํ ๋ ๋ชจ๋๋จ์๋ก ์ปดํ์ผํด์ internal๋ก ์ ์ธ๋ ๋ฉ์๋๋ค๋ ๋ชจ๋ ๋ด์ ์ค๋ฒ๋ผ์ด๋ฉํ๋ ๋ฉ์๋๊ฐ ์๋ค๋ฉด Static Dispatch๋ก ์ถ๋ก ํ ์ ์๋ค. enclosing scope๋ ์์ ์ ๊ฐ์ธ๋ ์ค์ฝํ๋ฅผ ๋งํ๋ค. ๊ทธ๋์ private์ด ์ ์ ๋ธ๋ก ๋ด๋ถ์์์ ์ ๊ทผ๋ง ํ์ฉํ๋ค๊ณ ๋งํ๋ฉด ์๋๋ค. nested ํ์
์ด ์๋ private class์ fileprivate..