์จ๋ฐ Swift Concurrency for Swift 6 (Part-1)
Swift Concurrency๋ฅผ A๋ถํฐ Z๊น์ง ๋ค๋ฃน๋๋ค. (Part 1)
์๊ฐ์ 579๋ช
๋์ด๋ ์ด๊ธ
์๊ฐ๊ธฐํ 12๊ฐ์

์๊ฐ ๊ธฐ๊ฐ ์ฐ์ฅ์ ์๋ดํด ๋๋ ธ๋ ๋ฐ ๋๋ก, Swift Concurrency for Swift 6 (Part-1, Part-2) ๊ฐ์์ ๊ธฐ์กด ์๊ฐ์๋ถ๋ค์ ํฌํจํ์ฌ, ๊ฐ์ ๊ธฐ๊ฐ์ ์ถ๊ฐ 1๋ ์ฐ์ฅํด๋๋ ธ์ต๋๋ค.
์ฐธ๊ณ ๋ถํ๋๋ฆฝ๋๋ค. :)
(ํนํ๋ ๊ธฐ์กด Part-1 ๊ฐ์ ์๊ฐ์ ๋๋ด์์ง ๋ชปํ์ ๋ถ๋ค์ด ๋ง์๋ฐ, ์ด๋ฒ ๊ธฐํ๋ฅผ ํตํด์ ๋ค์ ํ๋ฒ ๋ง๋ฌด๋ฆฌ ์ ํด๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.)
์๋ ํ์ธ์. ์จ๋ฐ์ ๋๋ค.
์ค๋์ ์ค๋๋ง์ ์ข์ ์์์ ๋ง์๋๋ฆฌ๋ณด๋ ค ํ๋๋ฐ์. ๋ฌธ๋ฒ ๋ถํธ์บ ํ ์์ + ๋์์ฑ ๊ฐ์๊น์ง ๋ค ๋ค์ผ์ ํ์ง์๋ถ์ด, ์ต๊ทผ์ ์ฟ ํก๊ณผ ์นด์นด์ค๋ฑ ํฌ์ ๋์ ํฉ๊ฒฉํ์ จ๋ค๋ ์์์ ์ ํด์ค์ จ์ด์.

์ด๋ฐ ์์์ ์ ํด๋๋ฆฌ๋ ์ด์ ๋,
์ด ๋ถ์ ์ฒ์๋ถํฐ ์ด์ง์ ๋ชฉํ๋ก ๋ถํธ์บ ํ๋ฅผ ์๊ฐํ์ จ๊ณ , ๋ถํธ์บ ํ ํ์๋ ํ์ง์๋ถ๋ค๊ณผ ์คํฐ๋๋ฅผ ๊ตฌ์ฑํด 1-2๋ ์ ๋ ๊พธ์คํ๊ฒ ์คํฐ๋๋ฅผ ํด์ค์ จ๋ค๋ ๊ฒ์ ์๊ณ ์์์ต๋๋ค. ์ด ๋ถ์ ๋งค์ฃผ ํน์ ์์ผ ์ ๋ , ์ ๋ง ๊พธ์คํ๊ฒ ์คํฐ๋๋ฅผ ํ์ ๋ค๋ ์์์ ์ ๋ ๊ณ์ ์ ํด ๋ค์๊ธฐ์.. ์ธ์ ๊ฐ ๋ฐ๋์ ์ด์ง์ ์ฑ๊ณตํ์๊ฒ ๊ตฌ๋๋ ์๊ฐ์ ๊ฐ์ง๊ณ ์์๊ฑฐ๋ ์. ๊ทธ๋ ๊ธฐ์ ์ด๋ฒ์ ์ข์ ํ์ฌ๋ค์ ๋์์ ํฉ๊ฒฉํ์ ์ ๊ณจ๋ผ๊ฐ์ จ๋ค๊ณ ๋ง์ํ์ ์ ์ ๊ฐ ๋ค ๋๋ฌด ๊ธฐ๋ปค์ต๋๋ค. :)(๊ผญ ์ ๊ฐ์ ๋๋ฌธ์ ์ด์ง์ ์ฑ๊ณตํ๋ค๊ณ ๋ง์๋๋ฆฌ๋ ๊ฒ์ ์๋๊ณ ) ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์ ๋ง ์ค์์ ํ์ จ๊ณ , ๊ฑฐ๊ธฐ์ ๋์์๋ ๋ ธ๋ ฅ๊น์ง ๋ํด์ก์ผ๋.. ์ด์ฐ๋ณด๋ฉด ์ ๋ ๋น์ฐํ ๊ฒฐ๊ณผ๋ผ๋ ์๊ฐ๋ ๋ญ๋๋ค. ์ด ๋ถ์ฒ๋ผ, ๋ค๋ฅธ ๋ง์ ๋ถ๋ค๋ "๊ธฐ๋ณธ๊ธฐ"์ "๊พธ์คํจ"์ ๊ฐ์ง๊ณ ์ข์ ์์์ ์ ํด์ฃผ์๊ธธ ํญ์ ๋ค์์ ์์ํ๊ณ ์๊ฒ ์ต๋๋ค.
๋ชจ๋ ๋ถ๋ค ํ์ดํ ๐ช๐ป
์๋ ํ์ธ์, ์จ๋ฐ์ ๋๋ค.
๊ทธ๋์, Swift Concurrency Part-1 ๊ฐ์์์ API ์ ๋ฐ์ดํธ ๊ด๋ จ ์์ ํญ๋ชฉ์ ์ ๊ฐ ๋ช๊ฐ์ง ๋จ๊ฒจ๋์์๋๋ฐ์. ํด๋น ์์์ ์ฐ์ด์ ์ ๊ฐ ์น์ 15๋ถ๋ถ์ ์ ๋ก๋ ํด๋์์ต๋๋ค.(์ฌ์ค, Part-2 ๋ถ๋ถ์์ ์์ธํ๊ฒ ์ค๋ช ๋๋ฆฌ๋ ๋ด์ฉํ๊ณ ์ฐ๊ด์ด ๋์ด ์์ด, Part-2๋ถ๋ถ๊น์ง ๋ค์ผ์ค ์์ ์ด์ ๋ถ๋ค์ ํฌ๊ฒ ์๊ด์ ์ํ์ ๋ ๋๋ ๋ด์ฉ์ด๊ธด ํฉ๋๋ค. Part-1๋ถ๋ถ๋ง ๋ค์ผ์ค ๋ถ๋ค์ ์ ๋ฐ์ดํธ ๋ด์ฉ ํ์ธํ์๋ฉด ๋ ๊ฒ ๊ฐ๊ณ ์.)
[๊ด๋ จ ๋ด์ฉ]
(์ ๋ฐ์ดํธ) TaskGroup ์คํํจ์ ํ๋ผ๋ฏธํฐ ์ถ๊ฐ ๊ด๋ จ ์ ๋ฐ์ดํธ ์์
(์ ๋ฐ์ดํธ) ์ทจ์ ํธ๋ค๋ฌ ๊ด๋ จ ๋ด์ฉ ์ ๋ฐ์ดํธ ์์ (API ์ ๋ฐ์ดํธ)
๊ฐ์ฌํฉ๋๋ค. :)
Swift Concurrency (Part-2) ๊ฐ์๋ฅผ ์ถ์ํ์ต๋๋ค.
์๋ ํ์ธ์! ์จ๋ฐ์ ๋๋ค.
๋ง์ด ๊ธฐ๋ค๋ฆฌ์๋.. Swift Concurrency ๊ฐ์ Part-2 ๋ถ๋ถ์ ์ถ์ํ๊ฒ ๋์์ต๋๋ค.๊ฐ์ ๋งํฌ: https://inf.run/rFuFe
Swift Concurrency๊ด๋ จํ์ฌ ๋ ๋ฅํ๊ฒ ํ์ตํ๊ณ ์ถ์ผ์ ๋ถ๋ค์ ๊ฐ์๊ฐ ๋ถ๋ช ๋ง์ด ๋์์ด ๋์ค ๊ฒ์ด๋ผ๊ณ ๋ด ๋๋ค. (์ ์ฒด ์๊ฐ์ ์์ง ์๋์ง๋ง, ํ์ฌ ๊ฐ์์ 70%์ ๋ด์ฉ์ด ์ ๋ก๋ ๋์๊ณ , ๋๋จธ์ง 30%์ ๋ด์ฉ๋ 3์ ๋ง๊น์ง ์ ๋ก๋๊ฐ ๋ ์์ ์ ๋๋ค.)
์ ์ฐฉ์ 100๋ถ๊ป ๊ฐ์ 50% ํ ์ธ ํํ, ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ค์ 200๋ถ๊ป 45% ํ ์ธ ํํ์ ๋๋ฆฌ๊ณ ์์ผ๋.. ๊ฐ์ ๊ตฌ๋งค์ ๊ด์ฌ์์ผ์ ๋ถ๋ค์ ๋น ๋ฅด๊ฒ ์ ์ฐฉ์์ ๋์ ํด ๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค์.
(๊ฐ์ ํ์ด์ง์ ๋ค์ด๊ฐ์๋ฉด, ์๋จ์ ์ ์ฐฉ์ ํ ์ธ ํํ ๋งํฌ๊ฐ ๋ฐ๋ก ์์ผ๋.. ๊ผญ ํ์ธํ์๊ณ ๋งํฌ๋ฅผ ๋๋ฌ์ ๊ตฌ๋งคํ์๋ฉด ํ ์ธ ํํ์ ๋ฐ์ผ์ค ์ ์์ต๋๋ค.๐๐ป)์๋ ํ์ธ์! ์จ๋ฐ์ ๋๋ค.
๋ณธ Swift Concurrency (Part-1) ๊ฐ์ ๋ด์ฉ์ ์ ๊ฐ ์ค๊ฐ ์ค๊ฐ ํ์ธํด๋ณด๋.. ๊ฐ์ ์์์ด ์ฌ์์ค์ ์ฑํฌ(sync)๊ฐ ์ ๋ง์ง ์๋ (๊ฐ์ ํ๋ฉด๊ณผ ๋ชฉ์๋ฆฌ๊ฐ ์กฐ๊ธ์ฉ ๋ฐ๋ฆฌ๋..?) ํ์๋ค์ด ๋ณด์ด๋๋ผ๊ณ ์..ใ
(์ ํํ๊ฒ ์์ธ์ด ๋ญ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง์ใ )๊ทธ๋์ ์ฝ๋ฑ๊ณผ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ๋ฐ๊พธ์ด์ ์ธํ๋ฐ์ ์ ๋ก๋๋ ๊ฐ์ ํ์ผ์ ์ ๋ถ ๊ต์ฒดํด ๋จ์ผ๋.. ํน์๋ ๋ถํธํจ์ ๊ฒช์ง ์์ผ์ จ์ผ๋ฉด ์ข๊ฒ ๋ค์!
(ํน์๋ ๋ ์ด๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ธ์ ๋ ์ง ๋ง์ํด์ฃผ์ธ์ ๐๐ป)
์ข์ ์ฃผ๋ง ๋์ธ์!๊ณ ๋ง์ต๋๋ค. :)






