![[๊ทธ๋ฆผ์ผ๋ก์ดํดํ๋] ๋๊ธฐ(sync) ๋น๋๊ธฐ(async)์ ๊ฐ๋
์ ๋ํ ๊ฐ์ฅ ์ง๊ด์ ์ธ ์ดํด๊ฐ์ ์ธ๋ค์ผ](https://cdn.inflearn.com/public/courses/324755/course_cover/ac23c8f7-6fc7-457f-874b-e2bff8ec0d50/infinf.png?w=420)
[๊ทธ๋ฆผ์ผ๋ก์ดํดํ๋] ๋๊ธฐ(sync) ๋น๋๊ธฐ(async)์ ๊ฐ๋ ์ ๋ํ ๊ฐ์ฅ ์ง๊ด์ ์ธ ์ดํด
์จ๋ฐ(Allen)
์์ฃผ ์ฝ๊ฒ ๋๊ธฐ ๋น๋๊ธฐ์ ๊ฐ๋ ์ ์ดํดํ ์ ์๋ 19๋ถ์ ๋์ ๊ฐ์์ ๋๋ค.
์ด๊ธ
sync, async
Swift Concurrency๋ฅผ A๋ถํฐ Z๊น์ง ๋ค๋ฃน๋๋ค. (Part 1)
์๊ฐ์ 591๋ช
๋์ด๋ ์ด๊ธ
์๊ฐ๊ธฐํ 24๊ฐ์







์นด์นด์ค
์์ง์๋ค๋ ์ด ๊ฐ์๋ฅผ ๋ฃ๊ณ ์์ด์!





์นด์นด์ค
์์ง์๋ค๋ ์ด ๊ฐ์๋ฅผ ๋ฃ๊ณ ์์ด์!
๋จผ์ ๊ฒฝํํ ์๊ฐ์๋ค์ ํ๊ธฐ
5.0
๊น๋ํ
Swift Concurrency๋ฅผ ํ์ตํ๊ธฐ ์ํด ๊ผญ ๋ค์ด์ผ ํ๋ ๊ฐ์๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ธฐ์กด GCD์ Swift Concurrency๋ฅผ ๋น๊ตํด์ฃผ์ ์ ๊ณผ๊ฑฐ์ ํ์ฌ์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ ๊ด์ ์ด ์ด๋ป๊ฒ ๋ฐ๋์๋์ง ๋ช ํํ๊ฒ ์ดํดํ ์ ์์๊ณ ๊ตฌ์กฐ์ ๋์์ฑ์ ๋ํ ์ค๋ช ์ด ํฌ๊ฒ ๋์์ด ๋์์ต๋๋ค. ์์ผ๋ก๋ ์ข์ ๊ฐ์ ๋ง์ด ๋ถํ๋๋ฆฝ๋๋ค!
5.0
Bana
๋ด์ฉ ๋๋ฌด๋๋ฌด๋๋ฌด ์ข์์.... ์จ๋ฐ๋์ด iOS ๊ฐ์ ๋ ๋ง์ด ์ฐ์ด์ฃผ์๋ฉด ์ข๊ฒ ์ด์ ์ค์ํ ๊ฐ๋ ์ ํ์คํ ๊ฐ์กฐํด์ฃผ์๊ณ ์ฌ๋ฌ๋ฒ ๋ฐ๋ณต์ค๋ช ํด์ฃผ์ ์ ๊ธฐ์ต์๋ ํ์คํ ๋จ๋ ๊ฒ ๊ฐ์์ ๋๋ฌด ์ข์ ๊ฐ์๋ผ ์ ํผ์๋ง ๋ฃ๊ณ ์ถ์ง๋ง ๊ฐ์ํ ๋จ๊ธฐ๊ณ ๊ฐ๋๋ค ใ ใ
5.0
qowiedncz
์ง์ง ์ดํด ์ฝ๊ฒ ๋๋ฌด ์ ์ค๋ช ํด์ฃผ์๋ ๊ฒ ๊ฐ์์. ํ์ ์์ธ๋ฐ ์ ๋ง ๋์ ๋ง์ด ๋ฐ๊ณ ์์ต๋๋ค. ์ง์ฌ์ผ๋ก ์ ๋ง ์ ๋ง ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
Swift Concurrency (์ค์ํํธ ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ)
Task / async / await (๋น๋๊ธฐ ์ฒ๋ฆฌ)
async/await ๊ด๋ จ ์ ๊ท API
Continuation (์ปจํฐ๋ด์์ด์ ) ์ฌ์ฉ๋ฒ
Structured Concurrency (๊ตฌ์กฐ์ ๋์์ฑ / ๋ณ๋ ฌ์ฒ๋ฆฌ)
async let / TaskGroup (๋ณ๋ ฌ์ฒ๋ฆฌ ๊ธฐ๋ฒ)
Cancellation (์์ ์ทจ์)
Task-Local (์์ ์ง์ญ ๋ณ์)์ ์ฌ์ฉ๋ฒ
(์์ ์ทจ์) ํ๋ก์ ํธ ์ ์ฉ ์ฌ๋ก
(๋ณธ ๊ฐ์๋ ๊ต์ฌ๋ฅผ ์ ์ํ๋ ๋ฐ 1๋ ์ด์์ ์๊ฐ์ด ์์๋์์ต๋๋ค. ๊ทธ๋งํผ ํ์ต์ ์ํ ์ต์ /์ต์์ ๋ด์ฉ๊ณผ ์ง๊ตฌ์์์ ์ด๋ ํ Swift Concurrency ๊ด๋ จ ๋ด์ฉ๋ณด๋ค ๋ํ ์ผํ ํ์ต ๋ด์ฉ์ ๋ค๋ฃจ๊ณ ์๊ธฐ ๋๋ฌธ์, ๊ฐ์ ํ๋ฆฌํฐ ์ ์ง๋ฅผ ์ํด.. ๋ณ๋๋ก ๊ต์ฌ๋ฅผ ํ๋งคํ๊ณ ์์์ ์ํด ๋ถํ๋ฐ๋๋๋ค. ๊ต์ฌ ๊ตฌ์ ์ ์ ํ ์ฌํญ์ ๋๋ค. ๊ฐ์๋ง ๊ตฌ์ ํ์ ๋ ์ ํ ๋ฌด๋ฐฉํฉ๋๋ค.)
Swift Concurrency for Swift 6 by Allen (Part -1 / Part -2 ํตํฉ ๊ต์ฌ)
ํ๋งค์ฒ๋งํฌ: https://smartstore.naver.com/allenschool/products/11528874881
(30,000์)
๋ณธ ๊ฐ์๋ฅผ ์ง์ ์ ์ผ๋ก ์๊ฐํ์ง ์์ผ์๋๋ผ๋ ๊ต์ฌ๋ง ๋ฐ๋ก ๊ตฌ์
๋ ๊ฐ๋ฅํฉ๋๋ค. (๋ค๋ง, ๊ฐ์ ๋ชฉ์ ์ ์ํด ์ต์ ํ๋ ์๋ฃ์ด๋ฏ๋ก, ๊ต์ฌ๋ง ๊ตฌ์
์ ์ดํด๋์ง ์๋ ๋ด์ฉ์ด ์์ ์ ์์ต๋๋ค. ์ด ์ ์ ๋์ํ์ ๋ค๋ฉด ๊ฐ์๋ฅผ ๊ตฌ์
ํ์ง ์์ผ์๊ณ ๊ต์ฌ๋ง ๊ตฌ์
ํ์๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค.)
๋ถ์ : Swift 6๋ก ๋์๊ฐ๊ธฐ ์ํ ์ค์ํํธ ๋์์ฑ(Swift Concurrency) ํ๋ก๊ทธ๋๋ฐ ์ ๋๋ก ํ์ตํ๊ธฐ
CS์ ๊ธฐ๋ฐํ ํํํ ๊ธฐ๋ณธ๊ธฐ์
๋ํ
์ผํ ํ ๋ ์ฐจ์ด๊ฐ
์ค๋ ฅ์ ์ฐจ์ด๋ฅผ ๋ง๋ค์ด ๋ธ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ค์ํํธ๋ 5.5 ๋ฒ์ ์์ ์๋ก์ด ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ(Swift Concurrency)์ด ๋์ ๋ ์ดํ, ๋จ๊ณ ๋ณ ์ค๋น๋ฅผ ๊ฑฐ์ณ ๋๋์ด 6 ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ๊ฐ ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Swift 6 ๋ฒ์ ์ ํต์ฌ์ ์ธ ๋ชฉํ ์ค์ ํ๋๊ฐ ๋ฐ๋ก ์ฝ๋์ ์ ์ฌ์ ์ธ ๋ฐ์ดํฐ ๊ฒฝํฉ(Race Condition/Data-Races) ๊ฐ๋ฅ์ฑ์ ์ ๊ฑฐํ๊ณ ์ปดํ์ผ ๋จ๊ณ๋ถํฐ Thread-Safe(์ฐ๋ ๋ ์์ ) ํ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์๊ฒ ํ์ฌ ์์ ์ฑ์ ๋ณด์ฅํ๋ ค๋ ๊ฒ์ ๋๋ค.
(์ฐ๋ฆฌ๋ ์ ์ง์ ์ธ Swift 6์ ๋์ ์ ์ํ ์ ํ์ ์ ๋ง๋ฟ์์์ต๋๋ค.)
๋ฐ๋ผ์ ๋ณธ ๊ฐ์๋ ์ ์ฐจ Swift 6๋ก ๋์๊ฐ๊ธฐ ์ํด, Swift Concurrency์ ๊ด๋ จ๋ ๋ชจ๋ ๋ด์ฉ. ์ฆ, A๋ถํฐ ~ Z๊น์ง๋ฅผ ํ์ตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ์ฌ ์ค๊ณ๋์์ต๋๋ค. ๋ณธ ๊ณผ์ ์ ์ฃผ์ ๋ด์ฉ์ ์๋์์ ์ฐธ๊ณ ๋ถํ๋๋ฆฌ๋ฉฐ, ์ฒซ๋ฒ์งธ ๊ฐ์ ์๊ฐ ์์์์ ๊ณผ์ ์ ๋ํ ๋ด์ฉ์ ์์ธํ๊ฒ ์ค๋ช ๋๋ฆฌ๊ณ ์์ผ๋, ์ด ๋ํ ์ฐธ๊ณ ๋ถํ๋๋ฆฝ๋๋ค.
(Part-2๊น์ง ํ์ตํ๊ฒ ๋์๋ฉด, Swift 6์ ๋์ ์ ์ํ ์ด๋ก ์ ์ธ ํ ๋๊ฐ ์์ฑ๋๋ฆฌ๋ผ ๋ด ๋๋ค.)
ํญ์ ์ ๊ฐ์์ ๊ฐ์ธ์ ์ธ ๋ชฉํ์ด์ง๋ง, ์ง๊ตฌ ์์์ ์ด๋ ํ Swift Concurrency ๊ด๋ จ ๊ฐ์๋ณด๋ค ๋ ์์ธํ๊ณ ๊น์ ๋ด์ฉ์ ๋ค๋ฃจ๊ณ ์์ต๋๋ค. (์ง์ฐฉ๊ณผ ๊ฐ์ ๋ํ ์ผํ ํ ๋ ์ฐจ์ด๊ฐ ์ค๋ ฅ์ ์ฐจ์ด๋ฅผ ๋ง๋ ๋ค๊ณ ์๊ฐํ๊ธฐ์, ํญ์ ๋ค์ํ ์ฝ๋ ์์์ ์ ๋ฆฌ๋ ์๋ฃ๋ฅผ ์ ๊ณตํด ๋๋ฆฌ๋ ค๊ณ ํฉ๋๋ค.)
Task / async / await ์ ์ ๋๋ก ๋ ์ดํด
๋น๋๊ธฐ(async) ํจ์์ ๋์ ๋ฐฉ์
URLSession๊ด๋ จ ์ ๊ท ๋น๋๊ธฐ API ์๊ฐ
Continuation์ ์ฌ์ฉ (1) ์ฝ๋ฐฑํจ์ / (2) ๋ธ๋ฆฌ๊ฒ์ดํธ ๋ฐฉ์์ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ์ ํ
์์น์ฑ(CoreLocation)์ ๋ธ๋ฆฌ๊ฒ์ดํธ ๋ฐฉ์์ async/await์ผ๋ก ์ ํ ํ๋ก์ ํธ ์์
๊ตฌ์กฐ์ ๋์์ฑ์ ์ด๋ก ์ ์ธ ๋ด์ฉ
๋ณ๋ ฌ์ฒ๋ฆฌ - (1) async let (2) TaskGroup
์์ ์ ์ทจ์ ๋์ ๋ฐฉ์์ ์ดํด (์์ ์ทจ์ ๊ด๋ จ ํ๋ก์ ํธ ์์)
ํ๋ ฅ์ ์ทจ์ ๋ชจ๋ธ์ ์ดํด
๊ตฌ์กฐ์ ๋์์ฑ๊ณผ ์์ ์ ์ทจ์์ ์์ฉ
TaskGroup์ ์์ฉ (๋์ ์ฐ๋ ๋ ๊ฐฏ์์ ์ง์ - ์ปค์คํ ์ค์ )
Task-Local๋ณ์์ ํ์ฉ
๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ Computer Science ๊ด์ ์์ ์ดํดํ๊ธฐ (์ฐ๋ ๋/๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์ ์ดํด)
Data Isolation / Task Isolation / Actor Isolation (๊ฒฉ๋ฆฌ ๊ฐ๋ ์ ์ดํด)
Task Isolation๊ณผ Shared Mutable State (๊ณต์ ๋ฐ์ดํฐ)
Sendable ํ์ (์ฐ๋ ๋ ๊ฐ์ ๊ณต์ ํด๋ ์์ ํ ๋ฐ์ดํฐ ํ์ )
Actor ์์ ์ ๋ณต (1) ๊ฒฉ๋ฆฌ/๋น๊ฒฉ๋ฆฌ (2) ์์์ฑ (3) ์ฌ์ง์ (4) ์กํฐ ํํ
(5) ๋ฉ์ธ์กํฐ ๋ธ๋กํน (6) ์กํฐ ๊ฒฝํฉ ํด๊ฒฐํ๊ธฐ
๊ธ๋ก๋ฒ ์กํฐ์ ๋ฉ์ธ์กํฐ
์กํฐ๋ก ์บ์(cache) ๊ตฌํํ๊ธฐ ํ๋ก์ ํธ ์์
AsyncSequence (๋น๋๊ธฐ ์ํ์ค)์ AsyncStream (๋น๋๊ธฐ ์คํธ๋ฆผ)
์น์์ผ์ AsyncStream ์ ์ฉํ๊ธฐ ํ๋ก์ ํธ ์์
Non-Sendable ํ์ ์ ์ ์ก (sending)
ํจ์(ํด๋ก์ )์ ๊ฒฉ๋ฆฌ ๊ด๋ จ ๋ฌธ์ - isolated (Actor)? = #isolation / @isolated(any)
Custom ์คํ์(Executor)์ ๊ตฌํ / Task ์คํ์(Executor) ์ ํธ๋
(์ฐธ๊ณ ) consume / consuming ํค์๋
์กํฐ์ ๋ฌธ๋ฒ ๊ท์น ์ฌํ - ์์ฑ์ / ์๋ฉธ์ / ํ๋กํ ์ฝ / ์์ / ํ์ฅ
Swift5 ์์ Swift6๋ก ๋์ด๊ฐ๊ธฐ
Instruments ์ฌ์ฉํด์ ํ๋ก์ ํธ ๋ถ์ํ๊ธฐ
Part-2 ๊ฐ์๋งํฌ: https://inf.run/TyZcJ
๐ Swift Concurrency ํ๋ก๊ทธ๋๋ฐ์ A๋ถํฐ ~ Z๊น์ง ๋ค๋ฃจ๊ณ ์ ํ๋ ๋ชฉํ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๐ (Swift 6์ ๋ชฉํ์ธ) ์ปดํ์ผ ํ์์์๋ถํฐ ์ฌ๋ฌ์ฐ๋ ๋ ๊ฐ์ ์์ ํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ๊ฑฐ๋ฆ์ด ๋ฉ๋๋ค.
๐ ํ์กดํ๋ ๋ชจ๋ WWDC - Swift Concurrency ๊ด๋ จ ์์๋ค์ ์๋ฒฝ ๋ถ์ํ์ฌ ๋ง๋ ๊ฐ์ ์ ๋๋ค.
๐ ์๋ง์ Concurrency ๊ด๋ จ ํด์ธ ์์ , ๊ฐ์ ๋ฑ์ ๋ถ์ํ์ฌ ์ต๋ํ ๋ชจ๋ ๋ด์ฉ์ ๋น ์ง์์ด ๋ค๋ฃน๋๋ค.
๐ ๋ค์ํ ์์ ํ๋ก์ ํธ
๐ ๊ทธ๋์ ์ง๊ตฌ์์ ์ด๋ ํ Swift Concurrency ๊ฐ์๋ณด๋ค ์์ธํ๊ฒ !!!!
๐ (์ ๊ฐ์๋ ํญ์ ๊ทธ๋์์ง๋ง) ์ต๋ํ ์ง๊ด์ ์ธ ์ดํด์ ์ ๋ฆฌ๋ฅผ ์ํด ๋ณ๋์ ํ์ต ์๋ฃ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ณ๋ ๊ต์ฌ(์ ์ฐจ์ฑ PDF) ๊ตฌ์ ๊ฐ๋ฅ
์ต๋ํ ์ง๊ด์ ์ธ ์ค๋ช
์ ์ํด ๋ณ๋์ 300ํ์ด์ง ๋ถ๋์ ๊ต์ฌ๋ก ์ค๋ช
์ ๋๋ฆฝ๋๋ค.
(๊ต์ฌ๋ ๋ณ๋ ๊ตฌ์
ํ์
์ผ ํฉ๋๋ค.)
๊ณต์๋ฌธ์ ๋ฒ์ญ๋ณธ ๋ฑ ๋ค์ํ ๋ฒ์ญ์๋ฃ ์ ๊ณต
์ต๋ํ ํ์ต์ ์๊ฐ์ ํจ์จ์ ์ผ๋ก ํ์ฉํ๊ธฐ ์ํ Swift 6 (Concurrency) ๊ณต์๋ฌธ์, API Collection ๊ณต์๋ฌธ์ ๋ฑ์ ๋ฒ์ญ๋ณธ์ ์ ๊ณตํด๋๋ ค์.
๋ค์ํ ํ๋ก์ ํธ ์์ ์ฝ๋ ์๋ฃ ์ ๊ณต
์ด๋ก ์ ์ธ ๋ด์ฉ ๋ฟ๋ง์๋๋ผ, ํ์ต ๋ด์ฉ์ ํ๋ก์ ํธ์ ์ง์ ์ ์ฉํด ๋ณด๋ฉด์ ์ฌํ ํ์ต์ ํด๋ด ๋๋ค.
์ด๋ก ํ์ต ์ฝ๋ ์๋ฃ ์ ๊ณต
์ต์์ ์ด๋ก ์ ์ธ ํ์ต์ ์ํ ๋ค์ํ ์์์ ํ๋ ์ด๊ทธ๋ผ์ด๋ ์ฝ๋ ์๋ฃ๊ฐ ์ ๊ณต๋ฉ๋๋ค.
๊ฐ์์ฉ - ์ ์์ฑ PDF (๊ต์ฌ) ๋ณ๋ ํ๋งค (Part-1 / Part-2 ํตํฉ ๊ต์ฌ)
๋งํฌ: https://smartstore.naver.com/allenschool/products/11528874881
(๊ต์ฌ ์ด์ธ์ ์ฝ๋ ์๋ฃ๋ ๋ฌด๋ฃ๋ก ์ ๊ณต๋ฉ๋๋ค.)
์ฝ๋์๋ฃ ์ ๊ณต /
ํ๋ก์ ํธ ์์ ์ ๊ณต
๋ค์์ ๋ฒ์ญ๋ณธ ์ ๊ณต (Swift 6 - Concurrency / API Collection / Migrating to Swift 6)
Swift ๋ฌธ๋ฒ์ ๊ธฐ๋ณธ์ ์ธ ์ฌํญ - ํจ์, ํด๋ก์ ๋ฑ์ ์์ ์์ฌ๋ก ๋ค๋ฃฐ ์ ์๋ ์์ค
๊ธฐ์กด์ ๋น๋๊ธฐ ์ฝ๋ฐฑํจ์, DispatchQueue ๋ฑ์ ๋ค๋ค๋ณธ ๊ธฐ๋ณธ์ ์ธ ์ง์
Swift๋ก ๋คํธ์ํฌ ํธ์ถ API(URLSession ๋ฑ)๋ฅผ ๋ค๋ค๋ณธ ๊ฒฝํ
๊ธฐ์ด์ ์ธ ์์ค์ UIKit, SwiftUI ์ง์
macOS Sequoia / Xcode 16 (ํ๋ ์ด๊ทธ๋ผ์ด๋ ์ด๋ก ํ์ต์ Xcode 15.3 ~ 15.4 ์์๋ ๊ฐ๋ฅ)
๋ณธ ๊ฐ์์ ๋ด์ฉ๋ค์, ์ ๊ฐ ์กฐ๊ธ์ด๋ผ๋ ๊ทธ๋ฆผ ๋ฑ์ ์ฐธ๊ณ ํ ๊ฒฝ์ฐ์ PDF์๊ด๋ จ URL์ฃผ์๊ฐ ๋จ๊ฒจ์ ธ ์์ต๋๋ค. ๊ทธ๋ฐ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ ๋ชจ๋ ์๋ฃ๋ ์ ๊ฐ ์์ฑํ ์๋ฃ์ด๊ธฐ์, ๋ณธ ๊ฐ์์ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์ ๋ด๋ ๊ฒ๊ณผ ๊ฐ์์๋ฃ๋ก ์ฐ์ด๋ ์ ์์ฑ ๊ต์ฌ PDFํ์ผ์ ๊ณต์ ๋ ์ด๋ ํ ๊ฒฝ์ฐ์๋ ๊ธ์ง๋ฉ๋๋ค.
(๋ณธ ๋ผ์ด์ผ์ค ๊ด๋ จ ๋ด์ฉ์ ์ด๊ธธ์, ๋ฒ์ ์ธ ์ฑ ์์ ์ง๊ฒ ๋์ค ์ ์์ผ๋ ๋ฐ๋์ ์ ์ ๋ถํ๋๋ฆฝ๋๋ค.)
Q. ๊ฐ์๋ ํ์ ์๊ฐ์ธ๊ฐ์?
A. ํ์ ์๊ฐ์ด ์๋๋๋ค. ๋ณธ ๊ฐ์๋ 24๊ฐ์(2๋ )์ ๊ฐ์ ์๊ฐ์ ๋ํ ์ ํ ๊ธฐ๊ฐ์ด ์์ต๋๋ค. ์ ์ ๋ถํ๋๋ฆฝ๋๋ค. (์ ๊ฐ์๋ฅผ ๊ณต์ ํ๋ ์ฌ๋ก๋ฅผ ์ฌ๋ฌ ์ฐจ๋ก ๊ฒฝํํ ๊ฒฐ๊ณผ.. ๊ทธ๋ฆฌ๊ณ ์ ๊ฐ ๋ค์ด๋ ์๊ฐ๊ณผ ๋ ธ๋ ฅ๋๋น ํฐ ๋์ ๋ฒ ์ ์๋ ๊ฒ๋ ์๋๊ธฐ์.. ์ ๊ฐ ํ ์ ์๋ ์ต์ ์ ๊ฐ์ ๊ณต์ ๋ฐฉ์ง ๋์ฑ ์ผ ๋ฟ์ด๋, ๋์ ์๋์ผ๋ก ์ดํด๋ฅผ ๋ถํ๋๋ฆฝ๋๋ค ๐๐ป)
๋ฌธ๋ฒ ๋ถํธ์บ ํ๋ฅผ ์๊ฐํ ์ ์ด ์์ผ์๋ค๋ฉด..? ๐๐ปโโ๏ธ๐๐ปโโ๏ธ
์ Swift ๋ง์คํฐ ์ค์ฟจ(2๊ฐ์ ๊ณผ์ )์ ์๊ฐํ์ ์ ์ด ์์ผ์๋ค๋ฉด, ์ฌ๋์ผ๋ก ์ฐ๋ฝ์ฃผ์๋ฉด..๋ณธ Part-1 ๊ฐ์์ ๋ฌด๋ฃ ์๊ฐ๊ถ์ ์ ๊ณตํด๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค. (๋ถํธ์บ ํ ์ฌ๋ ์ ์ฒด ๊ณต์ง ์ฌํญ์ ํ์ธํด ์ฃผ์ธ์.)
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
Swift Concurrency ํ๋ก๊ทธ๋๋ฐ์ ์ ๋๋ก ์ตํ๊ณ ์ถ์ผ์ ๋ถ
๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ์ด๋ก ์ ์ผ๋ก ์ ๋๋ก ๋ฅ(deep)ํ๊ฒ ์ตํ๊ณ ์ถ์ ๋ถ
WWDC์์ ๊ทธ ์ด์์ผ๋ก ์น์ด๋จน๊ณ ์ถ์ผ์ ๋ถ!!!!!!
์ ์ ์ง์,
ํ์ํ ๊น์?
Swift ์ธ์ด์ ๊ธฐ๋ณธ๊ธฐ
์ธํ๋ฐ์ธ์ฆ
7,693
๋ช
์๊ฐ์
776
๊ฐ
์๊ฐํ
315
๊ฐ
๋ต๋ณ
5.0
์
๊ฐ์ ํ์
7
๊ฐ
๊ฐ์
iOS๊ฐ๋ฐ์ ์จ๋ฐ์
๋๋ค.
https://www.youtube.com/@allen_ios
"์ ํํ๊ฒ ์๋ ์ง์์, ์ฝ๊ฒ ์์ ์ ๋ง๋ก ์ค๋ช ํ ์ ์์ด์ผ ํ๋ค."๊ฐ ์ ๋ชจํ ์ ๋๋ค.
๊ทธ๋ ๊ธฐ์ ์ ๊ฐ ๊ณต๋ถํ๋ฉด์ ๊ฒช์๋ ์ํ์ฐฉ์ค๋ฅผ ์ฝ๊ฒ ํ์ด๋ด์ด
๋๊ตฌ๋ ์ดํดํ ์ ์๋ ์ธ์ด๋ก ์ง์์ ๊ณต์ ํ ์์๋ ๊ฐ๋ฐ์๊ฐ ๋๊ณ ์ถ์ต๋๋ค.
์ ๋ ์ฌ์ด ์ฃผ์ ๋ก ๋น ๋ฅธ ์๊ฐ ์์ ๊ฒํฅ๊ธฐ ์์ผ๋ก ์ฝ๊ฒ๋ง ๊ฐ๋ฅด์น๋ ๊ฐ์๋ฅผ ๋ง๋๋ ๊ฒ์๋ ๊ด์ฌ์ด ์์ต๋๋ค.
๊ทธ๋ฐ ๊ฐ์๋ ์ผ๋ง๋ ์ง ๋น ๋ฅด๊ฒ ์ฐ์ด๋ด๋ฏ ๋ง๋ค ์ ์๊ฒ ์ง๋ง, ๊ฒฐ๊ตญ "์ข์ ๊ฐ๋ฐ์๋ก ์ฑ์ฅ"ํ๋ ๊ฒ์ ๊ทธ๋งํผ ์ด๋ก ์ ์ธ ๊ธฐ๋ฐ์ ๋ฐ๊ฑฐ๋ฆ์ด ํํํด์ผ ํ๋ค๊ณ ๋ฏฟ๊ณ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
์ฌ์ด ๊ฐ์๋ณด๋ค๋, ์ข์ ๊ฐ๋ฐ์(๋์์์ด ์ฑ์ฅํ ์ ์๋ ๊ฐ๋ฐ์)๊ฐ ๋๊ธฐ ์ํด
๋ฐ๋์ ์์์ผ ํ๋ ์ด๋ ค์ด ๋ด์ฉ๊น์ง๋ฅผ ์ต๋ํ ์ฝ๊ฒ, ๊ทธ๋ฆฌ๊ณ ์ง๊ด์ ์ผ๋ก ์๋ ค๋๋ฆฌ๋ ๊ฒ.
๊ทธ๋์ ์ ๊ฐ ์๋ ์ฌ๋ฌ๋ถ ์ค์ค๋ก WHY(์)๋ฅผ ๊ณ ๋ฏผ/์๊ฐํ ์ ์๋ ๋ฐ๊ฑฐ๋ฆ์ ๋ง๋ค์ด ๋๋ฆฌ๋ ๊ฒ์ ์ ์ ๊ฐ์ ๋ชฉํ๋ก ์ผ๊ณ ์์ต๋๋ค.
์ ์ค์ค๋ก๋ ๋ด์ผ์ ๋ ์ข์ ๊ฐ๋ฐ์๊ฐ ๋์๊ณ ๋
ธ๋ ฅํ๋ ๋งํผ
์ ๊ฐ ๊ณ ๋ฏผ ํ๋ ๋ด์ฉ๋ค์ ๊น์ด์๊ฒ ์ ๋ฌ ๋๋ฆฌ๊ณ ์ถ์ต๋๋ค.
๋ฉด์ ์์ ์๊พธ ๋จ์ด์ง๊ฑฐ๋, ์ฌ์ด ๋ด์ฉ๋ ์์ ์ ์ธ์ด๋ก ์ ํํํ์ง ๋ชปํ๊ฒ ๋ค๋ ๊ฒ์ ์ ํํ๊ฒ ์๊ณ ์์ง ์๋ค๋ ์๋ฏธ๋ผ๊ณ ๋ ์๊ฐํฉ๋๋ค. ์คํ๋ ค ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ, CS์ ๋ํด "ํํํ ๊ธฐ๋ณธ๊ธฐ"๊ฐ ์์ด์ผ, ๋น ๋ฅด๊ฒ ์ฑ์ฅ ๊ฐ๋ฅํ๋ค๊ณ ๋ฏฟ์ต๋๋ค.
๐๐ป๋ฌธ์๋ ์๋์ ์ด๋ฉ์ผ๋ก ์ฃผ์๋ฉด ๋ฉ๋๋ค.
we.love.code.allen@gmail.com
์ธ์ด: Swift(์ค์ํํธ), Python, Java, C#
์ ์ฒด
50๊ฐ โ (11์๊ฐ 38๋ถ)
ํด๋น ๊ฐ์์์ ์ ๊ณต:
์ ์ฒด
71๊ฐ
5.0
71๊ฐ์ ์๊ฐํ
์๊ฐํ 9
โ
ํ๊ท ํ์ 4.9
5
์ข์ ๊ฐ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๋์ Swift Concurrency๋ฅผ ๊ฒํฅ๊ธฐ๋ก ์๊ณ ์์๋๋ฐ ์ง๊ด์ ์ผ๋ก ๋์ ์๋ฆฌ๊น์ง ์ด๋ ๊ฒ ์ ๋๋ก ์๋ ค์ฃผ์๋ ๊ฐ์๋ ์ ๋ง ์์ ๊ฒ ๊ฐ๋ค์. Concurrency๋ฅผ ์กฐ๊ธ์ด๋ผ๋ ์ด์คํ๊ฒ๋ผ๋ ๊ณต๋ถํด๋ณด์ ๋ถ๋ค์ ์ด ๊ฐ์์ ์ง๊ฐ๋ฅผ ์์ค ๊ฒ ๊ฐ์ต๋๋ค. ๊ตฌ์กฐ์ ๋์์ฑ ๊ด๋ จ๋ ๋ด์ฉ๋ค์ ๊ทธ๋์ ์ดํดํ๊ธฐ ์ด๋ ค์ ๋๋ฐ ํ๋ฐฉ์ ์ ๋๋ก ๊นจ๋ฌ์์ต๋๋ค. ๊ต์ฌ๋ ๋๋ฌด ์ข๊ณ , ์์์ฝ๋๋ค๋ ๋ค์ํ๊ฒ ์ ๊ณตํด ์ฃผ์ ์ ํท๊ฐ๋ฆฌ๋ ๊ฐ๋ ๋ค๋ ๊น๋ํ๊ฒ ์ ๋ฆฌ๊ฐ ์ ์ ๋ฆฌ๊ฐ ๋์์ต๋๋ค. ๊ฐ์ฌ๋ ์์ผ๋ก๋ ์ข์ ๊ฐ์ ๋ง์ด ๋ถํ๋๋ฆฝ๋๋ค :)
์๊ฐํ 17
โ
ํ๊ท ํ์ 5.0
5
๊ฐ์ฌ๋๊ป์ ์ ๋ง ์ธ์ฌํ๊ณ ์์ธํ๊ฒ ์ค๋ช ํด์ฃผ์ ์, ์ด์ ์๋ ์ด์คํ๊ฒ ์๊ณ ์๋ ๊ฐ๋ ๋ค์ ์์ ํ ์ดํดํ ์ ์์์ต๋๋ค. ํนํ ์ด๋ฒ ๊ฐ์์์ ๊ฐ์ฅ ์ธ์ ๊น์๋ ์ ์, ์ค์ ํ๋ก์ ํธ์ ์ด๋ป๊ฒ ์ ์ฉ๋๋์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์ ๊ฐ ๋งค์ฐ ํ๋ฅญํ๋ค๋ ๊ฒ์ ๋๋ค. ๋จ์ํ ์ด๋ก ์ ๋ฌ์ด ์๋๋ผ ์ค๋ฌด ์ค์ฌ์ ์์๋ฅผ ํตํด ์ดํด๊ฐ ํจ์ฌ ์ฌ์ ๊ณ , ์ค์ ์ ๋ฌด์ ๋ฐ๋ก ํ์ฉํ ์ ์์ ๊ฒ ๊ฐ๋ค๋ ์์ ๊ฐ๋ ์๊ฒผ์ต๋๋ค.
์๊ฐํ 6
โ
ํ๊ท ํ์ 5.0
์๊ฐํ 6
โ
ํ๊ท ํ์ 5.0
5
Swift Concurrency๋ฅผ ํ์ตํ๊ธฐ ์ํด ๊ผญ ๋ค์ด์ผ ํ๋ ๊ฐ์๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ธฐ์กด GCD์ Swift Concurrency๋ฅผ ๋น๊ตํด์ฃผ์ ์ ๊ณผ๊ฑฐ์ ํ์ฌ์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ ๊ด์ ์ด ์ด๋ป๊ฒ ๋ฐ๋์๋์ง ๋ช ํํ๊ฒ ์ดํดํ ์ ์์๊ณ ๊ตฌ์กฐ์ ๋์์ฑ์ ๋ํ ์ค๋ช ์ด ํฌ๊ฒ ๋์์ด ๋์์ต๋๋ค. ์์ผ๋ก๋ ์ข์ ๊ฐ์ ๋ง์ด ๋ถํ๋๋ฆฝ๋๋ค!
์๊ฐํ 2
โ
ํ๊ท ํ์ 5.0
์์ ๋จ
์ง์๊ณต์ ์๋์ ๋ค๋ฅธ ๊ฐ์๋ฅผ ๋ง๋๋ณด์ธ์!
๊ฐ์ ๋ถ์ผ์ ๋ค๋ฅธ ๊ฐ์๋ฅผ ๋ง๋๋ณด์ธ์!