asyncgo v0.1.0
https://github.com/myyrakle/asyncgo/releases/tag/v0.1.0
๋น๋๊ธฐ ์ฝ๋ ์ง ๋ค๊ณ ๊ณ ๋ฃจํด๋ง ๋ง๊ตฌ ์ธ์ง๋ฅด๋ค๋ณด๋ฉด ๊ฐํ์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ async/await์ ์ด๋์์ ์ ์ฉํ ๋ณด์ผ๋ฌํ๋ ์ดํธ๋ฅผ ์ข ๋ง๋ค์ด๋ดค๋ค.
์ผ๋จ ๋ค์๊ณผ ๊ฐ์ ํํ๋ก ํ์คํฌ๋ฅผ ๋ง๋ค์ด์ ์ ์ดํ ์ ์๋ค.
Await์ ํตํด์ ํ์คํฌ๊ฐ ๋๋ ๋๊น์ง ๋๊ธฐํ๊ณ ๊ทธ ๋ฐํ๊ฐ์ ๋ฐ์์ฌ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ผ๋ฏธํฐ๋ ๋ฐ์ ์ ์๋ค.
์ด 2๊ฐ์ง๋ฅผ ์์ฉํ๋ฉด ์
๋ ฅ๊ณผ ์ถ๋ ฅ์ ๋ช
ํํ๊ฒ ๊ตฌ๋ถํด์ ๊ฐ์์ฑ์ ํฌ๊ฒ ๋์ผ ์ ์๋ค.
๋ ๊ณ ๋ฃจํด์ ๋จ๋ฐํ ๋ ์๊ธฐ๋ ๋ฌธ์ ์ ์, ํจ๋์ด ๋ฐ์ํ ๋ ๋ญ ๋์์ ํ์ง๋ฅผ ๋ชปํ๋ค๋ ๊ฒ์ด๋ค.
๊ฐ์ฉ์ฑ์ ์ํด์๋ ๊ณ ๋ฃจํด ๋ฐ๋๋ง๋ค ๋ฆฌ์ปค๋ฒ ๋ฌ์์ฃผ๋๊ฒ ์ข์๋ฐ, ๊ทธ๊ฒ๋ ์๋นํ ๊ท์ฐฎ์ ์ผ์ด๋ค.
RunPanicableTask๋ฅผ ์ฌ์ฉํ๋ฉด ํจ๋-safeํ๊ฒ ํ์คํฌ๋ฅผ ๋ง๋ค ์ ์๋ค.
ํจ๋์ด ๋ฐ์ํ๋ฉด Result ํ์
์ ํตํด ์ค๋ฅ ์ ๋ณด๋ฅผ ์ ํํด์ค๋ค.
์ด๊ฒ ๋๋ฌธ์ RunPanicableTask์ ์ฝ๋ฐฑ์ ๋ฆฌํดํ์
์ด Result[T]๋ก ๊ณ ์ ์ด๋ค.
์ฌ๋ฌ๊ฐ์ Task๋ค์ ์๋ฃ์๊ฐ ๊ด๊ณ์์ด ๋์์ Awaitํ๊ณ ์ถ๋ค๋ฉด, JoinAll๋ก ๋ฌ์ฑํ ์ ์๋ค.
๋ค ๋ค๋ฅธ ์ธ์ด๋ค์์ ์ฌ์ฉํ๋ ๋
ผ๋ฆฌ๋ ์ด๋์์ด๋ผ์ nodejs, rust ๊ฐ์ ์ธ์ด๋ค์ ์ฌ์ฉํด๋ณธ ๊ฒฝํ์ด ์๋ค๋ฉด ์ฝ๊ฒ ์์ฉํ ์ ์์ ๊ฒ์ด๋ค.