Concurrency
-
[Swift] Understanding Swift Concurrency’s AsyncStreamSwift 2023. 8. 17. 09:25
์ด์ ๊ธ์์ ๊ธฐ์กด์ ๋น๋๊ธฐ ์ฝ๋๋ฅผ async/await์ ํ์ฉํ๋ Swift์ ์๋ก์ด ๋์์ฑ ์์คํ ์ผ๋ก ์ฐ๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ์ต๋๋ค. ์ฌ๊ธฐ์ ์ค๋ช ํ ๋ฉ์ปค๋์ฆ์ ์ฝ๋๊ฐ ๋จ์ผ ๊ฐ์ผ๋ก ๋ชจ๋ธ๋งํ ์ ์๋ ๋จ์ผ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋ ์ฝ๋์ ์ ํฉํฉ๋๋ค. ๋ค์ด๋ก๋ ์งํ๋ฅ , ์ฌ์ฉ์์ ํ์ฌ ์์น์ ๊ฐ์ด ์๊ฐ์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ, ๋น๋๊ธฐ for ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ๋ณตํ ์ ์๋ AsyncSequence ๊ฐ์ฒด๋ก ๋ชจ๋ธ๋งํ ์ ์์ต๋๋ค. ์ด์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ์์ ๋ก URL์ lines ์์ฑ์ ๋ค ์ ์์ต๋๋ค. let url = URL(string: "")! for try await line in url.lines { // use line } ๊ทธ๋ ๋ค๋ฉด ์ปค์คํ ๋น๋๊ธฐ ์ํ์ค๋ฅผ ์์ฑํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฌด์์ผ๊น์?..
-
[Swift] Wrapping existing asynchronous code in async/await in SwiftSwift 2023. 8. 17. 09:21
Swift์ async/await ๊ธฐ๋ฅ์ iOS 13 ๋ฐ ์ดํ ๋ฒ์ ์์ ๋น๋๊ธฐ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ํฅ์์ํค๋ ๋๋ผ์ด ๋ฐฉ๋ฒ์ ๋๋ค. ์ ํ๋ก์ ํธ์์๋ ์ด๋ก ์ธํด ๋ ํํ๋ ฅ์ด ์๊ณ ๊ฐ๋ ์ฑ์ด ์ข์ผ๋ฉฐ ๋๋ฒ๊น ํ๊ธฐ ์ฌ์ด ๋น๋๊ธฐ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ, ์ด๋ ๋๊ธฐ ์ฝ๋์ ๋งค์ฐ ์ ์ฌํ๊ฒ ์ฝํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ async/await๋ฅผ ์ฑํํ๋ ๊ฒ์ ํจ์์ ์๋ฃ ํธ๋ค๋ฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋น๋๊ธฐ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์๋นํ ๋ณ๊ฒฝํด์ผ ํ ์๋ ์์ต๋๋ค. ๋คํํ๋, ๊ธฐ์กด์ ์ฝ๋ฐฑ ๊ธฐ๋ฐ ๋น๋๊ธฐ ์ฝ๋๋ฅผ ์๋ก์ด async/await ์ธ๊ณ๋ก ๊ฐ์ ธ์ค๊ธฐ ์ํด Swift์ ๋ด์ฅ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ต๋๋ค. ์ด ๊ธ์์๋ ๊ธฐ์กด์ ์ฝ๋ฐฑ ๊ธฐ๋ฐ ๋น๋๊ธฐ ์ฝ๋๋ฅผ async ๋ฐ async/await์ ํจ๊ป ์๋ํ๋ ํจ์๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ ์ค ํ๋..