ํ์์ PR๋ก ํฉ์ณ์ง๋ ๊ฒฝ์ฐ ์ด์ ํด๋นํ๋ worflow ์์ฑํ๋ ๋ฐฉ๋ฒWorkflow ์์ฑํ๋ ๊ณณ์ ํด์ง ์ฌ๋๋ง์ด editํ ์ ์๋๋ก ์ค์ ํด์ค ์ ์๋ค.๋ํ ์ ํด๋ ๋ ํผ์งํ ๋ฆฌ, ์ํฌ์คํ์ด์ค๊ฐ์ ๊ฒ์ ๋ณ๊ฒฝ์ด ์์ผ๋ฉด ์์ ํด์ค ์ ์๋ค.๋ชจ๋ PR๊ณผ main branch๋ก ํฉ
Apple Platform์์ CI/CD๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ค!๊น ๋ ํผ์งํ ๋ฆฌ์ pushํ๋ฉด CI์์ Build - Test๊ฐ ์ด๋ฃจ์ด์ง ๋ค์ ์ด๊ฒ์ด ์ฑ๊ณตํ๊ฒ ๋๋ฉด Artifacts๋ฅผ ๋ง๋ค๊ณ ์ด๋ฉ์ผ๋ก ์๋ฆผ ํด์ค๋ค.Build and Test๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ญ ์ด์ด์ง๋ ํ๋ก์ธ
Swift 5.5์์ ์๋ก์ด concurrency ์ ๊ณตํ๋ค. ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ์ ์ฅ์ ์์์๋ถํฐ ์๋๋ก ์ด๋ํ๋ค block -> Static code์ด๋ค. Static code๋? ๋ธ๋ก์์์๋ง ์ ์๋์ด์์ด์ ์์์๋ง ๋ณด์ด๋ ๊ฒ์ ๋งํ๋ค. lifetime๋ block
์ด์ผ๊ธฐํ ๊ฒ Threading model Synchronization Threading model GCD Swift Concurrency ์์: ํผ๋์์๋ถํฐ ๊ฐ์ฅ ์ต๊ทผ์ ๋ด์ฉ๋ค์ ๊ฐ์ ธ์ค๋ ํ๋ฉด GCD queue ์ฌ์ฉํด์ ํ๋ค ์ ์ ๊ฐ ์ต๊ทผ ๋ด์ค ๋ณด๋ ๊ฒ์ ์์ฒญํ๋ค.
Swift์ concurrency ํน์ง๋คํธ์ํฌ๋ ๋น๋๊ธฐ๋ก ๋์ด์๋ค์ด ํ๋ฉด์ ๋ํ ์ฝ๋๋ฅผ ์ค๋ช ํ ๊ฒ์ด๋ค์ผ๋ฐ์ ์ธ Completion handler๋ฅผ ํตํด ์ฌ์ง ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒํ์ง๋ง 3๊ฐ์ง์ ๋ฌธ์ ์ ์ด ์กด์ฌํ๋ค.ํ๋ฆํ๋ฆ์ ๋ณด๋ฉด ์ด๊ณณ ์ ๊ณณ์ผ๋ก jumpํ๊ณ ์๋ค๋ค์์ผ๋ก๋
UIkit ์์ ์ด๋ฏธ์ง ์ธ๋ค์ผ์ ๊ฐ์ ธ์ค๋ ์ฝ๋์์ ๋น๋๊ธฐ, ๋๊ธฐ์ ์ผ๋ก ๊ฐ์ ธ์จ๋ค.์ฐ๋ ๋์์ syncํ๊ฒ ๋์ํ๋ฉด ํ๋ ํ๊ฒ๋๋ฉด ๋ฉ์ถ๊ณ ๊ทธ ๋ค์ ์์ ์ ์ด์ ๊ฒ์ด ๋๋ ๋ ๊น์ง ๊ธฐ๋ค๋ ค์ผํ๋ค.๋ฐ๋๋ก ๋น๋๊ธฐ๋ ๋ค๋ฅธ ๋์์ ํ ์ ์๋ค๋น๋๊ธฐ ์ฅ์ ๋ค๋ฅธ ์์ ๋ง์ง ์๊ณ ๋ฐ๋ก ์์
wwdc Advances in UI Data Sources์์๋ ์๋์ ๊ฐ๋คํ์ฌ UI Data ์ด๋ป๊ฒ ์ํธ์์ฉํ๋์ง์ ๋ํด ์์๋ณด์์ปฌ๋ ์ ๋ทฐ ๋ฐ์ดํฐ์์ค์น์ ์, ์์ดํ ์์ ๋ํด ์๋ ค์ค๋คsimple, flexibleํ๋คUI ์ ๋ฐ์ดํธ ํ๋๋ฒWeb service respo
์ ๋ค๋ฆญ์ด ๋ฐ์ ํด๊ฐ๋ ๊ณผ์ ์ ๋ณด์ฌ์ค๋ค.์ค๋ ํ ๊ฒ์ ์๋์ ๊ฐ๋ค.์ ๋ค๋ฆญ์ด ์ Swift์์ ์ค์ํ ๊น?์ ๋ค๋ฆญ์ ์์ฐ๋ฉด ๋ฆฌํดํ์ ์ ์ ํด์ฃผ์ด์ผํ๋ค.ํ์ ์ ํ๋๋ก ๊ณ ์ ํด๋์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ํ์ ์ ๋ฃ์ ์๊ฐ ์๋ค.์ด๋ ๊ฒ Any ํ์ ์ผ๋ก ๋์ด์์ผ๋ฉด ๋งค๋ฒ ์ปดํ์ผ๋ฌ์์ ์ด๋ค ํ์ ์ธ์ง
https://medium.com/@cseankurbuet/understanding-deep-copy-and-shallow-copy-in-swift-8df201375611๊ธ์ ๋ฒ์ญํ ๊ฒ์ด๋ ์๋ฌธ์ ๋ณด๋ ๊ฒ์ ์ถ์ฒํ๋ค.๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ๋ณต์ฌํ์ฌ ๋ณต์ฌํ ๋ ๋ฐ์ดํฐ
Protocol and Value Oriented Programming in UIKit Apps๋ฅผ ๋ณด๊ณ ํด์ํ ๊ฒ์ด๋ค.๋ ์์ธํ ๊ฒ์ wwdc ์์์ ๋ณด๊ณ ํ์ธํด๋ณด๋ฉด ์ข๋ค!์ฝ๋๋ฅผ ๋ณด์์ ๋ ์์ ์๋ ํจ์์ ์ฝ๋๋ง ๋ณผ๋ฟ ๋ค๋ฅธ ์ฝ๋์ ์ด๋ป๊ฒ ์ํธ์์ฉํ๋์ง๋ฅผ ๋ณด์ง์๋๋ค.L
RunLoop๋? ๋ฐ๋ฃจํ๋ thread์ ๊ด๋ จ์๋ ์ค์ํ ์ธํ๋ผ ๋ถ๋ถ์ด๋ค. ๋ฐ๋ฃจํ๋ ์ด๋ฒคํธ ์ฒ๋ฆฌ loop๋ก ์์ ์ ์ค์ผ์ฅดํ๊ฑฐ๋ ๋ค๊ฐ์ค๋ ์ด๋ฒคํธ๋ฅผ ์กฐ์ํ๊ธฐ์ํด์ ์ฌ์ฉํ๋ค. ๋ฐ๋ฃจํ์ ๋ชฉ์ ์ ์์ ์ด ์์ ๊ฒฝ์ฐ ์ฐ๋ ๋๋ฅผ ๋ฐ์๊ฒ ์ ์งํ๊ฑฐ๋ ํด์ผํ ์์ ์ด ์์ ๊ฒฝ์ฐ ์ฐ๋ ๋๋ฅผ
WWDC Optimizing Swift Performance WWDC 2015 Optimizing Swift Performance๋ฅผ ๋ณด๊ณ ์ ๋ฆฌํ๋ค. ์ค์ํํธ๋ ARC์ ํจ๊ป Flexible, Safe ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค. ์ค์ํํธ์๋ ์ข์ ๊ธฐ๋ฅ๋ค์ด ์๋ค(ex, ํด๋ก
ํด๋น Understanding Xcode Build System๋ฅผ ๋ณ์ญํด์ ์ฌ๋ฆฌ๋ ๊ธ์ ๋๋ค.์ ์ ๊ธ๋ณด๋ค ์ค์ ์๋ฌธ์ ๋ณด์๋ ๊ฒ์ ๋ ์ถ์ฒํฉ๋๋ค!๋ชจ๋ Swift ํ๋ก๊ทธ๋จ์ ์ค์ ๊ธฐ๊ธฐ์์ ์คํ๋๊ธฐ ์ ์ ๋ง์ ๋ณํ์ด ์ด๋ฃจ์ด์ง๋ค.์ด ๊ณผ์ ์ ๋ณดํต Xcode Build Syste
Lottie๋ ์์ด๋น์ค๋น์์ ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก iOS, ์๋๋ก์ด๋, ์น์์ vector ๊ธฐ๋ฐ์ ์ ๋๋ฉ์ด์ ์ ๋ง๋๋ ๊ฒ์ ๋งํ๋ค. Lottie๋ JSON ํฌ๋งท์ผ๋ก ๋ชจ์ ์ ๋ง๋ค์ด์ ๋ฒกํฐ์ ์ ๋๋ฉ์ด์ ์ ๋ง๋ค๊ณ ์ฌ๋ฆฌ๋ ๊ฒ์ ๋งํ๋ค. ์๋ฒ์ ์ ์ฉํ ๊ท์ฌ์ด ์ ๋๋ฉ์ด์ ์ ์๋์
๋จผ์ ๋ Observable์ ์ฐจ์ด์ ์ ์ธ์ ๋ฐฉ์ถ์ ์์ํ๋์ ๋ฌ๋ ค ์๋คHot Observable๋ ์ด Observable์ด ๋ง๋ค์ด์ง์๋ง์ ๋ฐฉ์ถ์์ํ๋ค.๊ทธ๋์ ๋ง์ฝ์ ์ค๊ฐ์ ์ด๋ค observer๊ฐ ์ด๊ฒ์ ๊ตฌ๋ ํ๊ฒ ๋๋ฉด sequence์ ์ค๊ฐ์์ ์์ํ๊ฒ ๋๋ค.๊ทธ๋ฆฌํ์ฌ
Mysteries of Auto Layout, Part 22๋ฒ์งธ ํํธ์ ๋๋ค.The Layout Cycle์ฑ ์คํํ๊ณ ์์ง ๊ฑธ์ณ์ ๋ ์ด์์์ด ์์ฑ๋๋ค. ์ด์ ์ ๋ณด์ฌ์ค ํ๋ก์ธ์ค๋ค.์ฌ์ดํด์ด ์ด๋ ๊ฒ ์ด๋ฃจ์ด์ ธ ์๋ค.Run loop์ผ๋ก ์์ํด์ ๋ ์ด์์ ๋ณํ๋๊ฒ์ ๊ณ์ฐํ๊ณ ๊ทธ๋ค์
WWDC Mysteries of Auto Layout, Part 1Auto Layout is a powerful constraint-based layout engine that can drive complex and dynamic interfaces on both iO
subscript์์ ์ธ๋ฑ์ค๋ฅผ ํ์ฉํด์ ์ค์ ์ด๋ ์ป๋๊ฒ๊ณผ ๊ด๋ จ๋ ๋ฉ์๋๊ฐ ํ์ํ์ง ์๊ณ ๋ ๊ฐ๋ค์ ์ค์ ํ๊ฑฐ๋ ์ป์ ์ ์๋ค.๋ณดํต Array๋ ๋์ ๋๋ฆฌ์์ ๊ฐ์ ์ป์ผ๋ ค๋ฉด ์๋์ ๊ฐ์ด ์จ์ผํ๋ค.ํ๋์ ํ์ ์ ํตํด ์ฌ๋ฌ๊ฐ์ subscripts์ ์ ์ํ ์ ์๋ค.๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ ๊ฐ
static ํ์ ํ๋กํผํฐ๋ก ์ ์ญ์ผ๋ก ํ๋์ Class๋ฅผ ์์ฑํ์ฌ, ๊ณต์ฉ์ผ๋ก ์ฌ์ฉํ๋ ๋์์ธ ํจํด์ด๋ค.์ธ์คํด์ค๊ฐ ํ๋๋ง ์กด์ฌํ๋ ๊ฒ์ ๋ณด์ฆํ๊ณ ์ถ์ ๊ฒฝ์ฐ์ ์ฃผ๋ก ์ฌ์ฉ๋๋ค.iOS์์๋ ์ฑ ์ค์ ์ด๋ ์ฌ์ฉ์์ ๊ธฐ๋ณธ ์ค์ ์ ์ ์ฅํ๋ UserDefaults๋ฅผ ์ฌ์ฉํ ๋ ์ธ์คํด์ค
์ค์ง ์์ ๊ฒ ๊ฐ์ ์๊ฐ์ด ์๋ค. ๊ณ ์ํ๋ค๊ณ ์ ๋ฐฐ์ ๋ค๊ณ ์ด์ผ๊ธฐ ํ๊ณ ์ถ์ ๋ ์ด๋ค. ๋ฏธ๋ จ์ ๋ํ ๋์ ์ด ์ด๋์ ์ผ์์ด ๋๋ฒ๋ฆฌ๋ ํ๋ฃจ๋ผ๋ ๊ฐ๋ฐ์ ์ํ๋ฉด ์ด์ํ๋ค. ์ฒ์ ์์ํ ๋์๋ 6๊ฐ์ ์ง๋๋ฉด ์ถฉ๋ถํ ์ค๋ ฅ์ ๊ฐ์ง๊ณ ์๊ฒ ์ง ๋ผ๋ ์๊ฐ์ด ์ปธ๋ค. ๊ทธ๋ฐ๋ฐ ์๊ฐํด๋ณด๋ฉด 6๊ฐ์๋ง์