๐ญ ๋ผ-์ดํ
์ค๋์ ๋ฐฐ์ #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..
์ค๋์ ๋ฐฐ์ #102 ๐
์ค๋์ ๋ฐฐ์ #102 ๐
2021.12.262021.12.25 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ์๊ณ ๋ฆฌ์ฆ ํ๊ธฐ. ์ค๋์ 5๋ฌธ์ ํ์๋ค. Zedd๋์ Understanding Swift Performance ์ ๋ฆฌ๊ธ ์ฝ๊ธฐ.(https://zeddios.tistory.com/596). WWDC ์์์ ๊ณ์ ๋ณด๊ณ ์ถ์๋๋ฐ ํ์๊ฐ์ง๋ฆฌ๋ผ ๋ฏธ๋ค๋๋ค๊ฐ ์ผ๋จ ์ ๋ฆฌ๋ณธ ๋ถํฐ ์ฝ์๋ค. ๋ด์ผ ์์๋ณด๊ณ ๋ด์ฃผ ๊ธฐ์ ์ธ๋ฏธ๋ ์ค๋น ๊ณ ๊ณ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. ์์ง ์ด์ ๋ฅผ ํ์คํ ๋ชป์ฐพ์๋๋ฐ, removeFirst๋ฅผ ์ฐ๋๊ฒ reversed๋ก ๊ตฌํํ ํ๋ ๋งํฌ๋๋ฆฌ์คํธ๋ก ๊ตฌํํ ํ๋ณด๋ค ๋ฐฑ์ค์์ ์๊ฐ์ด ๋ ๋น ๋ฅผ ๋๊ฐ ์๋ค.. removeFirst๋ O(N)์ธ๋ฐ ์ ๋ ๋น ๋ฅด์ง..? ํน์ ๋ด๊ฐ ๊ตฌํ์ ์๋ชปํ๋ ์ถ์๋๋ฐ ๋ฌธ์ ๋ ์์ด๋ณด์ธ๋ค. ์ธํ, ๋ํ ๋ค O(1)์ด๋ค.. String์ ์ปจํ
์ธ ๋ฅผ ํ์ ..
์ค๋์ ๋ฐฐ์ #101
์ค๋์ ๋ฐฐ์ #101
2021.12.252021.12.24 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ์๊ณ ๋ฆฌ์ฆ ํ๊ธฐ(ํ๋ก์ด๋์์
, ์ํ, ๋ฌธ์์ด, ๋ฐฑํธ๋ํน) Hashable ๊ธ ์ฝ๊ธฐ(https://betterprogramming.pub/what-is-hashable-in-swift-6a51627f904) ์ค์ํํธ ๋ฌธ๋ต ์๋ชป๋ ์์ , ์คํ ์์ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. Hashable์ด Equatable์ ์ฑํํ๋๊ฑด ์ฌ๋ฌ ์ด์ ๊ฐ ์๊ณ์ง๋ง ์๋ง๋ ํด์ ๊ฐ์ด ๊ฐ์๋ ์ธ์คํด์ค๋ ์๋ก ๋ค๋ฅผ ์ ์๊ธฐ ๋๋ฌธ์ธ ๊ฒ ๊ฐ๋ค. CALayer์ frame๊ณผ UIView์ frame์ ๋ค๋ฅธ ์ธ์คํด์ค๋ค. ์ฌํ ๊ฐ์๊ฑด์ค ์์๋ค.. ๋ด๋ถ์ ์ผ๋ก ์ด๋ค ๋์์ธ์ง๋ ์ ํํ ๋ชจ๋ฅด๊ฒ ์ง๋ง ํ์ชฝ์ ๋ฐ๊พธ๋ฉด ๋ค๋ฅธ์ชฝ์ ๋๊ธฐํ๋๋ ๊ฒ ๊ฐ๋ค. ์ผ๋จ ์ฐธ์กฐ๊ฐ์ ํ์ธํด๋ดค์ ๋๋ ์๋ก ๋ฌ๋๋ค. CALayer๋ GPU ..
์ค๋์ ๋ฐฐ์ #100
์ค๋์ ๋ฐฐ์ #100
2021.12.232021.12.22 100๋ฒ์งธ ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ๋ผ์ธ ์ฝํ
์์ ์๊ณ ๋ฆฌ์ฆ ํ๊ธฐ update cycle ์ ๋ฆฌ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. Update Cycle๊ณผ ๊ด๋ จ ๋ฉ์๋๋ค, setNeedsLayout, layoutIfNeeded ๋ฑ๋ฑ์ ํ์คํ ์๊ฒ๋ ๊ฒ ๊ฐ๋ค! ๋ง์คํฐ ํด๋์ค๋ ์กธ์์ ๊ทธ๋ ์ดํด ๋ชปํ๋๋ฐ ์ด์ ๋ผ๋ ์๊ฒ๋์ด์ ๋คํ! ์ค๋ ๋๋ ๊ฒ. ์ฝํ
๋ ๊ทธ๋ฅ์ ๋ฅ ๋ณธ ๊ฒ ๊ฐ๋ค. ์นด์๋์๋ ๋ค๋ฅด๊ฒ ๋งํ๋ ๋ฌด๋ํ๊ฒ ์ ์์ํ๋ ๊ฒ ๊ฐ๋ค. ๋ฉด์ ์ ๋ถ๋ฌ์ค๊น? ๋ถ๋ฌ์คฌ์ผ๋ฉด ์ข๊ฒ ๋ค.. ๋ด์ผ, ์ฌ์ค์ ์ค๋ ์ง ๊ณ์ฝ์ด ๋๋๋ค. ์ ๋ฆฌํ ๊ฒ๋ ์ฐ๋๋ฏธ๊ณ .. ์ด์ ์ง์ง ํฌํญ์ ๋ ๋๋ค๊ณ ์๊ฐํ๋๊น ๊ด์๋ฆฌ ๊ธฐ๋ถ์ด ์ธ์ ํ๊ธด ํ๋ค. ๋ญ๊ฐ ์ด์ ์ง์ง ์ผ์์ ๋ด๋์ ธ์ง ๋๋? ์์ฆ ๋ถ์ ์ ์ธ ๊ฐ์ ์ ๋๋ฌด ๋ฌปํ์ ์ด๊ณ ์๋๊ฒ ์๋๊ฐ ์ถ์ ์..
์ค๋์ ๋ฐฐ์ #99
์ค๋์ ๋ฐฐ์ #99
2021.12.212021.12.20 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. weak self์ ๋ํ ์ข์ ๊ธ์ ์ฝ์๋ค. https://medium.com/flawless-app-stories/you-dont-always-need-weak-self-a778bec505ef You don’t (always) need [weak self] We will talk about weak self inside of Swift closures to avoid retain cycles & explore cases where it may not be necessary to capture self weakly. medium.com ์๊ณ ๋ฆฌ์ฆ ํ๊ธฐ ์นด์ ์ฝํ
์์ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. nonescaping ํด๋ก์ ์์๋ self๊ฐ retain๋์ง ์๋๋ค. ..
์ค๋์ ๋ฐฐ์ #98
์ค๋์ ๋ฐฐ์ #98
2021.12.202021.12.19 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. Swift ๋ฌธ๋ต ๋ง๋ฌด๋ฆฌ, ๋ฐํ Method Dispatch ์๋ฃ์์ง ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ๊ธฐ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. KVC๋ฅผ ์ฌ์ฉํ๋ฉด ์ธ์คํด์ค์ ๊ฐ์ ์ ์ผ๋ก ์ ๊ทผํด์ ํ๋กํผํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์์ ํ ์ ์๋ค. ํ๋กํผํฐ ์ต์ ๋ฒ๋ณด๋ค KVO๊ฐ ์ ํธ๋๋ ์ํฉ์ ๊ธฐ์กด ๊ตฌํ์ ์์ ํ๊ฑฐ๋ overrideํ์ง ์๊ณ ์ต์ ๋น์ ํด์ผํ ๋. ์๋ฅผ ๋ค๋ฉด ์ธ๋ถ ํ๋ ์์ ๋ด๋ถ์ ์๋ ํ๋กํผํฐ๋ฅผ ์ต์ ๋นํ๊ณ ์ถ๋ค๋ฉด, ํด๋น ํ๋กํผํฐ๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํ๋ ๊ฒ๋ณด๋ค KVO๋ก ์ต์ ๋นํ๋๊ฒ ๋ ์์ ํ๋ค. flatMap์ด๋ compactMap์ 1์ฐจ์ ๋ฐฐ์ด์ ์ฐ๋ฉด ๊ฒฐ๊ณผ๊ฐ ๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ 2์ฐจ์ ๋ฐฐ์ด์ ์ฐ๋ฉด nil์ ๊ฑฐ์ ์ต์
๋ ๋ฐ์ธ๋ฉ์ ํ์ง์๊ณ flatten๋ง ํด์ค๋ค. nil ์ง์ฐ๊ณ ์ต์
๋ ๋ฐ์ธ๋ฉ์ ํ๋ ค๋ฉด compactMa..
์ค๋์ ๋ฐฐ์ #97
์ค๋์ ๋ฐฐ์ #97
2021.12.192021.12.18 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ๋ผ์ธ, ์นด์นด์คํ์ด ์์์ ์์ฑ Swift ๋ฌธ๋ต ์ฑ์ฐ๊ธฐ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. autoreleasepool์ ์ฌ์ฉํ๋ฉด ์ฐธ์กฐ ์นด์ดํธ์ ๊ฐ์๋ฅผ ๋ฆด๋ฆฌ์ฆ ํ ์ธ์คํด์ค์ ๋ชจ์๋๊ณ ์ด ์ธ์คํด์ค์ ํด์ ์ ํจ๊ป ๋ฑ๋ก๋ release๋ฅผ ๋ชจ๋ ์คํํ๊ฒํ ์ ์๋ค. ์ค์ฒฉ๋ ๋ฐ๋ณต๋ฌธ์์ ์ฐ์์ ์ผ๋ก ๊ฐํ์ฐธ์กฐ๊ฐ ๋ฐ์ํ๋ค๋ฉด ๋ฐ๋ณต๋ฌธ ๋ด๋ถ๋ฅผ autoreleasepool ๋ธ๋ก์ผ๋ก ๊ฐ์ธ์ ๋ด๋ถ ๋ฐ๋ณต๋ฌธ์ด ๋๋ ๋ ์ผ๊ด์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํด์ค ์ ์๋ค. DispatchWorkItem์ ์ฌ์ฉํ๋ฉด DispatchQueue์ ๋ฑ๋กํ ์์
์ ์ถ์ํํด์ ํด๋์ค๋ก ๋ํํ ์ ์๋ค. ์ด๋ ๊ฒ ๋ํ๋๋ฉด DispatchWorkItem์ด ์ง์ํ๋ cancel๊ณผ ๊ฐ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ์์
์ ์ทจ์์ํค๋๊ฒ ๊ฐ๋ฅํด์ง๋ค. ์ค..
์ค๋์ ๋ฐฐ์ #96
์ค๋์ ๋ฐฐ์ #96
2021.12.172021.12.17 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ์๊ณ ๋ฆฌ์ฆ 2๋ฌธ์ ํ๊ธฐ. iOS ๋ฌธ๋ต ์ฑ์ฐ๊ธฐ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. autoclosure๋ ์ธ์๋ก ๋ค์ด์จ ์ผ๋ฐ expression์ ํด๋ก์ ๋ก ๋ํํด์ค๋ค. ํ์
ํ๋กํผํฐ๋ lazyํ๊ฒ ๋์ํ๋ค. ์ฒ์ ๋ถ๋ฆฌ๊ธฐ ์ ๊น์ง๋ ๋ฉ๋ชจ๋ฆฌ์ ์์ฌ๋ผ์จ๋ค. ํ์
์ ์ฅ ํ๋กํผํฐ๋ ์ด๊ธฐ๊ฐ์ ํญ์ ๊ฐ์ ธ์ผํ๊ณ , ํ์
์ฐ์ฐ ํ๋กํผํฐ๋ ์ผ๋ฐ ์ฐ์ฐ ํ๋กํผํฐ์ฒ๋ผ var๋ก๋ง ์ ์ธํ ์ ์๋ค. GC๋ ์ํ์ฐธ์กฐ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. GC์ mark-and-sweep ๋ฐฉ์์ ๋ฃจํธ๋
ธ๋๋ก๋ถํฐ ๋๋ฌํ ์ ์๋ ์ ๋ค์ ๊ทธ๋ฅ ๋ค ์ง์๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์๋ก ์ฐธ์กฐํ๊ณ ์๋ ์ธ์คํด์ค๋ค์ด ์์ด๋ ๊ฑฐ๊ธฐ๊น์ง ๋๋ฌํ๋ ๊ฒฝ๋ก๊ฐ ์์ผ๋ฉด ์ง์๋ฒ๋ฆฐ๋ค. ๊ทธ๋์ ์ํ ์ฐธ์กฐ๋ฅผ ์ปจํธ๋กคํ ์ ์์. ๋ฌผ๋ก ์ค์ํํธ๋ ARC๋ผ์ ์ด๊ฒ ์๋จใ
ใ
์ค๋..
์ค๋์ ๋ฐฐ์ #95
์ค๋์ ๋ฐฐ์ #95
2021.12.162021.12.15 ์ค๋์ ๋ฐฐ์ ์ค๋ ํ ์ผ. ์นด์ ์ง์์ ์ ์ถ iOS / OS ๊ณต๋ถ์์ ์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ. as๋ ์
์บ์คํ
์ธ๊ฑธ ์ค๋ ์ฒ์์์๋ค.. ์ง์ง ์ฌํ ๋ฌด์ง์ฑ ์บ์คํ
ํ๊ฑฐ ๋ฐ์ฑํ์.. let ์ด ๊ฐ์ ๋ฐ๊พธ์ง ๋ชปํ๋๊ฒ ์๋๋ผ ์๋ฐํ ๋งํ๋ฉด ํฌ์ธํ
ํ๊ณ ์๋ ์ฃผ์๋ฅผ ๋ฐ๊พธ์ง ๋ชปํ๊ฒ ํ๋ ๊ฒ์ด๋ค. ๊ทธ๋์ ํด๋์ค ์์ ์๋ ํ๋กํผํฐ๋ ๋ฐ๊พธ๋๊ฒ ๊ฐ๋ฅํ๋ค. defer๋ ์คํ์ด ์๋๋ฉด ํด๋ก์ ๋ ์คํ๋์ง ์๋๋ค. ์ฌ๋ฌ๊ฐ์ defer๊ฐ ์์ผ๋ฉด ์ฝํ์ง ์ญ์์ผ๋ก ์คํ๋๊ณ , ์ค์ฒฉ๋ defer๋ ๊ฐ์ฅ ๋ฐ๊นฅ์ชฝ๋ถํฐ ์คํ๋๋ค. ์ค๋ ๋๋ ๊ฒ. ์ค์ํํธ๋ ์ง์ง ์ฌ๋ฐ๋ ์ธ์ด.. ์ง์ง ์ฉ๋ค.. ๋ด์ผ์ ๊ณํ. ์ค์ํํธ ๋ฌธ๋ต ๊ณ์ ์ฑ์๋๊ฐ๊ธฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ๊ธฐ ์ค๋์ ๊ฐ์ฌ. ์์ฆ ๊ณ์ ๋ฆ๊ฒ์๋๋ฐ ์คํ ์๊ฐ์ ์งง์ง๋ง ๊น๊ฒ ์ ํ๋ณตํ ์ ..