๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ

Habr ํšŒ์˜๋Š” ๋ฐ๋ท” ์ด์•ผ๊ธฐ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด์ „์—๋Š” 300~400๋ช…์„ ๋Œ€์ƒ์œผ๋กœ ์ƒ๋‹นํžˆ ํฐ ๊ทœ๋ชจ์˜ ํ† ์Šคํ„ฐ ์ด๋ฒคํŠธ๋ฅผ ๊ฐœ์ตœํ–ˆ์ง€๋งŒ ์ด์ œ๋Š” ์†Œ๊ทœ๋ชจ ์ฃผ์ œ๋ณ„ ํšŒ์˜๊ฐ€ ์ ํ•ฉํ•˜๋‹ค๊ณ  ๊ฒฐ์ •ํ–ˆ์œผ๋ฉฐ, ์˜ˆ๋ฅผ ๋“ค์–ด ๋Œ“๊ธ€์—์„œ ๋ฐฉํ–ฅ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ˜•์‹์˜ ์ฒซ ๋ฒˆ์งธ ์ปจํผ๋Ÿฐ์Šค๋Š” XNUMX์›”์— ์—ด๋ ธ์œผ๋ฉฐ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์— ์ „๋…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ฐ€์ž๋“ค์€ State Services ํฌํ„ธ์—์„œ ๋ฐฑ์—”๋“œ์—์„œ ML๋กœ์˜ ์ „ํ™˜ ๊ธฐ๋Šฅ๊ณผ Quadrupel ์„œ๋น„์Šค ์„ค๊ณ„์— ๋Œ€ํ•œ ๋ณด๊ณ ์„œ๋ฅผ ๋“ฃ๊ณ  ์„œ๋ฒ„๋ฆฌ์Šค ์ „์šฉ ๋ผ์šด๋“œ ํ…Œ์ด๋ธ”์—๋„ ์ฐธ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํ–‰์‚ฌ์— ์ง์ ‘ ์ฐธ์„ํ•˜์ง€ ๋ชปํ•˜์‹  ๋ถ„๋“ค์„ ์œ„ํ•ด ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ๋ถ€ํ„ฐ ๋จธ์‹ ๋Ÿฌ๋‹๊นŒ์ง€

๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๋Š” ML์—์„œ ๋ฌด์—‡์„ ํ•˜๋‚˜์š”? ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž์™€ ML ์—”์ง€๋‹ˆ์–ด์˜ ์—…๋ฌด๋Š” ์–ด๋–ป๊ฒŒ ์œ ์‚ฌํ•˜๊ณ  ๋‹ค๋ฅธ๊ฐ€์š”? ์ฒซ ๋ฒˆ์งธ ์ง์—…์„ ๋‘ ๋ฒˆ์งธ ์ง์—…์œผ๋กœ ๋ฐ”๊พธ๋ ค๋ฉด ์–ด๋–ค ๊ธธ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? 10๋…„๊ฐ„์˜ ๋ฐฑ์—”๋“œ ์ž‘์—… ๋์— ๋จธ์‹ ๋Ÿฌ๋‹์— ์ž…๋ฌธํ•œ Alexander Parinov๊ฐ€ ์ด๋Ÿฐ ๋ง์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ
์•Œ๋ ‰์‚ฐ๋” ํŒŒ๋ฆฌ๋…ธํ”„

ํ˜„์žฌ Alexander๋Š” X5 Retail Group์—์„œ ์ปดํ“จํ„ฐ ๋น„์ „ ์‹œ์Šคํ…œ ์„ค๊ณ„์ž๋กœ ์ผํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ปดํ“จํ„ฐ ๋น„์ „ ๋ฐ ๋”ฅ ๋Ÿฌ๋‹(github.com/creafz)๊ณผ ๊ด€๋ จ๋œ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋จธ์‹ ๋Ÿฌ๋‹ ๊ฒฝ์ง„๋Œ€ํšŒ ์ค‘ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ํ”Œ๋žซํผ์ธ ์บ๊ธ€ ๋งˆ์Šคํ„ฐ(kaggle.com/creafz) ์„ธ๊ณ„๋žญํ‚น 100์œ„๊ถŒ ์•ˆ์— ์ฐธ์—ฌํ•ด ๊ทธ์˜ ์‹ค๋ ฅ์„ ์ž…์ฆํ–ˆ๋‹ค.

๋จธ์‹ ๋Ÿฌ๋‹์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ์ด์œ 

500๋…„ ๋ฐ˜ ์ „, ๊ตฌ๊ธ€์˜ ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ๋ฐ˜ ์ธ๊ณต์ง€๋Šฅ ์—ฐ๊ตฌ ํ”„๋กœ์ ํŠธ์ธ ๊ตฌ๊ธ€ ๋ธŒ๋ ˆ์ธ(Google Brain)์˜ ์ฑ…์ž„์ž์ธ ์ œํ”„ ๋”˜(Jeff Dean)์€ ์–ด๋–ป๊ฒŒ ๊ตฌ๊ธ€ ๋ฒˆ์—ญ์˜ XNUMX๋งŒ ์ค„์˜ ์ฝ”๋“œ๊ฐ€ ๋‹จ XNUMX์ค„๋กœ ๊ตฌ์„ฑ๋œ ํ…์„œ ํ”Œ๋กœ์šฐ(Tensor Flow) ์‹ ๊ฒฝ๋ง์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ๋Š”์ง€ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋ฅผ ํ›ˆ๋ จํ•œ ํ›„ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์ด ํ–ฅ์ƒ๋˜๊ณ  ์ธํ”„๋ผ๊ฐ€ ๋‹จ์ˆœํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ๋ฐ์€ ๋ฏธ๋ž˜์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋” ์ด์ƒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ๋‰ด๋Ÿฐ์„ ๋งŒ๋“ค๊ณ  ๋ฐ์ดํ„ฐ๋กœ ์ฑ„์šฐ๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ํ›จ์”ฌ ๋” ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉGoogle์˜ ML ์ธํ”„๋ผ

์‹ ๊ฒฝ๋ง์€ ์ธํ”„๋ผ์˜ ์ž‘์€ ๋ถ€๋ถ„์ผ ๋ฟ์ž…๋‹ˆ๋‹ค(์œ„ ๊ทธ๋ฆผ์˜ ์ž‘์€ ๊ฒ€์€์ƒ‰ ์‚ฌ๊ฐํ˜•). ๋ฐ์ดํ„ฐ ์ˆ˜์‹ , ์ฒ˜๋ฆฌ, ์ €์žฅ, ํ’ˆ์งˆ ํ™•์ธ ๋“ฑ์„ ์œ„ํ•ด์„œ๋Š” ๋” ๋งŽ์€ ๋ณด์กฐ ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•˜๋ฉฐ, ๊ต์œก์„ ์œ„ํ•œ ์ธํ”„๋ผ, ํ”„๋กœ๋•์…˜์— ๊ธฐ๊ณ„ ํ•™์Šต ์ฝ”๋“œ ๋ฐฐํฌ ๋ฐ ์ด ์ฝ”๋“œ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์ž‘์—…์€ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…๊ณผ ์ •ํ™•ํžˆ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ๊ธฐ๊ณ„ ํ•™์Šต ๊ณผ์ •

ML๊ณผ ๋ฐฑ์—”๋“œ์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

ํด๋ž˜์‹ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ด๊ฒƒ์ด ํ”„๋กœ๊ทธ๋žจ์˜ ๋™์ž‘์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ML์—๋Š” ์ž‘์€ ๋ชจ๋ธ ์ฝ”๋“œ์™€ ๋ชจ๋ธ์— ์ œ๊ณตํ•˜๋Š” ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ML์˜ ๋ฐ์ดํ„ฐ๋Š” ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋กœ ํ•™์Šต๋œ ๋™์ผํ•œ ๋ชจ๋ธ์ด ์™„์ „ํžˆ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฑฐ์˜ ํ•ญ์ƒ ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ(๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋กœ๊ทธ, ํŒŒ์ผ)์— ๋ถ„์‚ฐ๋˜์–ด ์ €์žฅ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ๋ฐ์ดํ„ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ

ML์—๋Š” ๊ธฐ์กด ๊ฐœ๋ฐœ์—์„œ์ฒ˜๋Ÿผ ์ฝ”๋“œ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ์ด ํ•™์Šต๋œ ๋‚ด์šฉ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” Data Science Version Control ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(dvc.org)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ
๋ฐ์ดํ„ฐ ๋งˆํฌ์—…

๋‹ค์Œ ์ž‘์—…์€ ๋ฐ์ดํ„ฐ ๋ผ๋ฒจ๋ง์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ทธ๋ฆผ์˜ ๋ชจ๋“  ๊ฐœ์ฒด๋ฅผ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ํ•ด๋‹น ๊ฐœ์ฒด๊ฐ€ ์†ํ•œ ํด๋ž˜์Šค๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” API๋ฅผ ํ†ตํ•ด ์ž‘์—…์ด ํฌ๊ฒŒ ๋‹จ์ˆœํ™”๋˜๋Š” Yandex.Toloka์™€ ๊ฐ™์€ ํŠน์ˆ˜ ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. "์ธ์  ์š”์†Œ"๋กœ ์ธํ•ด ์–ด๋ ค์›€์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ž‘์—…์„ ์—ฌ๋Ÿฌ ์ˆ˜ํ–‰์ž์—๊ฒŒ ๋งก๊ธฐ๋ฉด ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์„ ํ–ฅ์ƒํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ์ตœ์†Œํ•œ์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉํ…์„œ๋ณด๋“œ์˜ ์‹œ๊ฐํ™”

๊ฒฐ๊ณผ๋ฅผ ๋น„๊ตํ•˜๊ณ  ์ผ๋ถ€ ์ธก์ •ํ•ญ๋ชฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์ƒ์˜ ๋ชจ๋ธ์„ ์„ ํƒํ•˜๋ ค๋ฉด ์‹คํ—˜ ๋กœ๊น…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ…์„œ๋ณด๋“œ(Tensor Board)์™€ ๊ฐ™์€ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋„๊ตฌ ์„ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹คํ—˜์„ ์ €์žฅํ•˜๋Š” ์ด์ƒ์ ์ธ ๋ฐฉ๋ฒ•์€ ์—†์Šต๋‹ˆ๋‹ค. ์†Œ๊ทœ๋ชจ ํšŒ์‚ฌ์—์„œ๋Š” Excel ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€ ๋ฐ˜๋ฉด, ๋Œ€๊ทœ๋ชจ ํšŒ์‚ฌ์—์„œ๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํŠน์ˆ˜ ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ๋จธ์‹ ๋Ÿฌ๋‹์„ ์œ„ํ•œ ํ”Œ๋žซํผ์€ ๋งŽ์ง€๋งŒ ๊ทธ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ์š”๊ตฌ ์‚ฌํ•ญ์˜ 70%๋ฅผ ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

ํ›ˆ๋ จ๋œ ๋ชจ๋ธ์„ ํ”„๋กœ๋•์…˜์— ํˆฌ์ž…ํ•  ๋•Œ ์ง๋ฉดํ•ด์•ผ ํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ๋Š” ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž๋“ค์ด ์„ ํ˜ธํ•˜๋Š” ๋„๊ตฌ์ธ Jupyter Notebook๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ถœ๋ ฅ์€ ๋…ผ๋ฆฌ์  ์กฐ๊ฐ, ์ฆ‰ ๋ชจ๋“ˆ๋กœ ๋‚˜๋ˆ„์–ด์ง€์ง€ ์•Š์€ ์ฝ”๋“œ์˜ "๋ฐœ๋ณด"์ž…๋‹ˆ๋‹ค. ํด๋ž˜์Šค, ํ•จ์ˆ˜, ๊ตฌ์„ฑ ๋“ฑ ๋ชจ๋“  ๊ฒƒ์ด ๋’ค์„ž์—ฌ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ? Netflix์ฒ˜๋Ÿผ ์Šค์Šค๋กœ ์‚ฌ์ž„ํ•˜๊ณ  ์ด๋Ÿฌํ•œ ๋žฉํƒ‘์„ ํ”„๋กœ๋•์…˜์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ์ „์†กํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ž์ฒด ํ”Œ๋žซํผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ์„ ํ”„๋กœ๋•์…˜์— ์ ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ •์ƒ์ ์œผ๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•˜์—ฌ ๋ชจ๋“ˆ๋กœ ๋‚˜๋ˆ„๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์‹ค์ˆ˜ํ•˜๊ธฐ ์‰ฝ๊ณ  ๋ชจ๋ธ์ด ์˜๋„ํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์ƒ์ ์ธ ์˜ต์…˜์€ ๋ชจ๋ธ ์ฝ”๋“œ์— Jupyter Notebook ์‚ฌ์šฉ์„ ๊ธˆ์ง€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž๋“ค์ด ์ด์— ๋™์˜ํ•œ๋‹ค๋ฉด ๋ง์ž…๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ๋ธ”๋ž™๋ฐ•์Šค๋กœ ๋ชจ๋ธ๋ง

๋ชจ๋ธ์„ ์ƒ์‚ฐ์— ํˆฌ์ž…ํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ๋ชจ๋ธ์„ ๋ธ”๋ž™๋ฐ•์Šค๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ์ข…์˜ ๋ชจ๋ธ ํด๋ž˜์Šค๊ฐ€ ์žˆ๊ณ  ๋ชจ๋ธ์˜ ๊ฐ€์ค‘์น˜(ํ›ˆ๋ จ๋œ ๋„คํŠธ์›Œํฌ์˜ ๋‰ด๋Ÿฐ ๋งค๊ฐœ๋ณ€์ˆ˜)๊ฐ€ ์ฃผ์–ด์กŒ์œผ๋ฉฐ ์ด ํด๋ž˜์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด(์˜ˆ์ธก ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ, ๊ทธ๋ฆผ ์ œ๊ณต) ํŠน์ • ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ถœ๋ ฅ์œผ๋กœ์„œ์˜ ์˜ˆ์ธก. ๋‚ด๋ถ€์—์„œ ์ผ์–ด๋‚˜๋Š” ์ผ์€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ
๋ชจ๋ธ๊ณผ ๋ณ„๋„์˜ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค

๋˜ํ•œ ๋ณ„๋„์˜ ํŠน์ • ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ RPC ๋Œ€๊ธฐ์—ด์„ ํ†ตํ•ด ๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆผ์ด๋‚˜ ๊ธฐํƒ€ ์†Œ์Šค ๋ฐ์ดํ„ฐ ํฌํ•จ). ์ถœ๋ ฅ์—์„œ โ€‹โ€‹์˜ˆ์ธก์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Flask์—์„œ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ:

@app.route("/predict", methods=["POST"])
def predict():
image = flask.request.files["image"].read()
image = preprocess_image(image)
predictions = model.predict(image)
return jsonify_prediction(predictions)

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

ML์˜ ์ธํ”„๋ผ๋Š” ์ผ๋ฐ˜ ๋ฐฑ์—”๋“œ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. Docker์™€ Kubernetes๊ฐ€ ์žˆ์œผ๋ฉฐ Docker์˜ ๊ฒฝ์šฐ์—๋งŒ NVIDIA์—์„œ ๋Ÿฐํƒ€์ž„์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ˜ธ์ŠคํŠธ์˜ ๋น„๋””์˜ค ์นด๋“œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Kubernetes๊ฐ€ ๋น„๋””์˜ค ์นด๋“œ๋กœ ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ

๊ธฐ์กด ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๋‹ฌ๋ฆฌ ML์˜ ๊ฒฝ์šฐ ์ธํ”„๋ผ์—๋Š” ํ™•์ธํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์ด๋™ ์š”์†Œ(์˜ˆ: ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ฝ”๋“œ, ๋ชจ๋ธ ๊ต์œก ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ํ”„๋กœ๋•์…˜)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(์œ„ ๋‹ค์ด์–ด๊ทธ๋žจ ์ฐธ์กฐ). ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋‹ค์–‘ํ•œ ๋ถ€๋ถ„์„ ์—ฐ๊ฒฐํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ถ€๋ถ„์ด ๋งŽ๊ณ  ๋ชจ๋“ˆ ๊ฒฝ๊ณ„์—์„œ ๋ฌธ์ œ๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ
AutoML ์ž‘๋™ ๋ฐฉ์‹

AutoML ์„œ๋น„์Šค๋Š” ๋ชฉ์ ์— ๋งž๋Š” ์ตœ์ ์˜ ๋ชจ๋ธ์„ ์„ ํƒํ•˜๊ณ  ํ•™์Šต์‹œํ‚ฌ ๊ฒƒ์„ ์•ฝ์†ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ดํ•ดํ•ด์•ผ ํ•  ์ ์€ ML์—์„œ ๋ฐ์ดํ„ฐ๋Š” ๋งค์šฐ ์ค‘์š”ํ•˜๋ฉฐ ๊ฒฐ๊ณผ๋Š” ๋ฐ์ดํ„ฐ ์ค€๋น„์— ๋‹ฌ๋ ค ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งˆํฌ์—…์€ ์‚ฌ๋žŒ์ด ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ์˜ค๋ฅ˜๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์—„๊ฒฉํ•œ ํ†ต์ œ ์—†์ด๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์“ฐ๋ ˆ๊ธฐ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์•„์ง ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๊ฒƒ๋„ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ „๋ฌธ๊ฐ€(๋ฐ์ดํ„ฐ ๊ณผํ•™์ž)์˜ ๊ฒ€์ฆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ AutoML์ด ๋ฌด๋„ˆ์ง€๋Š” ์ง€์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์ผ๋ จ์˜ ์‹คํ—˜์„ ์‹คํ–‰ํ•˜์—ฌ ์ตœ์ƒ์˜ ๋ชจ๋ธ์„ ์ฐพ์œผ๋ ค๋Š” ๊ฒฝ์šฐ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋จธ์‹ ๋Ÿฌ๋‹์— ์ž…๋ฌธํ•˜๋Š” ๋ฐฉ๋ฒ•

ML์„ ์‹œ์ž‘ํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ๋ชจ๋“  ๋”ฅ ๋Ÿฌ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ(๋ฐ ์ผ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ)์—์„œ ์‚ฌ์šฉ๋˜๋Š” Python์œผ๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์–ธ์–ด๋Š” ์ด ํ™œ๋™ ๋ถ„์•ผ์—์„œ ์‹ค์งˆ์ ์œผ๋กœ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. C++๋Š” ์ž์œจ์ฃผํ–‰์ฐจ ์ œ์–ด ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์€ ์ผ๋ถ€ ์ปดํ“จํ„ฐ ๋น„์ „ ์ž‘์—…์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. JavaScript ๋ฐ Shell - ์‹œ๊ฐํ™” ๋ฐ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋‰ด๋Ÿฐ ์‹คํ–‰๊ณผ ๊ฐ™์€ ์ด์ƒํ•œ ์ž‘์—…์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Java ๋ฐ Scala๋Š” ๋น… ๋ฐ์ดํ„ฐ ์ž‘์—… ๋ฐ ๊ธฐ๊ณ„ ํ•™์Šต์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. R๊ณผ Julia๋Š” ์ˆ˜๋ฆฌํ†ต๊ณ„ํ•™์„ ๊ณต๋ถ€ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์‚ฌ๋ž‘๋ฐ›๋Š” ์กด์žฌ์ž…๋‹ˆ๋‹ค.

์‹ค๋ฌด ๊ฒฝํ—˜์„ ์Œ“๊ธฐ ์œ„ํ•œ ๊ฐ€์žฅ ํŽธ๋ฆฌํ•œ ๋ฐฉ๋ฒ•์€ Kaggle์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”Œ๋žซํผ ๋Œ€ํšŒ์— ์ฐธ๊ฐ€ํ•˜๋ฉด XNUMX๋…„ ์ด์ƒ์˜ ์ด๋ก  ๊ณต๋ถ€๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋žซํผ์—์„œ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๊ฒŒ์‹œํ•˜๊ณ  ์ฃผ์„์„ ๋‹จ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๊ฐœ์„ ํ•˜๊ณ  ๋ชฉ์ ์— ๋งž๊ฒŒ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋„ˆ์Šค - Kaggle ์ˆœ์œ„๊ฐ€ ๊ธ‰์—ฌ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์€ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ML ํŒ€์— ํ•ฉ๋ฅ˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋™๋ฃŒ์˜ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ๋„์™€์คŒ์œผ๋กœ์จ ๊ฒฝํ—˜์„ ์Œ“์„ ์ˆ˜ ์žˆ๋Š” ๋จธ์‹ ๋Ÿฌ๋‹ ์Šคํƒ€ํŠธ์—…์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž ์ปค๋ฎค๋‹ˆํ‹ฐ ์ค‘ ํ•˜๋‚˜์ธ Open Data Science(ods.ai) ๋ฐ ๊ธฐํƒ€ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ฐ€์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐœํ‘œ์ž๋Š” ํ•ด๋‹น ์ฃผ์ œ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ๋งํฌ์— ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. https://bit.ly/backend-to-ml

"Quadrupel" - "State Services" ํฌํ„ธ์˜ ํƒ€๊ฒŸ ์•Œ๋ฆผ ์„œ๋น„์Šค

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ์˜ˆ๋ธŒ๊ฒŒ๋‹ˆ ์Šค๋ฏธ๋ฅด๋…ธํ”„

๋‹ค์Œ ์—ฐ์‚ฌ๋Š” ์ „์ž์ •๋ถ€ ์ธํ”„๋ผ ๊ฐœ๋ฐœ ๋ถ€์„œ์˜ ์ฑ…์ž„์ž์ธ Evgeny Smirnov์˜€์œผ๋ฉฐ Quadruple์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” Runet์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋ฐฉ๋ฌธํ•˜๋Š” ์ •๋ถ€ ๋ฆฌ์†Œ์Šค์ธ Gosuslugi ํฌํ„ธ(gosuslugi.ru)์— ๋Œ€ํ•œ ๋Œ€์ƒ ์•Œ๋ฆผ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์ผ์ผ ์‹œ์ฒญ์ž ์ˆ˜๋Š” 2,6๋งŒ ๋ช…์ด๋ฉฐ ์‚ฌ์ดํŠธ์— ๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž๋Š” ์ด 90์ฒœ๋งŒ ๋ช…์ด๋ฉฐ ๊ทธ ์ค‘ ํ™•์ธ๋œ ์‚ฌ์šฉ์ž๋Š” 60์ฒœ๋งŒ ๋ช…์ž…๋‹ˆ๋‹ค. ํฌํ„ธ API์˜ ๋ถ€ํ•˜๋Š” 30RPS์ž…๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ๊ตญ๊ฐ€ ์„œ๋น„์Šค์˜ ๋ฐฑ์—”๋“œ์— ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ 

"Quadrupel"์€ ํŠน๋ณ„ํ•œ ์•Œ๋ฆผ ๊ทœ์น™์„ ์„ค์ •ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์—๊ฒŒ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์ˆœ๊ฐ„์— ์„œ๋น„์Šค ์ œ์•ˆ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ํƒ€๊ฒŸ ์•Œ๋ฆผ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ฐœ๋ฐœ ์‹œ ์ฃผ์š” ์š”๊ตฌ ์‚ฌํ•ญ์€ ์œ ์—ฐํ•œ ์„ค์ •๊ณผ ์ ์ ˆํ•œ ๋ฉ”์ผ๋ง ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ฟผ๋“œ๋ฃจํŽ ์€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋‚˜์š”?

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ

์œ„์˜ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์šด์ „ ๋ฉดํ—ˆ์ฆ์„ ๊ต์ฒดํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Quadrupel์˜ ์ž‘๋™ ๊ทœ์น™ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋จผ์ € ์„œ๋น„์Šค๋Š” ๋งŒ๋ฃŒ์ผ์ด ํ•œ ๋‹ฌ ์•ˆ์— ๋งŒ๋ฃŒ๋˜๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์„œ๋น„์Šค๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ œ์•ˆ์ด ํฌํ•จ๋œ ๋ฐฐ๋„ˆ๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ์ด๋ฉ”์ผ๋กœ ๋ฉ”์‹œ์ง€๊ฐ€ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๊ธฐํ•œ์ด ์ด๋ฏธ ๋งŒ๋ฃŒ๋œ ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ ๋ฐฐ๋„ˆ์™€ ์ด๋ฉ”์ผ์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ๊ถŒ๋ฆฌ ๊ตํ™˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ์‹ ์› ์ •๋ณด๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ผ๋Š” ์ œ์•ˆ๊ณผ ํ•จ๊ป˜ ๋‹ค๋ฅธ ์•Œ๋ฆผ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

๊ธฐ์ˆ ์ ์ธ ๊ด€์ ์—์„œ ๋ณผ ๋•Œ ์ด๋Š” ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋˜๋Š” ๋ฉ‹์ง„ ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅ์€ ๋ฐ์ดํ„ฐ์ด๊ณ  ์ถœ๋ ฅ์€ true/false, ์ผ์น˜/์ผ์น˜ํ•˜์ง€ ์•Š์Œ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์ƒ์ผ(ํ˜„์žฌ ๋‚ ์งœ๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์ƒ๋…„์›”์ผ๊ณผ ๋™์ผ) ๊ฒฐ์ •๋ถ€ํ„ฐ ๋ณต์žกํ•œ ์ƒํ™ฉ๊นŒ์ง€ ์ด 50๊ฐœ ์ด์ƒ์˜ ๊ทœ์น™์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค์ผ ์ด๋Ÿฌํ•œ ๊ทœ์น™์€ ์•Œ๋ฆผ์ด ํ•„์š”ํ•œ ์‚ฌ๋žŒ์ธ ์•ฝ ๋ฐฑ๋งŒ ๊ฐœ์˜ ์ผ์น˜ ํ•ญ๋ชฉ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ์ฟผ๋“œ๋Ÿฌํ”Œ ์•Œ๋ฆผ ์ฑ„๋„

Quadrupel์˜ ๋‚ด๋ถ€์—๋Š” ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์„ธ ๊ฐ€์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. 

  • ๋…ธ๋™์ž ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ํœด์‹ API ๋ฐฐ๋„ˆ ์ž์ฒด๋ฅผ ์„ ํƒํ•˜์—ฌ ํฌํ„ธ๊ณผ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • ์Šค์ผ€์ค„๋Ÿฌ ๋ฐฐ๋„ˆ ์žฌ๊ณ„์‚ฐ ๋˜๋Š” ๋Œ€๋Ÿ‰ ๋ฉ”์ผ ๋ฐœ์†ก ์ž‘์—…์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ

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

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ

๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ ํ›„ ๋ฐฐ๋„ˆ๊ฐ€ ์ฆ‰์‹œ ๋‹ค์‹œ ๊ณ„์‚ฐ๋˜๋„๋ก JMS์— ์ž‘์—…์ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ฆ‰์‹œ ์›น์— ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์€ ๋ฐค์— ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ž‘์—…์€ ์‚ฌ์šฉ์ž ๊ฐ„๊ฒฉ์œผ๋กœ JMS์— ์ „๋‹ฌ๋˜๋ฉฐ ์ด์— ๋”ฐ๋ผ ๊ทœ์น™์„ ๋‹ค์‹œ ๊ณ„์‚ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์žฌ๊ณ„์‚ฐ์— ๊ด€๋ จ๋œ ํ”„๋กœ์„ธ์„œ์— ์˜ํ•ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ ๋Œ€๊ธฐ์—ด๋กœ ์ด๋™ํ•˜์—ฌ ๋ฐฐ๋„ˆ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ์•Œ๋ฆผ ์ž‘์—…์„ ์„œ๋น„์Šค๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๋Š” 5~7์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋ฉฐ, ์–ธ์ œ๋“ ์ง€ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ƒˆ ํ•ธ๋“ค๋Ÿฌ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ

์„œ๋น„์Šค๋Š” ๊ฝค ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉด์„œ ๋ฐ์ดํ„ฐ์˜ ์–‘๋„ ๋Š˜์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด Rest API๊ฐ€ ๋ณต์ œ๋ณธ์„ ๋ณธ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ณ ๋ คํ•˜๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋กœ๋“œ๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์š”์ ์€ JMS์ธ๋ฐ, ์•Œ๊ณ  ๋ณด๋‹ˆ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋Ÿ‰์ด ๋งŽ์•„ ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€๊ธฐ์—ด ์˜ค๋ฒ„ํ”Œ๋กœ๋กœ ์ธํ•ด JMS๊ฐ€ ์ค‘๋‹จ๋˜๊ณ  ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘๋‹จ๋  ์œ„ํ—˜์ด ๋†’์Šต๋‹ˆ๋‹ค. ์ดํ›„์—๋Š” ๋กœ๊ทธ๋ฅผ ์ง€์šฐ์ง€ ์•Š๊ณ  JMS๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ—ˆ์šฉํ•˜๋Š” ์ƒค๋”ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ์‹์„ ๋ณ€๊ฒฝํ•˜๊ณ  JMS๋ฅผ Kafka๋กœ ๋ณ€๊ฒฝํ•  ๊ณ„ํš๋„ ์žˆ์Šต๋‹ˆ๋‹ค. Kafka๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋‚ด๊ฒฐํ•จ์„ฑ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

์„œ๋น„์Šค๋กœ์„œ์˜ ๋ฐฑ์—”๋“œ์™€ ์„œ๋ฒ„๋ฆฌ์Šค

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ
์™ผ์ชฝ๋ถ€ํ„ฐ: ์•Œ๋ ‰์‚ฐ๋” ๋ณด๋ฅด๊ฐ€ํŠธ, ์•ˆ๋“œ๋ ˆ์ด ํ† ๋ฐ€๋ Œ์ฝ”, ๋‹ˆ์ฝœ๋ผ์ด ๋งˆ๋ฅด์ฝ”ํ”„, ์•„๋ผ ์ด์Šค๋ผ์—˜์–€

์„œ๋น„์Šคํ˜• ๋ฐฑ์—”๋“œ์ธ๊ฐ€์š”, ์•„๋‹ˆ๋ฉด ์„œ๋ฒ„๋ฆฌ์Šค ์†”๋ฃจ์…˜์ธ๊ฐ€์š”? ์›ํƒ์—์„œ ์ด ์‹œ๊ธ‰ํ•œ ๋ฌธ์ œ๋ฅผ ๋…ผ์˜ํ•œ ์ฐธ๊ฐ€์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Ara Israelyan, CTO CTO์ด์ž Scorocode์˜ ์ฐฝ๋ฆฝ์ž.
  • Aligned Research Group์˜ ์ˆ˜์„ ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด Nikolay Markov.
  • RUVDS ๊ฐœ๋ฐœ ๋ถ€์„œ์˜ ์ฑ…์ž„์ž์ธ Andrey Tomilenko. 

๋Œ€ํ™”๋Š” ์ˆ˜์„ ๊ฐœ๋ฐœ์ž Alexander Borgart๊ฐ€ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฒญ์ทจ์ž๋“ค์ด ์ฐธ์—ฌํ•œ ํ† ๋ก ์„ ์ถ•์•ฝ ๋ฒ„์ „์œผ๋กœ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค.

โ€” ๊ท€ํ•˜๊ฐ€ ์ดํ•ดํ•˜๋Š” ์„œ๋ฒ„๋ฆฌ์Šค๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์•ค๋“œ๋ฅ˜: ์ด๊ฒƒ์€ ์ปดํ“จํŒ… ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ์ดํ„ฐ์—๋งŒ ์˜์กดํ•˜๋„๋ก ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” Lambda ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ์šฉ์–ด๋Š” Google์ด๋‚˜ Amazon ๋ฐ AWS Lambda ์„œ๋น„์Šค์—์„œ ๋‚˜์™”์Šต๋‹ˆ๋‹ค. ๊ณต๊ธ‰์ž๊ฐ€ ์šฉ๋Ÿ‰ ํ’€์„ ํ• ๋‹นํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ์„œ๋ฒ„์—์„œ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ˆ์ฝœ๋ผ์Šค: ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด IT ์ธํ”„๋ผ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ์ผ๋ถ€๋ฅผ ํด๋ผ์šฐ๋“œ, ์•„์›ƒ์†Œ์‹ฑ์œผ๋กœ ์ด์ „ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ž‰๊ผฌ: ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ๋Š” ์ž์›์„ ์ ˆ์•ฝํ•˜๋ ค๋Š” ์ข‹์€ ์‹œ๋„์ด๊ณ , ๋งˆ์ผ€ํŒ… ๋‹ด๋‹น์ž ์ž…์žฅ์—์„œ๋Š” ๋” ๋งŽ์€ ๋ˆ์„ ๋ฒŒ๊ธฐ ์œ„ํ•œ ์ข‹์€ ์‹œ๋„์ž…๋‹ˆ๋‹ค.

โ€” ์„œ๋ฒ„๋ฆฌ์Šค๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์™€ ๋™์ผํ•ฉ๋‹ˆ๊นŒ?

๋‹ˆ์ฝœ๋ผ์Šค: ์•„๋‹ˆ์š”, ์„œ๋ฒ„๋ฆฌ์Šค๋Š” ์•„ํ‚คํ…์ฒ˜ ์กฐ์ง์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์ผ๋ถ€ ๋…ผ๋ฆฌ์˜ ์›์ž ๋‹จ์œ„์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฆฌ์Šค๋Š” "๋ณ„๋„์˜ ์—”ํ„ฐํ‹ฐ"๊ฐ€ ์•„๋‹Œ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
์ž‰๊ผฌ: ์„œ๋ฒ„๋ฆฌ์Šค ํ•จ์ˆ˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ํŒจํ‚ค์ง•๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋Š” ๋” ์ด์ƒ ์„œ๋ฒ„๋ฆฌ์Šค๊ฐ€ ์•„๋‹ˆ๋ฉฐ Lambda ํ•จ์ˆ˜๋„ ์•„๋‹™๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฆฌ์Šค์—์„œ๋Š” ํ•จ์ˆ˜๊ฐ€ ์š”์ฒญ๋˜๋Š” ์ˆœ๊ฐ„์—๋งŒ ์ž‘๋™์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
์•ค๋“œ๋ฅ˜: ์ˆ˜๋ช…์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. Lambda ํ•จ์ˆ˜๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์žŠ์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ๋ช‡ ์ดˆ ๋™์•ˆ ์ž‘๋™ํ–ˆ์œผ๋ฉฐ ๋‹ค์Œ ํด๋ผ์ด์–ธํŠธ๋Š” ๋‹ค๋ฅธ ๋ฌผ๋ฆฌ์  ์‹œ์Šคํ…œ์—์„œ ํ•ด๋‹น ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€” ์–ด๋Š ๊ฒƒ์ด ๋” ์ž˜ ํ™•์žฅ๋ฉ๋‹ˆ๊นŒ?

์ž‰๊ผฌ: ์ˆ˜ํ‰์œผ๋กœ ํ™•์žฅํ•  ๋•Œ Lambda ํ•จ์ˆ˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์™€ ์ •ํ™•ํžˆ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๋‹ˆ์ฝœ๋ผ์Šค: ๋ณต์ œ๋ณธ ์ˆ˜์— ๊ด€๊ณ„์—†์ด ์„ค์ •ํ•œ ๋งŒํผ๋งŒ ์กด์žฌํ•˜๋ฏ€๋กœ ์„œ๋ฒ„๋ฆฌ์Šค๋Š” ํ™•์žฅ์— ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Kubernetes์—์„œ ๋ณต์ œ๋ณธ ์„ธํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  "์–ด๋”˜๊ฐ€"์—์„œ 20๊ฐœ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ 20๊ฐœ์˜ ์ต๋ช… ๋งํฌ๊ฐ€ ๊ท€ํ•˜์—๊ฒŒ ๋ฐ˜ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ!

โ€” ์„œ๋ฒ„๋ฆฌ์Šค์—์„œ ๋ฐฑ์—”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

์•ค๋“œ๋ฅ˜: ์ด๋ก ์ ์œผ๋กœ๋Š” ๊ทธ๋ ‡์ง€๋งŒ ๋ง์ด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. Lambda ํ•จ์ˆ˜๋Š” ๋‹จ์ผ ์ €์žฅ์†Œ์— ์˜์กดํ•˜๋ฏ€๋กœ ๋ณด์žฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ๊ฑฐ๋ž˜๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฝ์šฐ ๋‹ค์Œ์— ์—ฐ๋ฝํ•  ๋•Œ ํ•ด๋‹น ์‚ฌ์šฉ์ž๋Š” ๊ฑฐ๋ž˜๊ฐ€ ์ˆ˜ํ–‰๋˜์—ˆ์œผ๋ฉฐ ์ž๊ธˆ์ด ์ž…๊ธˆ๋˜์—ˆ์Œ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  Lambda ํ•จ์ˆ˜๋Š” ์ด ํ˜ธ์ถœ์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋ฆฌ์Šค ๊ธฐ๋Šฅ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๋Š” ์•ก์„ธ์Šค ์ง€์ ์ด ํ•˜๋‚˜ ์žˆ๋Š” ๋‹จ์ผ ์„œ๋น„์Šค๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.

โ€” ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๊นŒ?

์•ค๋“œ๋ฅ˜: ๊ณต์œ  ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ž‘์—… - ๋™์ผํ•œ ์ฑ„๊ตด, ๋ธ”๋ก์ฒด์ธ. ๊ณ„์‚ฐ์„ ๋งŽ์ด ํ•ด์•ผ ํ•˜๋Š” ๊ณณ. ์ปดํ“จํŒ… ๋Šฅ๋ ฅ์ด ํฌ๋‹ค๋ฉด "๊ฑฐ๊ธฐ์„œ ๋ญ”๊ฐ€์˜ ํ•ด์‹œ๋ฅผ ๊ณ„์‚ฐํ•˜์„ธ์š”..."์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜ˆ๋ฅผ ๋“ค์–ด Amazon์˜ Lambda ํ•จ์ˆ˜์™€ ๋ถ„์‚ฐ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. . ๊ทธ๋ฆฌ๊ณ  ๋‹น์‹ ์€ ์ •๊ทœ ์„œ๋น„์Šค๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. Lambda ํ•จ์ˆ˜๋Š” ์Šคํ† ๋ฆฌ์ง€์— ์•ก์„ธ์Šคํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์ผ์ข…์˜ ์‘๋‹ต์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
๋‹ˆ์ฝœ๋ผ์Šค: ์„œ๋ฒ„๋ฆฌ์Šค์—์„œ ์‹คํ–‰๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ๊ทนํžˆ ์ œํ•œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์–ต๋ ฅ๊ณผ ๊ทธ ๋ฐ–์˜ ๋ชจ๋“  ๊ฒƒ์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ „์ฒด ์ธํ”„๋ผ๊ฐ€ Google, Amazon๊ณผ ๊ฐ™์€ ์ผ๋ถ€ ํด๋ผ์šฐ๋“œ์— ์™„์ „ํžˆ ๋ฐฐํฌ๋˜๊ณ  ์ด๋“ค๊ณผ ์˜๊ตฌ ๊ณ„์•ฝ์„ ๋งบ๊ณ  ์ด ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•œ ์˜ˆ์‚ฐ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ผ๋ถ€ ์ž‘์—…์— ์„œ๋ฒ„๋ฆฌ์Šค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ํŠน์ • ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๋„๋ก ๋งž์ถคํ™”๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ด ์ธํ”„๋ผ ๋‚ด๋ถ€์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ชจ๋“  ๊ฒƒ์„ ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ์— ์—ฐ๊ฒฐํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค๋ฉด ์‹คํ—˜ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฅ์ ์€ ์ด ์ธํ”„๋ผ๋ฅผ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ž‰๊ผฌ: ์„œ๋ฒ„๋ฆฌ์Šค์—์„œ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค, ๋„์ปค, ์นดํ”„์นด ์„ค์น˜ ๋“ฑ์„ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์‚ฌ์‹ค์ด ์ž๊ธฐ๊ธฐ๋งŒ์ด๋‹ค. ๋™์ผํ•œ Amazon๊ณผ Google์ด ์ด๊ฒƒ์„ ์„ค์น˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์ ์€ SLA๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ง์ ‘ ์ฝ”๋”ฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ชจ๋“  ๊ฒƒ์„ ์•„์›ƒ์†Œ์‹ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
์•ค๋“œ๋ฅ˜: ์„œ๋ฒ„๋ฆฌ์Šค ์ž์ฒด๋Š” ์ €๋ ดํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ ๋‹ค๋ฅธ Amazon ์„œ๋น„์Šค์— ๋Œ€ํ•ด์„œ๋Š” ๋งŽ์€ ๋น„์šฉ์„ ์ง€๋ถˆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ API ๊ฒŒ์ดํŠธ์— ์—„์ฒญ๋‚œ ๊ธˆ์•ก์„ ์ฒญ๊ตฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ ๊ทธ๋“ค์„ ๊ณ ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.
์ž‰๊ผฌ: ๋ˆ์— ๊ด€ํ•ด ์ด์•ผ๊ธฐํ•œ๋‹ค๋ฉด ์ด ์ ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ Serverless๋กœ ์ด์ „ํ•˜๋ ค๋ฉด ํšŒ์‚ฌ์˜ ์ „์ฒด ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์„ 180๋„ ๋ฐ”๊ฟ”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์—๋Š” ๋งŽ์€ ์‹œ๊ฐ„๊ณผ ๋น„์šฉ์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

โ€” Amazon๊ณผ Google์˜ ์œ ๋ฃŒ Serverless์— ๋Œ€ํ•œ ๊ฐ€์น˜ ์žˆ๋Š” ๋Œ€์•ˆ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ˆ์ฝœ๋ผ์Šค: Kubernetes์—์„œ๋Š” ์–ด๋–ค ์ข…๋ฅ˜์˜ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๋ฉด ์‹คํ–‰๋˜๊ณ  ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์•„ํ‚คํ…์ฒ˜ ๊ด€์ ์—์„œ ๋ณผ ๋•Œ ์„œ๋ฒ„๋ฆฌ์Šค์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ํ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ง ํฅ๋ฏธ๋กœ์šด ๋น„์ฆˆ๋‹ˆ์Šค ๋…ผ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด ์ด์— ๋Œ€ํ•ด ์ข€ ๋” ์ƒ๊ฐํ•ด ๋ณผ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Kubernetes๋ฅผ ๋– ๋‚˜์ง€ ์•Š๊ณ ๋„ ์ด ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ถ”๊ฐ€ ๊ตฌํ˜„์„ ๋Œ์–ด๋‚ด์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

โ€” ์„œ๋ฒ„๋ฆฌ์Šค์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ•ฉ๋‹ˆ๊นŒ?

์ž‰๊ผฌ: ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณต๊ธ‰์ž๋Š” DevOps ํŒ€์ด ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ณด๊ณ ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋‹ˆ์ฝœ๋ผ์Šค: Amazon์—๋Š” Lambda์˜ ๋กœ๊ทธ๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ๋กœ๊ทธ๊ฐ€ ์ŠคํŠธ๋ฆฌ๋ฐ๋˜๋Š” CloudWatch๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ ์ „๋‹ฌ์„ ํ†ตํ•ฉํ•˜๊ณ  ๋ณด๊ธฐ, ๊ฒฝ๊ณ  ๋“ฑ์— ๋ณ„๋„์˜ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ์— ์—์ด์ „ํŠธ๋ฅผ ์ฑ„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ

- ์š”์•ฝํ•ด๋ณด์ž.

์•ค๋“œ๋ฅ˜: Lambda ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ์•„๋‹Œ ์š”์ฒญ์„ ์ž‘์„ฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ก์„ธ์Šคํ•˜๊ณ  ์‘๋‹ต์„ ๋ณด๋‚ด๋Š” ์„œ๋น„์Šค๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ Lambda ํ•จ์ˆ˜๋Š” ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ, ํ™•์žฅ์„ฑ ๋“ฑ๊ณผ ๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ๊ฐ€ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์ถ•๋˜๋ฉด ๋‚˜์ค‘์— ์ด๋Ÿฌํ•œ Lambda๋ฅผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ์ „์†กํ•˜๊ฑฐ๋‚˜ Amazon๊ณผ ๊ฐ™์€ ํƒ€์‚ฌ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์€ ์œ ์šฉํ•˜๊ณ  ์•„์ด๋””์–ด๋„ ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋น„์ฆˆ๋‹ˆ์Šค์— ์–ผ๋งˆ๋‚˜ ์ •๋‹นํ•œ์ง€๋Š” ์—ฌ์ „ํžˆ ์—ด๋ ค ์žˆ๋Š” ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค.
Nikolay: ์„œ๋ฒ„๋ฆฌ์Šค๋Š” ์ผ๋ถ€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์šด์˜ ์ž‘์—…์— ๋” ์ž˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•ญ์ƒ ๊ทธ๊ฒƒ์„ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Amazon์— ์žˆ๊ณ  Kubernetes์— ์žˆ๋‹ค๋ฉด ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์„œ๋ฒ„๋ฆฌ์Šค๋ฅผ ์Šค์Šค๋กœ ์‹œ์ž‘ํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ๋‹นํ•œ ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ์‚ฌ๋ก€๋ฅผ ์‚ดํŽด๋ณผ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ˜„์žฌ ๋‚ด ์ž‘์—… ์ค‘ ํ•˜๋‚˜๋Š” ํŒŒ์ผ์ด ๋””์Šคํฌ์— ํŠน์ • ํ˜•์‹์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋ฉด ํ•ด๋‹น ํŒŒ์ผ์„ Kafka์— ์—…๋กœ๋“œํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. WatchDog์ด๋‚˜ Lambda๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ์ ์ธ ๊ด€์ ์—์„œ๋Š” ๋‘ ์˜ต์…˜ ๋ชจ๋‘ ์ ํ•ฉํ•˜์ง€๋งŒ ๊ตฌํ˜„ ์ธก๋ฉด์—์„œ๋Š” ์„œ๋ฒ„๋ฆฌ์Šค๊ฐ€ ๋” ๋ณต์žกํ•˜๊ณ  ์ €๋Š” Lambda๊ฐ€ ์—†๋Š” ๋” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
์ž‰๊ผฌ: ์„œ๋ฒ„๋ฆฌ์Šค๋Š” ํฅ๋ฏธ๋กญ๊ณ  ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ธฐ์ˆ ์ ์œผ๋กœ ๋งค์šฐ ์•„๋ฆ„๋‹ค์šด ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค. ์กฐ๋งŒ๊ฐ„ ๊ธฐ์ˆ ์€ ๋ชจ๋“  ๊ธฐ๋Šฅ์ด 100๋ฐ€๋ฆฌ์ดˆ ์ด๋‚ด์— ์‹คํ–‰๋˜๋Š” ์ˆ˜์ค€์— ๋„๋‹ฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์›์น™์ ์œผ๋กœ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ค‘์š”ํ•œ์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•ด์„œ๋Š” ์˜๋ฌธ์˜ ์—ฌ์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ๋™๋ฃŒ๋“ค์ด ์ด๋ฏธ ๋งํ–ˆ๋“ฏ์ด ์„œ๋ฒ„๋ฆฌ์Šค์˜ ์ ์šฉ ๊ฐ€๋Šฅ์„ฑ์€ ์ „์ ์œผ๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฌธ์ œ์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

๋งŽ์€ ๋„์›€์„ ์ฃผ์‹  ํ›„์›์ž๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ, ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค - XNUMX์›” Habr ์ปจํผ๋Ÿฐ์Šค์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ

์ถœ์ฒ˜ : habr.com