๋„คํŠธ์›Œํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์„ฑ์„ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค Ergo 1.2

1.2๋…„ ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— Ergo XNUMX ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ถœ์‹œ๋˜์–ด ์ „์ฒด Erlang ๋„คํŠธ์›Œํฌ ์Šคํƒ๊ณผ ํ•ด๋‹น OTP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ Go ์–ธ์–ด๋กœ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๊ธฐ์„ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๊ฐ๋…์ž ๋ฐ GenServer ๋””์ž์ธ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ Go ์–ธ์–ด๋กœ ๋ถ„์‚ฐ ์†”๋ฃจ์…˜์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ Erlang ์„ธ๊ณ„์˜ ์œ ์—ฐํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Go ์–ธ์–ด์—๋Š” Erlang ํ”„๋กœ์„ธ์Šค์™€ ์ง์ ‘์ ์ธ ์œ ์‚ฌ์ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋ณต๊ตฌ ๋ž˜ํผ๊ฐ€ ์žˆ๋Š” GenServer์˜ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ ๋ฃจํ‹ด์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ˆ์™ธ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” MIT ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ:

  • ์ž์ฒด ์„œ๋ช…๋œ ์ธ์ฆ์„œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ TLS 1.3 ์ง€์› ๊ตฌํ˜„(์—ฐ๊ฒฐ์„ ์•”ํ˜ธํ™”ํ•ด์•ผ ํ•˜์ง€๋งŒ ์—ฐ๊ฒฐ์ด ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ธ์ฆํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ)
  • ํ˜ธ์ŠคํŠธ ํฌํŠธ๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด EPMD์— ์˜์กดํ•  ํ•„์š”๊ฐ€ ์—†๋„๋ก ์ •์  ๋ผ์šฐํŒ…์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๊ณ  ์•”ํ˜ธํ™”์™€ ํ•จ๊ป˜ ๊ณต์šฉ ๋„คํŠธ์›Œํฌ์—์„œ Erlang ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ”์‹œ์ง€ ๋ฒ„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ Pub/Sub ์†”๋ฃจ์…˜์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด GenStage ํ…œํ”Œ๋ฆฟ(Elixir ์„ธ๊ณ„์—์„œ)์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ…œํ”Œ๋ฆฟ์˜ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋Š” "๋ฐฐ์•• ์ œ์–ด"์ž…๋‹ˆ๋‹ค. "์ƒ์‚ฐ์ž"๋Š” "์†Œ๋น„์ž"๊ฐ€ ์š”์ฒญํ•œ ๋ฉ”์‹œ์ง€ ์–‘๋งŒํผ ์ •ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๊ตฌํ˜„ ์˜ˆ๋Š” ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ† ๋ก  ์„น์…˜์—์„œ๋Š” ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” SAGAS ๋””์ž์ธ ํŒจํ„ด์˜ ๊ตฌํ˜„์— ๋Œ€ํ•ด ๋…ผ์˜ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€