๐ก Note: ์ด ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ ๋ฌธ์๋ฅผ ๋ณด์๋ ค๋ฉด ์ฌ๊ธฐ๋ฅผ ํด๋ฆญํ์ธ์.
๐Swift Concurrency์ ๋ค์ํ ๊ธฐ๋ฅ๊ณผ ๊ธฐ์ ์ ์คํํ๊ณ ํ์ตํ๊ธฐ ์ํ ํ๋ ์ด๊ทธ๋ผ์ด๋์ ๋๋ค.
- Task
๋น๋๊ธฐ ์์ ์ ์คํํ๊ณ ์ ์ดํ ์ ์๋ ๊ธฐ๋ณธ ๋จ์์ ๋๋ค. - Detached Task
๋น๋๊ธฐ ์์ ์ ์คํํ๊ณ ์ ์ดํ ์ ์๋ ๊ธฐ๋ณธ ๋จ์์ ๋๋ค. ๋จ, ๊ธฐ์กด ์ปจํ ์คํธ์๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํฉ๋๋ค. - async/await
๋น๋๊ธฐ ์ฝ๋ ์์ฑ์ ๋๊ธฐ ์ฝ๋์ฒ๋ผ ๊ฐ๊ฒฐํ๊ฒ ํ ์ ์๊ฒ ํด์ฃผ๋ Swift์ ๋ฌธ๋ฒ์ ๋๋ค. - async-let
์ฌ๋ฌ ๋น๋๊ธฐ ์์ ์ ๋์์ ์์ํ๊ณ ๋์ค์ ๊ฒฐ๊ณผ๋ฅผ ๋ณ๋ ฌ๋ก ๊ธฐ๋ค๋ฆด ์ ์๋๋ก ํด์ฃผ๋ ๊ฐํธํ ๊ตฌ๋ฌธ์ ๋๋ค. - TaskGroup
์ฌ๋ฌ ๋น๋๊ธฐ ์์ ์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ด ๋ณ๋ ฌ ์ฒ๋ฆฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ฒ ๋ชจ์ ์ ์๊ฒ ํด์ฃผ๋ ๊ตฌ์กฐ์ ๋๋ค. - Continuation
๊ธฐ์กด์ ์ฝ๋ฐฑ ๊ธฐ๋ฐ ๋น๋๊ธฐ ์ฝ๋๋ฅผ async/await ์คํ์ผ๋ก ๋ณํํ ์ ์๊ฒ ํด์ฃผ๋ ๋ธ๋ฆฟ์ง ๋๊ตฌ์ ๋๋ค. - Cancellation
์คํ ์ค์ธ ๋น๋๊ธฐ ์์ ์ ์ทจ์ํ๋ ํ๋ ฅ์ ์ทจ์(Cooperative Cancellation)๋ฅผ ์์๋ด ์๋ค. - Task-Local
ํน์ Task ๋ด๋ถ์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ ์ง์ญ ๋ฐ์ดํฐ ์ ์ฅ์์ ๋๋ค. - Sendable
๋์์ฑ ํ๊ฒฝ์์ ์์ ํ๊ฒ ์ ๋ฌ๋ ์ ์๋ ํ์ ์์ ๋ํ๋ด๋ ํ๋กํ ์ฝ์ ๋๋ค. - AsyncSequence
(๋ด์ฉ) - AsyncStream
(๋ด์ฉ) - Actor (Syntax Rules)
๋์์ฑ ๋ฌธ์ ๋ฅผ ์์ฒ์ ์ผ๋ก ์ฐจ๋จํ๋ ์๋ก์ด ํ์ ์ ์์๋ด ์๋ค.
- New Concurrency Syntax
์๋กญ๊ฒ ์ถ๊ฐ๋ ๋์์ฑ ๋ฌธ๋ฒ์ ์์๋ด ์๋ค. - Structured vs.Unstructured Concurrency
๊ตฌ์กฐ์ ๋์์ฑ๊ณผ ๊ตฌ์กฐํ๋์ง ์์ ๋์์ฑ์ ์ฐจ์ด๋ฅผ ์์๋ด ์๋ค.
- Image
์ปฌ๋ ์ ๋ทฐ์์ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ค๊ณ , ์ทจ์ํ๋ ๋ฐฉ๋ฒ์ ์์๋ด ์๋ค. ์กํฐ๋ฅผ ํ์ฉํด ์บ์์ ์์ ํ๊ฒ ์ ๊ทผํ๊ณ , ์กํฐ์ ์ฌ์ง์ ์ฑ์ผ๋ก ์ธํด ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ๋ด ์๋ค. - Map
๊ธฐ์กด ๋ธ๋ฆฌ๊ฒ์ดํธ ๋ฐฉ์์ API๋ฅผ async/await์ผ๋ก ๋ณํํด ๋ด ์๋ค. - FileCompressor
์กํฐ ๊ฒฝํฉ(Actor Contention)์ผ๋ก ์ธํด ๋ฐ์ํ๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ต์ ํํด๋ด ์๋ค. - LocationApp
AsyncStream์ ํ์ฉํด ์์น ์ ๋ณด๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์ง์์ ์ผ๋ก ๋ฐ์์ค๋ ๊ตฌ์กฐ๋ฅผ ๊ตฌํํด๋ด ์๋ค.