Moira๋Š” Google Summer of Code 2019์— ์ฐธ์—ฌํ•ฉ๋‹ˆ๋‹ค.

์˜ฌํ•ด๋Š” 206๋ฒˆ์งธ Google Summer of Code๋กœ, 27๊ฐœ์˜ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๊ฐ€ ์ฐธ์—ฌํ•ฉ๋‹ˆ๋‹ค. ์˜ฌํ•ด๋Š” ๋ชจ์ด๋ผ๋ฅผ ํฌํ•จํ•ด XNUMX๊ฐœ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ฒซ ๋ฒˆ์งธ๋‹ค. ์ด๊ฒƒ์€ Kontur์—์„œ ๋งŒ๋“ค์–ด์ง„ ๊ธด๊ธ‰ ์ƒํ™ฉ ์•Œ๋ฆผ์„ ์œ„ํ•ด ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

Moira๋Š” Google Summer of Code 2019์— ์ฐธ์—ฌํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” Moira๋ฅผ GSoC์— ๋„์ž…ํ•˜๋Š” ๋ฐ ์•ฝ๊ฐ„ ์ฐธ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ์œ„ํ•œ ์ด ์ž‘์€ ๋ฐœ๊ฑธ์Œ๊ณผ Moira์˜ ํฐ ๋„์•ฝ์ด ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์กŒ๋Š”์ง€ ์ง์ ‘ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์— ๋Œ€ํ•ด ๋ช‡ ๋งˆ๋”” ์ฝ”๋“œ์˜ ๊ตฌ๊ธ€ ์—ฌ๋ฆ„

๋งค๋…„ ์ „ ์„ธ๊ณ„์—์„œ ์•ฝ ์ฒœ ๋ช…์˜ ํ•™์ƒ๋“ค์ด GSoC์— ์ฐธ์—ฌํ•ฉ๋‹ˆ๋‹ค. ์ž‘๋…„์—๋Š” 1072๊ฐœ๊ตญ์—์„œ ์˜จ 59๋ช…์˜ ํ•™์ƒ๋“ค์ด 212๊ฐœ์˜ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค. Google์€ ํ•™์ƒ๋“ค์˜ ์ฐธ์—ฌ๋ฅผ ํ›„์›ํ•˜๊ณ  ์žฅํ•™๊ธˆ์„ ์ง€๊ธ‰ํ•˜๋ฉฐ, ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์ž๋Š” ํ•™์ƒ๋“ค์˜ ๋ฉ˜ํ†  ์—ญํ• ์„ ํ•˜๋ฉฐ ํ•™์ƒ๋“ค์ด ์˜คํ”ˆ์†Œ์Šค์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ํ•™์ƒ๋“ค์—๊ฒŒ ์ด๊ฒƒ์€ ์‚ฐ์—… ๊ฐœ๋ฐœ ๊ฒฝํ—˜๊ณผ ๋ฉ‹์ง„ ์ด๋ ฅ์„œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๊ณ ์˜ ๊ธฐํšŒ์ž…๋‹ˆ๋‹ค.

์–ด๋–ค ํ”„๋กœ์ ํŠธ GSoC์— ์ฐธ์—ฌ ์˜ฌํ•ด? ๋Œ€๊ทœ๋ชจ ์กฐ์ง(Apache, Linux, Wikimedia)์˜ ํ”„๋กœ์ ํŠธ ์™ธ์—๋„ ์—ฌ๋Ÿฌ ๋Œ€๊ทœ๋ชจ ๊ทธ๋ฃน์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์šด์˜ ์ฒด์ œ(Debian, Fedora, FreeBSD)
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(Haskell, Python, Swift)
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Boost C++, OpenCV, TensorFlow)
  • ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ ๋นŒ๋“œ ์‹œ์Šคํ…œ(GCC, LLVM, webpack)
  • ์†Œ์Šค ์ฝ”๋“œ ์ž‘์—…์„ ์œ„ํ•œ ๋„๊ตฌ(Git, Jenkins, Neovim)
  • DevOps ๋„๊ตฌ(Kapitan, Linkerd, Moira)
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(MariaDB, PostgreSQL)

Moira๋Š” Google Summer of Code 2019์— ์ฐธ์—ฌํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ Moira๊ฐ€ ์–ด๋–ป๊ฒŒ ์ด ๋ชฉ๋ก์— ํฌํ•จ๋˜์—ˆ๋Š”์ง€ ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ค€๋น„ํ•˜๊ณ  ์‹ ์ฒญ์„œ๋ฅผ ์ œ์ถœํ•˜์„ธ์š”

GSoC ์ฐธ๊ฐ€ ์‹ ์ฒญ์€ XNUMX์›”๋ถ€ํ„ฐ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Kontur์˜ Moira ๊ฐœ๋ฐœํŒ€๊ณผ ์ €๋Š” ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์ฐธ์—ฌํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋…ธ๋ ฅ์ด ํ•„์š”ํ• ์ง€ ์ „ํ˜€ ๋ชฐ๋ž๊ณ  ์ง€๊ธˆ๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Moira ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๋Š˜๋ฆฌ๊ณ  Moira์— ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ง€ํ‘œ ์ˆ˜์ง‘๊ณผ ์ ์ ˆํ•œ ๊ฒฝ๊ณ ์— ๋Œ€ํ•œ ์‚ฌ๋ž‘์„ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์€ ๊ฐ•ํ•œ ์—ด๋ง์„ ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒƒ์€ ๋†€๋ผ์›€ ์—†์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค ํ”„๋กœ์ ํŠธ ํŽ˜์ด์ง€ GSoC ์›น์‚ฌ์ดํŠธ์—์„œ๋Š” Moira์™€ ๊ทธ๋…€์˜ ์žฅ์ ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ GSoC ์ฐธ๊ฐ€์ž๊ฐ€ ์ด๋ฒˆ ์—ฌ๋ฆ„์— ์–ด๋–ค ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์ž‘์—…ํ• ์ง€ ๊ฒฐ์ •ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งŒ๋“ค๋‹ค Moira ๋ฌธ์„œ์˜ ํŽ˜์ด์ง€ ์‰ฌ์› ์ง€๋งŒ ์–ด๋–ค ์ž‘์—…์„ ํฌํ•จํ• ์ง€ ํ•ฉ์˜ํ•˜๋Š” ๊ฒƒ์ด ๋” ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ XNUMX์›”์—๋Š” ํ•™์ƒ๋“ค์ด ์—ฌ๋ฆ„๋ฐฉํ•™ ๋™์•ˆ ํ•  ๊ณผ์ œ๋ฅผ ์„ ํƒํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐ‘์ž๊ธฐ ๋งŒ๋“ค ์ˆ˜๋Š” ์—†๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ๋Œ€์‹  ์žฌํ•™์ƒ. GSoC๋ฅผ ์œ„ํ•ด ์–ด๋–ค ์ž‘์—…์„ "์—ฐ๊ธฐ"ํ•ด์•ผ ํ•˜๋Š”์ง€ Moira ๊ฐœ๋ฐœ์ž์™€ ๋…ผ์˜ํ–ˆ์„ ๋•Œ ์šฐ๋ฆฌ ๋ˆˆ์—๋Š” ๊ฑฐ์˜ ๋ˆˆ๋ฌผ์ด ํ˜๋ €์Šต๋‹ˆ๋‹ค.

Moira๋Š” Google Summer of Code 2019์— ์ฐธ์—ฌํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ Moira ์ฝ”์–ด(API, ์ƒํƒœ ํ™•์ธ ๋ฐ ๊ฒฝ๊ณ  ์ „๋‹ฌ ์ฑ„๋„ ๊ด€๋ จ)์™€ ์›น ์ธํ„ฐํŽ˜์ด์Šค(Grafana์™€์˜ ํ†ตํ•ฉ, ์ฝ”๋“œ ๋ฒ ์ด์Šค๋ฅผ TypeScript๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐ ๊ธฐ๋ณธ ์ปจํŠธ๋กค๋กœ ์ „ํ™˜ ๊ด€๋ จ)์˜ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์™ธ์—๋„ ๋ช‡ ๊ฐ€์ง€๋ฅผ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค. Github์˜ ์ž‘์€ ์ž‘์—…์ด๋ฅผ ํ†ตํ•ด ํ–ฅํ›„ GSoC ์ฐธ๊ฐ€์ž๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค์— ์ต์ˆ™ํ•ด์ง€๊ณ  Moira์˜ ๊ฐœ๋ฐœ์ด ์–ด๋–ค ๊ฒƒ์ธ์ง€ ์•„์ด๋””์–ด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ

๊ทธ๋ฆฌ๊ณ  XNUMX์ฃผ๊ฐ„์˜ ๊ธฐ๋‹ค๋ฆผ์ด ์žˆ์—ˆ๊ณ , ํ–‰์šด์˜ ํŽธ์ง€๋ฅผ ํ†ตํ•ด ์•ฝ๊ฐ„์˜ ๊ธฐ์จ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค...

Moira๋Š” Google Summer of Code 2019์— ์ฐธ์—ฌํ•ฉ๋‹ˆ๋‹ค.

...๊ทธ๋ฆฌ๊ณ  ํญ๋ฐœ์ด ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค Moira ๊ฐœ๋ฐœ์ž ์ฑ„ํŒ…. ํฅ๋ฏธ๋กœ์šด ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋งŽ์€ ํ™œ๋™์ ์ธ ์ฐธ๊ฐ€์ž๋“ค์ด ๊ทธ๊ณณ์— ์™”๊ณ  ์šด๋™์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฑ„ํŒ… ๋ฉ”์‹œ์ง€๋Š” ์–ธ์–ด๋ฅผ ๋Ÿฌ์‹œ์•„์–ด-์˜์–ด ํ˜ผํ•ฉ์—์„œ ์ˆœ์ˆ˜ ์—”์ง€๋‹ˆ์–ด๋ง ์˜์–ด๋กœ ๋ณ€๊ฒฝํ–ˆ์œผ๋ฉฐ Moira์˜ ๊ฐœ๋ฐœ์ž๋Š” ๊ธฐ์—… ์Šคํƒ€์ผ์˜ ์ƒˆ๋กœ์šด ์ฐธ๊ฐ€์ž์™€ ์นœํ•ด์ง€๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

Moira๋Š” Google Summer of Code 2019์— ์ฐธ์—ฌํ•ฉ๋‹ˆ๋‹ค.

Github์—์„œ ํ•ซ์ผ€์ดํฌ์ฒ˜๋Ÿผ ํŒ”๋ฆฐ โ€œ์ข‹์€ ์ฒซ ๋ฒˆ์งธ ์ด์Šˆโ€. ์ €๋Š” ์™„์ „ํžˆ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ผ์„ ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์„ฑ์›์„ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์ž‘์€ ์†Œ๊ฐœ ์ž‘์—…์„ ๋Œ€๋Ÿ‰์œผ๋กœ ์ค€๋น„ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

Moira๋Š” Google Summer of Code 2019์— ์ฐธ์—ฌํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์ด๊ฒจ๋ƒˆ๊ณ  ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์— ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚  ๊ฒƒ์ž…๋‹ˆ๊นŒ?

์ด๋ฒˆ์ฃผ ์›”์š”์ผ์ธ 25์›” XNUMX์ผ, Google Summer of Code ์›น์‚ฌ์ดํŠธ ํŠน์ • ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ•˜๋ ค๋Š” ํ•™์ƒ๋“ค์˜ ์‹ ์ฒญ์ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. Moira, Haskell, TensorFlow ๋˜๋Š” ๊ธฐํƒ€ XNUMX๊ฐœ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์— ์—ฌ๋ฆ„ ์ฐธ์—ฌ๋ฅผ ์‹ ์ฒญํ•˜๋ ค๋ฉด ๋ˆ„๊ตฌ๋‚˜ XNUMX์ฃผ ๋™์•ˆ ์‹ ์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์™€ ํ•จ๊ป˜ ์ฐธ์—ฌํ•˜์—ฌ ์˜ฌ์—ฌ๋ฆ„ ์˜คํ”ˆ์†Œ์Šค์— ํฐ ๊ธฐ์—ฌ๋ฅผ ํ•ฉ์‹œ๋‹ค.

์œ ์šฉํ•œ ๋งํฌ :

๋‹ค์Œ๋„ ๊ตฌ๋…ํ•˜์„ธ์š” Habrรฉ์˜ ์ปจํˆฌ์–ด ๋ธ”๋กœ๊ทธ ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ ํ…”๋ ˆ๊ทธ๋žจ์˜ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ฑ„๋„. GSoC์— ์ฐธ์—ฌํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ธฐํƒ€ ํฅ๋ฏธ๋กœ์šด ์‚ฌํ•ญ์„ ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

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