๋ค์ด๊ฐ๋ฉฐ
(๐ ์ฑ ์คํ ์ด ๋งํฌ)
๋๋ ํ์ฌ ์ฌํ ์ฝ์ค ์คํ ์ด ๋น๋ง์ดํ๋์ ์ ์ง, ๋ณด์, ์ ๊ท ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ๋งก๊ณ ์๋ค.
.
๊ทธ๋์ ํ์ ํฉ๋ฅํ๊ณ ํฌ๊ณ ์์ 5-6์ฐจ๋ก์ ์ ๋ฐ์ดํธ๋ฅผ ํด์๋๋ฐ, ์งง์ ํธํก์ผ๋ก ์ ํ๋ ์๊ฐ ๋์์ ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ ๋์น๊ณ ์๋ ๋ถ๋ถ๋ค์ด ์์๋ค.
.
ํนํ ์ด๋ฒ ์คํ๋ฆฐํธ ๋์ ๊ฐ๋ฐ์ ํ๋ค๊ฐ ํฌ๊ฒ ๋ฌธ์ ๊ฐ ์์์ ํ์ธํ๋ค. ๊ฐ๋ฐ์ ํ๋ค๊ฐ ๋๋ฒ๊น ์ ํ๋ค๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋๋ ์์ด ์ฌ๋ผ๊ฐ๊ณ ์๋ ๊ฒ์ด๋ค. ํ๋ฉด ์ ํ์ ์ข ๋ง์ด ํ๋ค๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋์์ง๊ณ ๊ฒฐ๊ตญ์๋ ์ฑ์ด ์ข ๋ฃ๋๋ ์ํฉ์ ๊ฒช์๋ค.
๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด 1.93GB..?
๋ญ๊ฐ ๋ฌธ์ ์ง.. ๊ทธ๋ฅ ๋ชป ๋ณธ ์ฒ ํ ๊น?
๋ ๋ฌด์จ .. ใ ใ ์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋์ง ์๊ฐํด๋ณด๊ธฐ๋ก ํ๋ค.
์๊ฐ์ ์์
๋ฉ๋ชจ๋ฆฌ ๋์ no, ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น yes
์ฒซ ๋ฒ์งธ๋ Memory Leak์ด๋ค. ์ ์ ๋์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด๋ฉด 200% ๋ฉ๋ชจ๋ฆฌ ๋์์์ ๋ฌธ์ ๊ฐ ์์๋๊ณ ์๋ค๊ณ ์๊ฐํ๋ค.
(๋๊ตฌ๋ ๊ทธ๋ ๊ฒ ์๊ฐํ ๊ฑฐ๋ค )
๊ทธ๋ผ ๊ณผ์ฐ ์ด๋์ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ๊ณ ์๋์ง๊ฐ ํต์ฌ์ด๋ค.
์ด ์๊ฐ๋ถํฐ๋ ์ ๋ง ๋ง๋งํ๋ค.
ํ์ฌ์์ ์ด์ํ๋ ์๋น์ค๋ณด๋ค๋ ์ฑ ์ฌ์ด์ฆ๊ฐ ์๊ธฐ์ ๊ด์ฐฎ์๋ณด์ด์ง๋ง ๊ทธ๋๋ ๋ง๋งํ๋ค.
๋ชจ๋ ํ์ผ๊ณผ ํ๋ฉด์ ๋ค ์ดํด๋ด์ผ ํ๋๊น..
์ฌ๊ธฐ์๋ถํฐ ์์ํ์. ์ด์ฐจํผ ๋์๊ฐ ๊ณณ์ ์๋ค.
์ ๊ทผ 1) Instruments ์ฌ์ฉ
Xcode์์๋ ์ข์ ํด์ธ Instruments๋ฅผ ์ ๊ณตํ๋ค. 100ํผ์ผํธ ์ํ๋ ๊ฒฐ๊ณผ๋ง์ ์ ๊ณตํ์ง๋ ์์ง๋ง, ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๊ฐํธํ๊ฒ ํ์ธํด๋ณผ ์ ์๋ ๋๊ตฌ์ด๋ฏ๋ก ์ฌ๊ธฐ์๋ถํฐ ์ ๊ทผ์ ์์ํ๋ค. (์ฌ์ฉ๋ฒ์ ๋ค๋ฅธ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ธ์..!)
์ฌ์ค ๋๋ ํฐ ๊ธฐ๋๋ฅผ ์๊ณ Instruments ์ผฐ๋ค. ์ฌ๊ธฐ์ ๋ชจ๋ ๋์๋ฅผ ์ก์๋ด๊ธฐ๋ฅผ..
์ค, ์ฒ์๋ถํฐ ๋ฉ๋ชจ๋ฆฌ ๋์ ๊ฒฝ๊ณ ๊ฐ ๋์ค๊ณ ์์๋ค. Log๋ฅผ ์ดํด๋ณด๋๊น ์ ๋ถ๋ถ์ Firebase SDK๋ฅผ ์ฌ์ฉํ๋ฉด์ ๊ทธ ๋ด๋ถ์ ๋ฌธ์ ์๋ค.
FirebaseSDK ๋ฆด๋ฆฌ์ฆ ๋
ธํธ์ ๊ฐ๋ณด๋ฉด Memory Leak์ ์์ ํ๋ค๊ณ ๋์ด์๋ค. SDK ๋ฒ์ ์ ์ฌ๋ฆฌ๋ฉด ๋๋ ๊ฒ์ด์๋ค.
์ ๊ฒ์ด ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๊ฐ ์๋์๋ค.
์ค์ ๋ก Instruments๋ฅผ ์ผ๊ณ ๊ณ์ํด์ ๋๋ฒ๊น ์ ์งํํ๊ณ ํ์ธ์ ํ๋ฉด ๋ ์ด์ ๊ฒฝ๊ณ ํ์๋ ํ์ธํ ์ ์์๋๋ฐ ์ฌ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋๋ฌด ๋์๋ค. ์ด์ ์ด๋ ์ฐจ์ด๊ฐ ์์๋ค. ๊ทธ๋์ ์ฒ์๋ถํฐ ๋ค์ ์์ํ๊ธฐ๋ก ํ๋ค.
์ ๊ทผ 2) Memory Object Graph์ deinitializer ํ์ธ
๊ทธ๋ ๋ค. ์ด๊ฒ ์ด์ฐ๋ณด๋ฉด ์ ์๊ณผ๋ ๊ฐ๋ค.
์ฒ์๋ถํฐ ์๋ฎฌ๋ ์ด์ ์ ํด๋ณด๊ธฐ๋ก ํ๋ค.
์ผ๋จ ์ฒซ ํ๋ฉด๋ถํฐ ์์์ ํ๋ค. ๊ธฐ๊ธฐ๋ก ํ ์คํธ๋ฅผ ์งํํ๋ฉด์ Main(ํ ํ๋ฉด)์์ NewPlanPreview(์ฝ์ค ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ๋ฉด)์ ๋ช ๋ฒ ๋ฒ๊ฐ์์ ์๋ค ๊ฐ๋ค ํด๋ณด์๋ค. ์๊ฐ์ด ์ง๋๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ค์ง ์๊ณ ๊ณ์ํด์ ๋๊ณ ์๋ ๊ฒ์ด์๋ค.
์ฒ์ ๋๋ ์๊ฐ์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ทฐ ์ปจํธ๋กค๋ฌ๊ฐ deinit ๋๋์ง ๋จผ์ ์ดํด๋ด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ ๋ค.
NewPlanPreviewViewController๋ก ๊ฐ์ deinit ๋ฉ์๋์ ๋ก๊ทธ๋ฅผ ์ฐ์ด๋ณด์๋๋ฐ Main ํ๋ฉด์ผ๋ก ๋์์ฌ ๋ ๋ค๋น๊ฒ์ด์ ์คํ์์ pop์ ๋์ง๋ง deinit ๋ฉ์๋๋ ํธ์ถ๋์ง ์๊ณ ์์๋ค.
์ค์ ๋ก ๋ ํ์คํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ทธ๋ํ๋ฅผ ํ์ธํด๋ณด๋ฉด ์คํ์ VC๊ฐ ๋ถํ์ํ๊ฒ 7๊ฐ๋ ์์ฌ์๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
A ↔ B๋ฅผ ์๋ค๊ฐ๋ค ํ๋ ๊ฒ์ 7๋ฒ ์ ๋ ํ๋๊น 7๊ฐ ์์ฌ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ deinit์ด ๋์ง ์์๊น?
์์ธ ๊ฐ์ 1)
์ฒ์ ์๊ฐํ๋ ์ง์ ์ A(MainVC) ๊ณผ B(NewPlanPreviewVC)๊ฐ ์๋ก ๊ฐํ๊ฒ ์ฐธ์กฐํ๊ณ ์์ด์๊ฐ ์๋๊น? ๋ผ๋ ๋ถ๋ถ์ด์๋ค.
๊ทธ๋ฌ๋ ์๋ก ์ฐธ์กฐํ๊ณ ์๋ ํํ๋ ์ฝ๋๋ ์์๊ธฐ์ ์ด ๋ถ๋ถ์ ์์ธ์ด ์๋์๋ค.
์์ธ ๊ฐ์ 2)
B(NewPlanPreviewVC)๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๊ณ์ ์ด์์๊ธฐ์, 1๋ฒ์ ์์ธ์ด ์๋๋ผ๋ฉด ๋ด๋ถ์์ ์ํ ์ฐธ์กฐ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ํด ๊ฒ์ด๋ผ๋ ํฉ๋ฆฌ์ ์ธ ์์ฌ์ ํด๋ณผ ์ ์์๋ค. ์ฝ๋๋ฅผ ์ฒ์ฒํ ์ดํด๋ณด์๋ค.
final class NewPlanPreviewVC: UIViewController {
...
@IBOutlet var topNavibar: NewPlanPreviewNaviBar!
...
topNavibar.backButton.press {
self.postObserverAction(.navigationPop)
}
...
}
์ฝ๋๋ฅผ ์์ฒญ ๊ฐ์ํํ๋ค. ์ํฉ์ ๊ฐ๋จํ๊ฒ ์์ฝํ๋ฉด ์ค๊ฐ์ ๋ฒํผ(backButton)์ด ์ก์ ํธ๋ค๋ฌ ํด๋ก์ ๋ถ๋ถ์์ self๋ฅผ ๊ฐํ๊ฒ ์ฐธ์กฐํ๊ณ ์๋ค. ์ด๋ ๊ฒ ๋ทฐ ์ปจํธ๋กค๋ฌ์ ๋ฒํผ์ด ์๋ก ๊ฐํ๊ฒ ์ฐธ์กฐํ๊ณ ์๊ธฐ ๋๋ฌธ์, ๋ทฐ ์ปจํธ๋กค๋ฌ๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ์ ์์ ์ผ๋ก ํด์ ๋์ง ์๋ ๋ฌธ์ ๊ฐ ์๊ธฐ๊ณ ์์๋ ๊ฒ์ด๋ค.
๋ฌธ์ ์ ์์ธ ์์ฒด๋ ๊ฐ๋จํด๋ณด์ด์ง๋ง, ๊ณผ์ ์ ๊ฒฐ์ฝ ์ฝ์ง ์์๋ค.
์ฝ๋๊ฐ ์ฝ 1,000์ค ๊ฐ๊น์ด ๋๊ธฐ ๋๋ฌธ์ ํ๋ํ๋ ๋ฌธ์ ๋ฅผ ์ฐพ์๊ฐ๋ ๊ฒ์ ๋จธ๋ฆฌ ์ํ ์ผ์ด๋ค.
์ฌ๊ธฐ์ ViewController์ ์ฝ๋๋ฅผ ์ข ๋ถ๋ฆฌ์ํค๊ณ ์ถ๋ค๋ ์๊ฐ์ด ๊ฐํ๊ฒ ๋ค์๋ค..ใ
1+1 ๋ค์ผ๋ก ๋ฌธ์ ๋ฐ๊ฒฌ
๋ ์ด๋ ๋์๋ ๊ณณ์ ์๋ํ๊ณ ๋ฉ๋ชจ๋ฆฌ ๊ทธ๋ํ๋ฅผ ์ญ ํ์ด๋ณด๋ ์ค์ ์ด์ํ ๋ถ๋ถ์ ๋ฐ๊ฒฌํ๋ค. ํ๋ก์ ํธ ๋ด์๋ ์ธ์คํด์ค ์์ฑ์ ๋ด๋นํ๋ ๊ฐ์ฒด์ธ ModuleFactory๊ฐ ์๋ค. ์ด ๊ฐ์ฒด๋ ์ฌ๋ฌ ๊ฐ์ ์ธ์คํด์ค๋ฅผ ์์ฑํ ํ์๊ฐ ์๋ ๊ฐ์ฒด์ด๋ค. ๊ทธ๋ ๊ธฐ์ ์ฑ๊ธํค(- ์ ์ ํ ์ ํ์ด ์๋ ์๋ ์์ผ๋ -)์ผ๋ก ๋ง๋ค๊ฑฐ๋ ํ๋ ๊ฒ์ด ๋ง๋ค. ํ๋ก์ ํธ ๊ธฐ์กด์ ์ฝ๋๊ฐ ์ง์ฌ์๋ ๊ฒ๋ ๊ทธ๋ฌํ ํํ๋ก ์ฐ์ฌ์์๋ค. ๋๋ ๊ทธ๋์ ์ฑ๊ธํค์ธ์ค ์์๋๋ฐ ๊ทธ๊ฒ ์๋์๋ค. ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ ๊ฐ ์๊ธฐ๊ณ ์์๋ค.
// before
static func resolve() -> ModuleFactory {
ModuleFactory()
}
๊ธฐ์กด์๋ resolve๋ฉ์๋๋ฅผ ํธ์ถํด์ ModuleFactory์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ ์ด ์ธ์คํด์ค๊ฐ ๊ฐ์ง๊ณ ์๋ ์ธ์คํด์ค ์์ฑ ๋ฉ์๋๋ฅผ ์ด์ฉํด์ ๋ทฐ ์ปจํธ๋กค๋ฌ๋ฅผ ๋ง๋ค๊ณ ์์๋ค.
๊ทธ๋ฌ๋ ์๊ฐํด๋ณด๋ฉด ModuleFactory์ธ์คํด์ค 1๊ฐ๋ง ์์ด๋ ๋๋ค. ์ธ์คํด์ค๋ฅผ ๊ณ์ํด์ ์์ฑํ๋ ๊ฒ์ ๋ถํ์ํ๋ค.
๋ทฐ ์ปจํธ๋กค๋ฌ๋ง๋ค ํด๋น ์ธ์คํด์ค๋ฅผ ๋๊ฒจ์ฃผ๊ณ ์๋ ํํ๋ ์๋๊ณ , ModuleFactory๋ ํน์ ๊ณต๊ฐ ํ ๊ณณ์์๋ง ์ฌ์ฉ๋๊ณ ์๊ธฐ๋ ํ๋ค.
// after
static let shared = ModuleFactory()
๊ทธ๋ ๊ธฐ์ ํ์ ์ ์ฅ ํ๋กํผํฐ๋ก ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด์ ์ฑ๊ธํค ํํ๋ก ํ๋์ ๊ฐ์ฒด๋ง ์ฌ์ฉํ ์ ์๋๋ก ๋ณ๊ฒฝํด์ฃผ์๋ค.
์ด๋ ๊ฒ ์ ์ฒด ํ์ผ ๊ณณ๊ณณ์ ๊ฐํ ์ฐธ์กฐ๋ก ์ฎ์ด์๋ ๋ถ๋ถ์ ์ฝํ ์ฐธ์กฐ๋ก ์์ ํด์ฃผ์๋๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๋ฏ ํ์์ผ๋… ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ฌ์ ํ ๋ง์๋ค. (์ผ์ถ ์ค๊ธฐ๋ ํ์ง๋ง …)
๋์ฒด ๋ฌด์์ด ๋ฌธ์ ์ผ๊น.. ๋ฌด์์ด ๋๋ฅผ ์ดํ ๋ก ํ๋ค๊ฒ ํ๋๊ฐ..
์๊ฐ์ ํด๋ณด์..
๋น๋ง์ดํ๋์ด๋ผ๋ ์๋น์ค๋ ์ด๋ฏธ์ง๊ฐ ์ ๋ง ๋ง์ด ์ฐ์ด๋ ์๋น์ค์ด๋ค.
๊ณฐ๊ณฐํ ์๊ฐ์ ํด๋ณด์๋ค. ์บ์ฑ์ด ๋ฌธ์ ์ผ๊น..?
์ด๋ฏธ์ง ์บ์ฑ์ ์ํด์ ์ด๋ฏธ ์๋น์ค ๋ด์์๋ Kingfisher๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ๊ณ ์๋ค.
๊ทผ๋ฐ ๊ณ ๋ฏผํด๋ณด๋ฉด, ์บ์ฑ์ ๊ฒฐ๊ตญ์ ๋์ ์ฝ์คํธ์ ์ด๋ฏธ์ง ์์ฒญ์ ์ค์ด๊ธฐ ์ํด ํ๊ณ ์๋ ๊ฒ์ด๊ณ
๊ทผ๋ณธ์ ์ผ๋ก๋ ์ด๋ฏธ์ง ์ฌ์ด์ฆ(์ฉ๋)์ ์ค์ด๋ ๊ฒ์ด ํฌ๊ฒ ์ค์ํ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
๊ธฐ์กด์ ์ฌ์ฉํ๊ณ ์๋ ์ด๋ฏธ์ง์ ์ฌ์ด์ฆ๋ฅผ ์ฐ์ด๋ณด๋ฉด
1920 * 1080 ์ด์ ๋ ์ฌ์ด์ฆ์ ๊ณ ํ์ง์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๊ณ ์์๋ค.
์๊ฐ๋ณด๋ค ์ด๋ฏธ์ง๊ฐ ์ก์๋จน๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํฌ๋ค๋ ๊ฒ์ ์๊ณ ์๋๊ฐ?
์ฝ, ์ด๋ฏธ์ง ํด์๋ * 4byte๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
์๋ฅผ ๋ค๋ฉด, 1920 * 1080 * 4 = 8,294,400 = ์ฝ 8mb
์ด๋ฏธ์ง๋ ๋ฐ์ดํฐ๋ค.
์ด๋ฏธ์ง๋ ํน์ ํฌ๋งท์ผ๋ก ์ธ์ฝ๋ฉ๋ ๋ฐ์ดํฐ์ ์ผ์ข ์ธ๋ฐ, ์ด๋ฅผ ํด๋ํฐ์์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด์๋ ๋์ฝ๋ฉ์ด๋ผ๋ ๊ณผ์ ์ ๊ฑฐ์น๊ฒ๋๊ณ ๋์ฝ๋ฉ ํ์๋ ์ด๋ฏธ์ง ๋ฒํผ๋ผ๋ ํน์ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๊ฒ ๋๋ค. ์ด๊ฒ์ด ๋ ๋๋ง๋์ด์ ํ๋ฉด์ ๋ณด์ฌ์ง๊ฒ ๋๋ค.
์ด๋ฏธ์ง ์ฌ์ด์ฆ๊ฐ ํฌ๋ฉด ๊ฒฐ๊ตญ์ ํฌํจ๋๋ ๋ฐ์ดํฐ ์ ๋ณด๋ ๋ง์์ง๊ฒ ๋๋ ๊ฒ์ด๊ณ ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ ์ฆ๊ฐํ๊ฒ ๋ ๊ฒ์ด๋ค.
ํ๋ฉด์ ๋ณด์ฌ์ง ์ ์๋ ๊ณต๊ฐ์ ํ์ ์ ์ธ๋ฐ ๊ตณ์ด ๊ณ ํ์ง ์ฌ์ง์ ํด์๋ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์์ ํ์๊ฐ ์์๋ค.
์ฌ์ด์ฆ ์์ฒด๋ฅผ ์ค์ฌ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋๋ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๊ฒ์ด ์ค์ํด๋ณด์๋ค.
๋ฆฌ์ฌ์ด์ง / ๋ค์ด์ํ๋ง ํ๋ ์ฝ๋๋ ๋ง์ด ๋์์๊ธฐ ๋๋ฌธ์ ์ฐธ๊ณ ํด์ ๊ตฌํ์ ํ๋ค.
๊ฒฐ๋ก ..
ํ ํ๋ค๋ค.. ๊ธ์ด ์๊ฐ๋ณด๋ค ๊ธธ์ด์ก๋ค.
๋ฌธ์ ๋ฅผ ํด๊ฒฐ ์ ์๋
๋ฌธ์ ์๋ ๋ ์ x ๋ฌธ์ ์๋ ๋ ์์ ์ฝ๋ผ๋ณด๋ก ๋ฌด์ง๋ง์งํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ณด์ด๋ค๊ฐ ์ฑ์ด ์ข ๋ฃ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ฐ
์ด๋ ๊ฒ ์์ ๊ณผ์ ์ ๊ฑฐ์ณ์ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ก๊ณ , ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง๊น์ง ํด์ฃผ๋๊น ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ํ์ ํ ์ค์ผ ์ ์์๋ค.
์ฑ ์ฌ์ฉ ์ ํ๊ท 100 - 200 mb ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ ์ง๋๋ ๊ฒ ๊ฐ๋ค.
๋๊น์ง์์ ์๊ฐํด๋ณด๋ฉด ์์ฒญ ํฐ ์์ธ/๋ฌธ์ ๋ ์๋์์ง๋ง, ์ฌ์ํ๊ฒ ๋์น ์ ์๋ ๋ถ๋ถ๋ค์ด ํฐ ์ด์๋ฅผ ๋ง๋ค ์ ์๋ค๋ ๊ฒ์ ๋ค์ ํ ๋ฒ ๊ผผ๊ผผํ ์ฝ๋๋ฅผ ์ง์ผ๊ฒ ๋ค๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
๋ง์ง๋ง, ์คํฌ๋ฆฐ ์ท
๋ฉ๋ชจ๋ฆฌ๋ ์ค์ค ์๊ณ , ๋ด ๋๋ฌผ๋ ์ค์ค ์๋ ์ํฉ + ์ด๋ฏธ์ง๋ ์์ฒญ ํฐ ๊ฑฐ ์ฐ๋ ์ํฉ;;
๊ทธ๋ฅ ๋ค ํ์ด๋ง์๋ฒ๋ฆฐ ๊ฒฝ์ฐ -> ์ฉ๊ฐํ๋ค.
๊ฒฐ๋ก : ๊ธฐ์กด ๋๋น ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ต๋ 91% ๊ฐ์ ๐
์ฌ๊ธฐ๊น์ง ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค :)
๋ ์ด์์์ ๋ค๋ฌ๊ณ ์ถ์ง๋ง,, ํ์ ๋ถ์ณ์ ์ ๋๋ ๊ธ์ ์ฝ๊ณ ์ถ์ผ์๋ค๋ฉด ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์ ใ ใ
๊ทธ๋ฆฌ๊ณ ์๋ชป๋ ๋ด์ฉ์ด๋ ํผ๋๋ฐฑ ์์ผ๋ฉด ์ธ์ ๋ ์ง ํ์์ ๋๋ค.
https://github.com/Taehyeon-Kim/Today-I-Learned/issues/104
'๐ iOS & Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS] ์ด๋ฏธ์ง ์์ฒญ ์ทจ์ํ๊ธฐ (0) | 2023.10.26 |
---|---|
[iOS] commit hitch ์ ๊ฑฐํ๊ธฐ (6) | 2023.10.26 |
[Swift] Stored Property vs Computed Property vs Method (2) | 2022.11.04 |
[iOS] ๋คํธ์ํฌ ํต์ ํบ์๋ณด๊ธฐ๋ฅผ ์์ํ๊ธฐ ์ ์(0) (3) | 2022.11.04 |
[RxSwift] Disposable๊ณผ DisposeBag (0) | 2022.10.26 |