๐ Meta ๋ ์์ญ์ต ๊ฑด์ ๋น๋๊ธฐ ์์ฒญ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊น?
Meta ์์๋ ์ฌ๋ฌ ์์ง๋์ด๋ง ํ์์ ์ํํด์ผํ๋ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํตํฉ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ์ด๋ฒคํธ ์ค์ฌ ๋น๋๊ธฐ ์ปดํจํ ํ๋ซํผ(aka. Async)์ ์์ฒด์ ์ผ๋ก ๊ตฌ์ถํ์ฌ ์ด์ํ๊ณ ์๋ค๊ณ ํฉ๋๋ค. ์ฌ์ค ์ด๋ฒคํธ ์ค์ฌ ๋น๋๊ธฐ ์ปดํจํ ํ๋ซํผ์ด๋ผ๋ ๊ฑฐ์ฐฝํ ๋จ์ด๋ฅผ ์ผ์ง๋ง, AWS ์ Lamda ๋ ๋ค์ด๋ฒ ํด๋ผ์ฐ๋ ํ๋ซํผ์ Cloud Functions ์ ๊ฐ์ ์๋ฒ๋ฆฌ์ค ์ปดํจํ ๊ณผ ๋น์ทํ๋ค๋ ๋๋์ด ๋๋ค์. ์ด๊ธฐ ๋ฒ์ ์ Async ๋ ๋น๋๊ธฐ ์์ฒญ์ ์ค์ ์ง์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ Dispatcher ๋ผ๋ ๋ชจ๋์์ ๊ฐ๋จํ ์ฐ์ ์์ ์ ๋ต์ผ๋ก ์์ฒญ์ ์ ๋ ฌํ๊ณ ๋น๋๊ธฐ ์ฒ๋ฆฌ์๋ฒ๋ก ์ ๋ฌํ๋ ๋จ์ํ ๊ตฌ์กฐ์๋๋ฐ, ์๋น์ค๊ฐ ์ปค์ง๋ฉด์ ๋ค์ํ ์ ์ฆ์ผ์ด์ค์ ํธ๋ํฝ์ ์ฆ๊ฐ๋ฅผ ์์คํ ์ด ๋ฐ๋ผ์ก์ ์ ์์๊ณ ๊ฐ์ ์ด ํ์ํ๊ฒ ๋์๋ค๊ณ ํฉ๋๋ค. Async ๋ ์ด 2๋ฒ์ ๊ฐ์ ์ด ์งํ๋์๋๋ฐ์, ์ฒซ๋ฒ์งธ๋ ์๋ง์ ์์ง๋์ด๋ง ํ์ด ์์ฒญํ๋ ํธ๋ํฝ์ ์ฒ๋ฆฌํ ์ ์๊ฒ๋ ํ์ฅ์ฑ ์๊ณ ์ ๋ขฐ๋ ๋์ ์์คํ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ฐ์ ์ด ์์๊ณ , ๋๋ฒ์งธ๋ ๋ค์ํ ์ํฌ๋ก๋๋ก ์ธํด ์ฆ๊ฐํ๋ ์์คํ ์ ๋ณต์ก์ฑ์ ์ค์ด๊ธฐ ์ํ ๊ฐ์ ์ด์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ํฅ๋ฏธ๋ก์ ๋ ์ ์ ์ฒซ๋ฒ์งธ ๊ฐ์ ์์ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ๋ํ ์ฐ์ ์์๋ฅผ ์ง์ฐ ํ์ฉ ์๊ฐ์ด๋ผ๋ ๊ธฐ์ค์ ๋์ด ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ์ ์ธ๋ถํ๋ ์ฐ์ ์์๋ฅผ ์ง์ ํ ์ ์๊ฒ ํ๊ณ ์์ธกํ ์ ์๋ ํธ๋ํฝ ์ํฉ์์ ์ปดํจํ ๋ฆฌ์์ค๋ฅผ ์ต๋ํ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํ ์ฉ๋ ์ต์ ํ ๋ฐฉ๋ฒ๊ณผ ๋๋ฒ์งธ ๊ฐ์ ์์ ๋ค์ํ ์ํฌ๋ก๋๋ฅผ ๋์ํ๊ธฐ ์ํด Tailer(Data ๋ฅผ ์ฝ๊ธฐ ์ํ Agent)๋ฅผ ๋์ ํ๊ณ pull ๋ฐฉ์์์ push ๋ฐฉ์์ผ๋ก ๋ณํํ์ ๋ ์ป์ ์ฅ์ ์ด์์ต๋๋ค. Meta ์ ๋น๋๊ธฐ ์์ฒญ ์ฒ๋ฆฌ์ ๋ํด ๊ด์ฌ์์ผ์ ๋ถ๋ค์ ๊ณต์ ๋๋ฆฐ ์๋ฌธ ๋ด์ฉ์ ์ฐธ๊ณ ํด์ฃผ์ธ์. ๐ ์๋ฌธ - ์ด๊ธฐ Async ์ ๋ฌธ์ ์ ๊ณผ ๊ฐ์ ๋ด์ฉ: https://engineering.fb.com/2020/08/17/production-engineering/async/ - ๋๋ฒ์งธ Async ๊ฐ์ : https://engineering.fb.com/2023/01/31/production-engineering/meta-asynchronous-computing/