์ง€๋‚œ XNUMX๋…„๊ฐ„์˜ ๊ธฐ์ˆ  ์‚ดํŽด๋ณด๊ธฐ

๋ฉ”๋ชจ. ๋ฒˆ์—ญ: Medium์—์„œ ์ธ๊ธฐ๋ฅผ ๋Œ์—ˆ๋˜ ์ด ๊ธฐ์‚ฌ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์„ธ๊ณ„ ๋ฐ ๊ด€๋ จ ๊ธฐ์ˆ  ์ƒํƒœ๊ณ„(Docker ๋ฐ Kubernetes์— ํŠนํžˆ ์ดˆ์ ์„ ๋งž์ถฐ)์˜ ์ฃผ์š” ๋ณ€ํ™”(2010~2019)์— ๋Œ€ํ•œ ๊ฐœ์š”์ž…๋‹ˆ๋‹ค. ์›์ €์ž๋Š” ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ๋ฐ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์„ ์ „๋ฌธ์œผ๋กœ ํ•˜๋Š” Cindy Sridharan์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ๊ทธ๋…€๋Š” "Distributed Systems Observability"๋ผ๋Š” ์ฑ…์„ ์ง‘ํ•„ํ–ˆ์œผ๋ฉฐ, ํŠนํžˆ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฃผ์ œ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” IT ์ „๋ฌธ๊ฐ€๋“ค ์‚ฌ์ด์—์„œ ์ธํ„ฐ๋„ท ๊ณต๊ฐ„์—์„œ ๊ฝค ์ธ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๋‚œ XNUMX๋…„๊ฐ„์˜ ๊ธฐ์ˆ  ์‚ดํŽด๋ณด๊ธฐ

2019๋…„์ด ๋๋‚˜๊ฐ€๋ฉด์„œ ์ €๋Š” ์ง€๋‚œ XNUMX๋…„๊ฐ„ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ์ˆ  ๋ฐœ์ „๊ณผ ํ˜์‹ ์— ๋Œ€ํ•œ ์ œ ์ƒ๊ฐ์„ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ €๋Š” ๋ฏธ๋ž˜๋ฅผ ์ข€ ๋” ๋‚ด๋‹ค๋ณด๊ณ  ํ–ฅํ›„ XNUMX๋…„์˜ ์ฃผ์š” ๋ฌธ์ œ์™€ ๊ธฐํšŒ์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์œ ํ˜•ํ™”์˜ ์—ญ์Šต

2010๋…„๋Œ€์˜ ๊ฐ€์žฅ ๊ธ์ •์ ์ธ ์ถ”์„ธ ์ค‘ ํ•˜๋‚˜๋Š” ์ •์ ์œผ๋กœ ์ž…๋ ฅ๋œ ์–ธ์–ด์˜ ๋ถ€ํ™œ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ์–ธ์–ด๋Š” ๊ฒฐ์ฝ” ์‚ฌ๋ผ์ง€์ง€ ์•Š์•˜์ง€๋งŒ(C++์™€ Java๋Š” ์˜ค๋Š˜๋‚  ์ˆ˜์š”๊ฐ€ ๋งŽ์œผ๋ฉฐ 2005๋…„ ์ „์—๋Š” ์ง€๋ฐฐ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค), 2009๋…„ Ruby on Rails ์šด๋™์ด ๋“ฑ์žฅํ•œ ์ดํ›„ ๋™์  ์œ ํ˜• ์–ธ์–ด(๋™์ )์˜ ์ธ๊ธฐ๊ฐ€ ํฌ๊ฒŒ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. . ์ด๋Ÿฌํ•œ ์„ฑ์žฅ์€ XNUMX๋…„ Node.js์˜ ์˜คํ”ˆ ์†Œ์Šค๋กœ ์ตœ๊ณ ์กฐ์— ์ด๋ฅด๋ €๊ณ , ์ด๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์—์„œ Javascript๋ฅผ ํ˜„์‹คํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

2010๋…„์— ์†Œ๊ฐœ๋œ Rust์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์œ ํ˜• ์ด๋ก  ์•ˆ์ „ํ•˜๊ณ  ํ˜•์‹ํ™”๋œ ์–ธ์–ด๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. XNUMX๋…„๋Œ€ ์ „๋ฐ˜๊ธฐ์—๋Š” Rust์— ๋Œ€ํ•œ ์—…๊ณ„์˜ ๋ฐ˜์‘์ด ๋‹ค์†Œ ๋ฏธ์˜จ์ ์ด์—ˆ์ง€๋งŒ, ํ›„๋ฐ˜๊ธฐ์— ๊ทธ ์ธ๊ธฐ๊ฐ€ ํฌ๊ฒŒ ๋†’์•„์กŒ์Šต๋‹ˆ๋‹ค. Rust์˜ ์ฃผ๋ชฉํ• ๋งŒํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์šฉ๋„๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Dropbox์˜ Magic Pocket, AWS์˜ ํญ์ฃฝ (์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค ์ด ๊ธฐ์‚ฌ - ๋Œ€๋žต. ๋ฒˆ์—ญ), ์ดˆ๊ธฐ WebAssembly ์ปดํŒŒ์ผ๋Ÿฌ ๋ฃจ์…‹ Fastly(ํ˜„์žฌ bytecodealliance์˜ ์ผ๋ถ€) ๋“ฑ. Microsoft๊ฐ€ Windows OS์˜ ์ผ๋ถ€๋ฅผ Rust๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๊ณ ๋ คํ•˜๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์—์„œ, ์ด ์–ธ์–ด๋Š” 2020๋…„๋Œ€์— ๋ฐ์€ ๋ฏธ๋ž˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๋งํ•ด๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค.

๋™์  ์–ธ์–ด์—๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ํƒ์  ์œ ํ˜• (์„ ํƒํ˜•). ์ด๋Š” ์ž…๋ ฅ๋œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ JavaScript๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด์ธ TypeScript์—์„œ ์ฒ˜์Œ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. PHP, Ruby ๋ฐ Python์—๋Š” ์ž์ฒด ์„ ํƒ์  ์ž…๋ ฅ ์‹œ์Šคํ…œ(๋งˆ์ดํ”ผ, ๋งˆ๊ตฌ ์ž๋ฅด๊ธฐ), ์„ฑ๊ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒ์‚ฐ.

SQL์„ NoSQL๋กœ ๋ฐ˜ํ™˜

NoSQL์€ XNUMX๋…„๋Œ€ ๋ง๋ณด๋‹ค XNUMX๋…„๋Œ€ ์ดˆ๋ฐ˜์— ํ›จ์”ฌ ๋” ์ธ๊ธฐ๋ฅผ ๋Œ์—ˆ๋˜ ๋˜ ๋‹ค๋ฅธ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‘ ๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

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

๋‘ ๋ฒˆ์งธ ์ด์œ ๋Š” "์Šค์ผ€์ผ ์•„์›ƒ" ๋ถ„์‚ฐ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์˜ˆ: ํด๋ผ์šฐ๋“œ ์ŠคํŒจ๋„ˆ ะธ AWS ์˜ค๋กœ๋ผ) ๊ณต์šฉ ํด๋ผ์šฐ๋“œ ๊ณต๊ฐ„ ๋ฐ CockroachDB์™€ ๊ฐ™์€ ์˜คํ”ˆ ์†Œ์Šค ๋Œ€์•ˆ (์šฐ๋ฆฌ๋Š” ๊ทธ๋…€์— ๋Œ€ํ•ด์„œ๋„ ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ะฟะธัะฐะปะธ - ์•ฝ. ๋ฒˆ์—ญ.), ์ด๋Š” ๊ธฐ์กด SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ "ํ™•์žฅ ๋ถˆ๊ฐ€"๋ฅผ ์•ผ๊ธฐํ•œ ๋งŽ์€ ๊ธฐ์ˆ ์  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ํ•œ๋•Œ NoSQL ์šด๋™์˜ ์ „ํ˜•์ด์—ˆ๋˜ MongoDB๋„ ์ด์ œ๋Š” ์ œ๊ณต ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜.

์—ฌ๋Ÿฌ ๋ฌธ์„œ(ํ•˜๋‚˜ ์ด์ƒ์˜ ์ปฌ๋ ‰์…˜)์— ๊ฑธ์ณ ์›์ž์„ฑ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์˜ ๊ฒฝ์šฐ MongoDB๋Š” ๋‹ค์ค‘ ๋ฌธ์„œ ํŠธ๋žœ์žญ์…˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฝ์šฐ ํŠธ๋žœ์žญ์…˜์€ ์—ฌ๋Ÿฌ ์ž‘์—…, ์ปฌ๋ ‰์…˜, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋ฌธ์„œ ๋ฐ ์ƒค๋“œ์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด ์ŠคํŠธ๋ฆฌ๋ฐ

Apache Kafka๋Š” ์˜์‹ฌํ•  ์—ฌ์ง€์—†์ด ์ง€๋‚œ 2011๋…„๊ฐ„ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ฐœ๋ช…ํ’ˆ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. Kafka์˜ ์†Œ์Šค ์ฝ”๋“œ๋Š” XNUMX๋…„ XNUMX์›”์— ๊ณต๊ฐœ๋˜์—ˆ์œผ๋ฉฐ ์ˆ˜๋…„์— ๊ฑธ์ณ Kafka๋Š” ๊ธฐ์—…์˜ ๋ฐ์ดํ„ฐ ์ž‘์—… ๋ฐฉ์‹์— ํ˜๋ช…์„ ์ผ์œผ์ผฐ์Šต๋‹ˆ๋‹ค. Kafka๋Š” ์Šคํƒ€ํŠธ์—…๋ถ€ํ„ฐ ๋Œ€๊ธฐ์—…๊นŒ์ง€ ์ œ๊ฐ€ ์ผํ–ˆ๋˜ ๋ชจ๋“  ํšŒ์‚ฌ์—์„œ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ณตํ•˜๋Š” ๋ณด์ฆ ๋ฐ ์‚ฌ์šฉ ์‚ฌ๋ก€(pub-sub, ์ŠคํŠธ๋ฆผ, ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜)๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ๋ถ€ํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ถ„์„์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๊ธˆ์œต, ์˜๋ฃŒ, ๊ณต๊ณต ๋ถ€๋ฌธ, ์†Œ๋งค์—… ๋“ฑ

์ง€์†์ ์ธ ํ†ตํ•ฉ(๋ฐ ๊ทธ ์ดํ•˜์˜ ์ง€์†์ ์ธ ๋ฐฐํฌ)

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

์ง€์†์ ์ธ ๋ฐฐํฌ(๊ฐ ์ปค๋ฐ‹์ด ๋งˆ์Šคํ„ฐ์— ๋„๋‹ฌํ•  ๋•Œ๋งˆ๋‹ค ๋ฐฐํฌ)๋Š” ์ง€์†์ ์ธ ํ†ตํ•ฉ๋งŒํผ ๊ด‘๋ฒ”์œ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ํด๋ผ์šฐ๋“œ API, Kubernetes(๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ํ‘œ์ค€ํ™”๋œ API ์ œ๊ณต)์™€ ๊ฐ™์€ ํ”Œ๋žซํผ์˜ ์ธ๊ธฐ ์ฆ๊ฐ€, ๊ทธ๋ฆฌ๊ณ  Spinnaker(ํ‘œ์ค€ํ™”๋œ API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋จ)์™€ ๊ฐ™์€ ๋‹ค์ค‘ ํ”Œ๋žซํผ, ๋‹ค์ค‘ ํด๋ผ์šฐ๋“œ ๋„๊ตฌ์˜ ์ถœํ˜„์œผ๋กœ ์ธํ•ด API), ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋”์šฑ ์ž๋™ํ™”๋˜๊ณ  ๊ฐ„์†Œํ™”๋˜์—ˆ์œผ๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๋”์šฑ ์•ˆ์ „ํ•ด์กŒ์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ

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

์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ธ๊ธฐ๋ฅผ ์–ป์€ ๊ฒƒ์€ ๊ธ€๋กœ๋ฒŒ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๊ธฐ ๋•Œ๋ฌธ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํŠน์ • ๋„๊ตฌ์— ๋Œ€ํ•œ ๋งˆ์ผ€ํŒ… ์š”์ฒญ์— ์„ฑ๊ณต์ ์œผ๋กœ ๋ถ€ํ•ฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ธ๊ธฐ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. Docker๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ํ™˜์ƒ์ ์ธ ๊ธด๊ธ‰ํ•œ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฐœ๋ฐœ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค("๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์ž‘๋™").

๋” ์ •ํ™•ํ•˜๊ฒŒ๋Š” ํ˜๋ช…์ด ์ด๋ฃจ์–ด์กŒ๋‹ค. ๋„์ปค ์ด๋ฏธ์ง€, ํ™˜๊ฒฝ ๊ฐ„์˜ ํŒจ๋ฆฌํ‹ฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŒŒ์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ์†Œํ”„ํŠธ์›จ์–ด ๋ฐ ์šด์˜ ์ข…์†์„ฑ์— ๋Œ€ํ•œ ์ง„์ •ํ•œ ์ด์‹์„ฑ์„ ์ œ๊ณตํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๊ฐ€ ๋ณธ์งˆ์ ์œผ๋กœ ๋งค์šฐ ๋‚ฎ์€ ์ˆ˜์ค€์˜ ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ์ธ "์ปจํ…Œ์ด๋„ˆ"์˜ ์ธ๊ธฐ๋ฅผ ๋ถˆ๋Ÿฌ์ผ์œผ์ผฐ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์•„๋งˆ๋„ ์ง€๋‚œ XNUMX๋…„ ๋™์•ˆ์˜ ์ฃผ์š” ๋ฏธ์Šคํ„ฐ๋ฆฌ๋กœ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„๋ฆฌ์Šค

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

์˜คํ† ๋ฉ”์ด์…˜

์•„๋งˆ๋„ ์ด๋Ÿฌํ•œ ์ถ”์„ธ์˜ ๊ฐ€์žฅ ํฐ ์ˆ˜ํ˜œ์ž๋Š” ์šด์˜ ์—”์ง€๋‹ˆ์–ด๋ง ์ปค๋ฎค๋‹ˆํ‹ฐ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด IaC(Infrastructure as Code)์™€ ๊ฐ™์€ ๊ฐœ๋…์ด ํ˜„์‹คํ™”๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ž๋™ํ™”์— ๋Œ€ํ•œ ์—ด์ •์€ ๋ณด๋‹ค ์†Œํ”„ํŠธ์›จ์–ด ์ค‘์‹ฌ์ ์ธ ์šด์˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ทจํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” "SRE ๋ฌธํ™”"์˜ ๋ถ€์ƒ๊ณผ ๋™์‹œ์— ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฒ”์šฉ APIํ™”

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

๋˜ํ•œ APIํ™”๋Š” ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด๋‚˜ ๋„๊ตฌ์˜ SaaSํ™”๋ฅผ ํ–ฅํ•œ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ถ”์„ธ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ธ๊ธฐ ์ฆ๊ฐ€์™€๋„ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. SaaS๋Š” API๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์„œ๋น„์Šค๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ชจ๋‹ˆํ„ฐ๋ง, ๊ฒฐ์ œ, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ, ์ง€์†์ ์ธ ํ†ตํ•ฉ, ๊ฒฝ๊ณ , ๊ธฐ๋Šฅ ์ „ํ™˜๊ณผ ๊ฐ™์€ ์˜์—ญ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” SaaS ๋ฐ FOSS ๋„๊ตฌ๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. (๊ธฐ๋Šฅ ์‹ ๊ณ ), CDN, ํŠธ๋ž˜ํ”ฝ ์—”์ง€๋‹ˆ์–ด๋ง(์˜ˆ: DNS) ๋“ฑ์ด ์ง€๋‚œ XNUMX๋…„ ๋™์•ˆ ๋ฒˆ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ด€์ฐฐ ๊ฐ€๋Šฅ์„ฑ

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

๋ถ„์‚ฐ ์ถ”์ ์€ OpenTracing(๋ฐ ํ›„์† OpenTelemetry)๊ณผ ๊ฐ™์€ ์ด๋‹ˆ์…”ํ‹ฐ๋ธŒ ๋•๋ถ„์— 2010๋…„๋Œ€์— ์ฃผ๋ฅ˜๋กœ ํŽธ์ž…๋œ ๋˜ ๋‹ค๋ฅธ ๊ธฐ์ˆ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ถ”์ ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ ์šฉํ•˜๊ธฐ ๋งค์šฐ ์–ด๋ ต์ง€๋งŒ ์ตœ์‹  ๊ฐœ๋ฐœ ์ค‘ ์ผ๋ถ€๋Š” 2020๋…„๋Œ€์— ์ถ”์ ์˜ ์ง„์ •ํ•œ ์ž ์žฌ๋ ฅ์„ ๋ฐœํœ˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํฌ๋ง์„ ์ค๋‹ˆ๋‹ค. (์ฐธ๊ณ : ์ €ํฌ ๋ธ”๋กœ๊ทธ์—์„œ "๋ผ๋Š” ๊ธฐ์‚ฌ ๋ฒˆ์—ญ๋„ ์ฝ์–ด๋ณด์„ธ์š”.๋ถ„์‚ฐ ์ถ”์ : ์šฐ๋ฆฌ๊ฐ€ ๋ชจ๋‘ ์ž˜๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค"๊ฐ™์€ ์ž‘๊ฐ€์˜ ์ž‘ํ’ˆ์ž…๋‹ˆ๋‹ค.)

๋ฏธ๋ž˜๋ฅผ ๋ฐ”๋ผ๋ณด๋ฉฐ

๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ์•ž์œผ๋กœ XNUMX๋…„ ๋™์•ˆ ํ•ด๊ฒฐ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ฌธ์ œ์ ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๊ทธ๊ฒƒ๋“ค์— ๋Œ€ํ•œ ๋‚˜์˜ ์ƒ๊ฐ๊ณผ ๊ทธ๊ฒƒ๋“ค์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ž ์žฌ์ ์ธ ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค.

๋ฌด์–ด์˜ ๋ฒ•์น™ ๋ฌธ์ œ ํ•ด๊ฒฐ

Dennard์˜ ์Šค์ผ€์ผ๋ง ๋ฒ•์น™์ด ๋๋‚˜๊ณ  ๋ฌด์–ด์˜ ๋ฒ•์น™์ด ๋’ค์ฒ˜์ง€๋Š” ํ˜„์ƒ์—๋Š” ์ƒˆ๋กœ์šด ํ˜์‹ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์กด ํ—ค๋„ค์‹œ ๊ทธ์˜ ๊ฐ•์˜ ๋ฌธ์ œ ์ค‘๋…์ž๊ฐ€ ์™œ ๋ฌธ์ œ์ธ์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. (๋„๋ฉ”์ธ๋ณ„) TPU์™€ ๊ฐ™์€ ์•„ํ‚คํ…์ฒ˜๋Š” ๋ฌด์–ด์˜ ๋ฒ•์น™์— ๋’ค์ฒ˜์ง€๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ… ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํˆดํ‚ท MLIR Google์˜ ์ œ์•ˆ์€ ์ด๋ฏธ ์ด ๋ฐฉํ–ฅ์œผ๋กœ ์ข‹์€ ์ง„์ „์„ ์ด๋ฃฌ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

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

CI / CD

CI์˜ ๋ถ€์ƒ์ด 2010๋…„๋Œ€ ๊ฐ€์žฅ ํฐ ํŠธ๋ Œ๋“œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋˜์—ˆ์ง€๋งŒ Jenkins๋Š” ์—ฌ์ „ํžˆ CI์˜ ํ‘œ์ค€์ž…๋‹ˆ๋‹ค.

์ง€๋‚œ XNUMX๋…„๊ฐ„์˜ ๊ธฐ์ˆ  ์‚ดํŽด๋ณด๊ธฐ

์ด ๊ณต๊ฐ„์€ ๋‹ค์Œ ์˜์—ญ์—์„œ ํ˜์‹ ์ด ์ ˆ์‹คํžˆ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

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

๊ฐœ๋ฐœ์ž ๋„๊ตฌ

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

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

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

๋˜ํ•œ "์ด์‹ ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ" ๊ฐœ๋…์„ ๋ฒ„๊ทธ ์žฌํ˜„(๋˜๋Š” ๋ถˆ์•ˆ์ •ํ•œ ํ…Œ์ŠคํŠธ) ํŠน์ • ์กฐ๊ฑด์ด๋‚˜ ์„ค์ •์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์˜๋ฏธ๋ก ์  ๋ฐ ์ƒํ™ฉ์— ๋งž๋Š” ์ฝ”๋“œ ๊ฒ€์ƒ‰, ์ƒ์‚ฐ ์‚ฌ๊ณ ๋ฅผ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ํŠน์ • ๋ถ€๋ถ„๊ณผ ์—ฐ๊ด€์‹œํ‚ค๋Š” ๋„๊ตฌ ๋“ฑ๊ณผ ๊ฐ™์€ ์˜์—ญ์—์„œ ๋” ๋งŽ์€ ํ˜์‹ ์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ปดํ“จํŒ…(PaaS์˜ ๋ฏธ๋ž˜)

2010๋…„๋Œ€ ์ปจํ…Œ์ด๋„ˆ์™€ ์„œ๋ฒ„๋ฆฌ์Šค์— ๋Œ€ํ•œ ๊ณผ๋Œ€๊ด‘๊ณ ์— ์ด์–ด ์ง€๋‚œ ๋ช‡ ๋…„ ๋™์•ˆ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ๊ณต๊ฐ„์˜ ์†”๋ฃจ์…˜ ๋ฒ”์œ„๊ฐ€ ํฌ๊ฒŒ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ง€๋‚œ XNUMX๋…„๊ฐ„์˜ ๊ธฐ์ˆ  ์‚ดํŽด๋ณด๊ธฐ

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

์ด๋Ÿฌํ•œ ํด๋ผ์šฐ๋“œ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ๋ถ€๋Ÿฌ์›Œํ•  ์ˆ˜๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ก ์ ์œผ๋กœ Kubernetes ํด๋ผ์šฐ๋“œ ์ œํ’ˆ(GKE, EKS, Fargate์˜ EKS ๋“ฑ)์€ ์›Œํฌ๋กœ๋“œ ์‹คํ–‰์„ ์œ„ํ•ด ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž ๋…๋ฆฝ์ ์ธ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์œ ์‚ฌํ•œ ์ œํ’ˆ(ECS, Fargate, Google Cloud Run ๋“ฑ)์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์„œ๋น„์Šค ์ œ๊ณต์—…์ฒด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ด๋ฏธ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๊ณ  ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ƒˆ๋กœ์šด ์ œํ’ˆ์ด๋‚˜ ์ปดํ“จํŒ… ํŒจ๋Ÿฌ๋‹ค์ž„์ด ๋“ฑ์žฅํ•˜๋ฉด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ๊ฐ„๋‹จํ•˜๊ณ  ์ŠคํŠธ๋ ˆ์Šค ์—†์ด ์ง„ํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์†”๋ฃจ์…˜์˜ ๋ฒ”์œ„๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ์ง„ํ™”ํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๊ณ ๋ คํ•˜๋ฉด(๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์— ๋ช‡ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ์˜ต์…˜์ด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์œผ๋ฉด ๋งค์šฐ ๋†€๋ž„ ๊ฒƒ์ž…๋‹ˆ๋‹ค), ์†Œ๊ทœ๋ชจ "ํ”Œ๋žซํผ" ํŒ€(์ธํ”„๋ผ์™€ ๊ด€๋ จ๋˜๊ณ  ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ”Œ๋žซํผ์„ ๋งŒ๋“œ๋Š” ์ฑ…์ž„์„ ๋งก์€ ํŒ€) ์›Œํฌ๋กœ๋“œ๋ฅผ ์šด์˜ํ•˜๋Š” ๊ธฐ์—…)์€ ๊ธฐ๋Šฅ, ์‚ฌ์šฉ ์šฉ์ด์„ฑ ๋ฐ ์ „๋ฐ˜์ ์ธ ์•ˆ์ •์„ฑ ์ธก๋ฉด์—์„œ ๊ฒฝ์Ÿํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ์–ด๋ ค์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 2010๋…„๋Œ€์—๋Š” Kubernetes๋ฅผ PaaS(Platform-as-a-Service) ๊ตฌ์ถ•์„ ์œ„ํ•œ ๋„๊ตฌ๋กœ ๋ณด์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€์ค‘์—๊ฒŒ ์ œ๊ณต๋˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ์„ ํƒ, ๋‹จ์ˆœ์„ฑ ๋ฐ ์ž์œ ๋ฅผ ์ œ๊ณตํ•˜๋Š” Kubernetes ์œ„์— ๋‚ด๋ถ€ ํ”Œ๋žซํผ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ์ „ํ˜€ ๋ฌด์˜๋ฏธํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ๊ณต๊ฐ„. ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ PaaS๋ฅผ "Kubernetes ์ „๋žต"์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ ํด๋ผ์šฐ๋“œ์˜ ๊ฐ€์žฅ ํ˜์‹ ์ ์ธ ๊ธฐ๋Šฅ์„ ์˜๋„์ ์œผ๋กœ ํ”ผํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

๋˜ํ•œ ๋งค์šฐ ๋„“์€ ์˜๋ฏธ์—์„œ ๊ธฐ์—…์€ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ์šด์˜ ์ „๋ฌธ๊ฐ€๊ฐ€ ๋  ํ•„์š”๋„ ์—†๊ณ  ์ž์ฒด ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•  ํ•„์š”๋„ ์—†์Šต๋‹ˆ๋‹ค. ์•ˆ์ •์ ์ธ ์ปดํ“จํŒ… ๊ธฐ๋ฐ˜์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ ๊ณผ์ œ์ž…๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ์ œ๊ณต์—…์ฒด.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์šฐ๋ฆฌ๋Š” ์—…๊ณ„ ์ธก๋ฉด์—์„œ ์•ฝ๊ฐ„ ํ‡ด๋ณดํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ƒํ˜ธ์ž‘์šฉ ๊ฒฝํ—˜ (UX). Heroku๋Š” 2007๋…„์— ์ถœ์‹œ๋˜์—ˆ์œผ๋ฉฐ ์—ฌ์ „ํžˆ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ์„œ๋น„์Šค ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ํ”Œ๋žซํผ. Kubernetes๊ฐ€ ํ›จ์”ฌ ๋” ๊ฐ•๋ ฅํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์‚ฌ์‹ค์€ ๋ถ€์ธํ•  ์ˆ˜ ์—†์ง€๋งŒ Heroku๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์‰ฌ์šด์ง€ ๊ทธ๋ฆฌ์›Œํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Git๋งŒ ์•Œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๋ก ์— ์ด๋ฅด๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค: ์ž‘๋™ํ•˜๋ ค๋ฉด ๋” ๋‚˜์€, ๋” ๋†’์€ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(ํŠนํžˆ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค). ์ตœ๊ณ  ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”).

์ตœ๊ณ  ์ˆ˜์ค€์˜ ์˜ฌ๋ฐ”๋ฅธ API

Docker๋Š” ๋™์‹œ์— ์šฐ๋ ค ์‚ฌํ•ญ์„ ๋” ํšจ๊ณผ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•ด์•ผ ํ•˜๋Š” ํ•„์š”์„ฑ์„ ๋ณด์—ฌ์ฃผ๋Š” ์ข‹์€ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์ตœ๊ณ  ์ˆ˜์ค€ API์˜ ์˜ฌ๋ฐ”๋ฅธ ๊ตฌํ˜„.

Docker์˜ ๋ฌธ์ œ๋Š” (์ ์–ด๋„) ์ฒ˜์Œ์—๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋ชฉํ‘œ๊ฐ€ ๋„ˆ๋ฌด ๊ด‘๋ฒ”์œ„ํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์€ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ(โ€œ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์ž‘๋™โ€)๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. Docker๋Š” ์ด๋ฏธ์ง€ ํ˜•์‹, ์ž์ฒด ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ๊ฐ€ ์žˆ๋Š” ๋Ÿฐํƒ€์ž„, CLI ๋„๊ตฌ, ๋ฃจํŠธ๋กœ ์‹คํ–‰๋˜๋Š” ๋ฐ๋ชฌ ๋“ฑ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ๋ฉ”์‹œ์ง€ ๊ตํ™˜์€ ๋” "๊ฒฝ๋Ÿ‰ VM", cgroup, ๋„ค์ž„์ŠคํŽ˜์ด์Šค, ์ˆ˜๋งŽ์€ ๋ณด์•ˆ ๋ฌธ์ œ ๋ฐ ๊ธฐ๋Šฅ์€ ๋งํ•  ๊ฒƒ๋„ ์—†๊ณ  "์–ด๋””์„œ๋“  ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•, ์ œ๊ณต, ์‹คํ–‰"ํ•˜๋ผ๋Š” ๋งˆ์ผ€ํŒ… ์š”๊ตฌ์™€ ํ˜ผํ•ฉ๋˜์–ด ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

์ง€๋‚œ XNUMX๋…„๊ฐ„์˜ ๊ธฐ์ˆ  ์‚ดํŽด๋ณด๊ธฐ

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

Kubernetes๋Š” Docker์™€ ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ‹์ง€๊ณ  ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ถ”์ƒํ™”์— ๋Œ€ํ•œ ๋ชจ๋“  ์ด์•ผ๊ธฐ์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ๋ ˆ์ด์–ด๋กœ ๋ถ„๋ฆฌ ์ž˜ ์บก์Šํ™”๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ ๋‹ค์–‘ํ•œ ๋จธ์‹ ์˜ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์šด์˜ํ•˜๋Š” ์—”์ง€๋‹ˆ์–ด์—๊ฒŒ๋งŒ ์ ์šฉ๋˜๋Š” ์ƒ๋‹นํžˆ ๋‚ฎ์€ ์ˆ˜์ค€์˜ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ์ตœ๊ณ  ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”, ์‚ฌ์šฉ์ž๊ฐ€ YAML์„ ํ†ตํ•ด ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” CLI ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

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

Dockerfile ๋ฐ CLI ์œ ํ‹ธ๋ฆฌํ‹ฐ docker ์ข‹์€ "์ตœ๊ณ  ์ˆ˜์ค€์˜ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜"์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ์˜ˆ๊ฐ€ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ๊ฐœ๋ฐœ์ž๋Š” ๋ณต์žกํ•œ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ „ํ˜€ ๋ชจ๋ฅด๋”๋ผ๋„ Docker ์ž‘์—…์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šด์˜ ๊ฒฝํ—˜์— ๊ธฐ์—ฌํ•˜๋Š” ๊ตฌํ˜„๋„ค์ž„์ŠคํŽ˜์ด์Šค, cgroup, ๋ฉ”๋ชจ๋ฆฌ ๋ฐ CPU ์ œํ•œ ๋“ฑ ๊ถ๊ทน์ ์œผ๋กœ Dockerfile์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ์…ธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๊ณผ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Kubernetes๋Š” ๋‹ค์–‘ํ•œ ๋Œ€์ƒ ๊ทธ๋ฃน์„ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

  • ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž;
  • ์ธํ”„๋ผ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  Kubernetes์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”Œ๋žซํผ์„ ๋งŒ๋“œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด
  • ์ตœ์ข… ์‚ฌ์šฉ์ž๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด Kubernetes์™€ ์ƒํ˜ธ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค. kubectl.

Kubernetes์˜ "๋ชจ๋“  ๊ฒƒ์— ์ ํ•ฉํ•œ ํ•˜๋‚˜์˜ API" ์ ‘๊ทผ ๋ฐฉ์‹์€ ํ™•์žฅ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ ์—†์ด ์บก์Šํ™”๋˜์ง€ ์•Š์€ "๋ณต์žก์„ฑ์˜ ์‚ฐ"์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ์ด ์ •๋‹นํ™”๋  ์ˆ˜ ์—†์„ ์ •๋„๋กœ ์žฅ๊ธฐ๊ฐ„์˜ ํ•™์Šต ๊ถค์ ์„ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๊ธฐ๋ก Adam Jacob, โ€œDocker๋Š” ๊ทธ ์–ด๋Š ๋•Œ๋ณด๋‹ค๋„ ํš๊ธฐ์ ์ธ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์„ ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. K8์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ์ฒ˜์Œ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๊ณ  ์‹ถ์€์ง€ ๋ฌผ์–ด๋ณด์„ธ์š”. docker run. ๋Œ€๋‹ต์€ '์˜ˆ'์ž…๋‹ˆ๋‹ค.":

์ง€๋‚œ XNUMX๋…„๊ฐ„์˜ ๊ธฐ์ˆ  ์‚ดํŽด๋ณด๊ธฐ

๋‚˜๋Š” ์˜ค๋Š˜๋‚  ๋Œ€๋ถ€๋ถ„์˜ ์ธํ”„๋ผ ๊ธฐ์ˆ ์ด ๋„ˆ๋ฌด ๋‚ฎ์€ ์ˆ˜์ค€(๋”ฐ๋ผ์„œ "๋„ˆ๋ฌด ๋ณต์žก"ํ•˜๋‹ค๊ณ  ๊ฐ„์ฃผ๋จ)์ด๋ผ๊ณ  ์ฃผ์žฅํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. Kubernetes๋Š” ์ƒ๋‹นํžˆ ๋‚ฎ์€ ์ˆ˜์ค€์—์„œ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ์ถ”์  ํ˜„์žฌ ํ˜•ํƒœ (ํŠธ๋ ˆ์ด์Šค๋ทฐ๋ฅผ ํ˜•์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํ•จ๊ป˜ ์Šคํ‹ฐ์น˜๋œ ๋งŽ์€ ๋ฒ”์œ„)๋„ ๋„ˆ๋ฌด ๋‚ฎ์€ ์ˆ˜์ค€์—์„œ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. "์ตœ๊ณ  ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”"๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๊ฐ€ ๊ฐ€์žฅ ์„ฑ๊ณต์ ์ธ ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฐ๋ก ์€ ๋†€๋ž„ ๋งŒํผ ๋งŽ์€ ๊ฒฝ์šฐ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค(๊ธฐ์ˆ ์ด ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ ํ•ด๋‹น ๊ธฐ์ˆ ์— ๋Œ€ํ•œ "์ตœ๊ณ  ์ˆ˜์ค€์˜ API/UI"๊ฐ€ ์•„์ง ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ).

ํ˜„์žฌ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์ƒํƒœ๊ณ„๋Š” ๋‚ฎ์€ ์ˆ˜์ค€์˜ ์ง‘์ค‘์œผ๋กœ ์ธํ•ด ํ˜ผ๋ž€์„ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๊ณ„๋กœ์„œ ์šฐ๋ฆฌ๋Š” ์˜ฌ๋ฐ”๋ฅธ ์ˆ˜์ค€์˜ "์ตœ๋Œ€, ์ตœ๊ณ  ์ถ”์ƒํ™”"๊ฐ€ ์–ด๋–ค ๊ฒƒ์ธ์ง€ ํ˜์‹ ํ•˜๊ณ  ์‹คํ—˜ํ•˜๊ณ  ๊ต์œกํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์†Œ๋งค

2010๋…„๋Œ€์—๋„ ๋””์ง€ํ„ธ ์†Œ๋งค ๊ฒฝํ—˜์€ ํฌ๊ฒŒ ๋ณ€ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ•œํŽธ์œผ๋กœ๋Š” ์˜จ๋ผ์ธ ์‡ผํ•‘์˜ ์šฉ์ด์„ฑ์ด ๊ธฐ์กด ์†Œ๋งค์ ์— ๊ฐ•ํƒ€ํ–ˆ์–ด์•ผ ํ–ˆ์ง€๋งŒ, ๋‹ค๋ฅธ ํ•œํŽธ์œผ๋กœ๋Š” ์˜จ๋ผ์ธ ์‡ผํ•‘์€ ๊ทผ๋ณธ์ ์œผ๋กœ ์ง€๋‚œ XNUMX๋…„ ๋™์•ˆ ๊ฑฐ์˜ ๋ณ€ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ €๋Š” ์ด ์‚ฐ์—…์ด ํ–ฅํ›„ 2030๋…„ ๋™์•ˆ ์–ด๋–ป๊ฒŒ ๋ฐœ์ „ํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•ด ๊ตฌ์ฒด์ ์œผ๋กœ ์ƒ๊ฐํ•˜์ง€ ์•Š์ง€๋งŒ, 2020๋…„๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ XNUMX๋…„์—๋„ ์‡ผํ•‘ํ•œ๋‹ค๋ฉด ๋งค์šฐ ์‹ค๋ง์Šค๋Ÿฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ €๋„๋ฆฌ์ฆ˜

๋‚˜๋Š” ๊ธ€๋กœ๋ฒŒ ์ €๋„๋ฆฌ์ฆ˜์˜ ์ƒํ™ฉ์— ์ ์  ๋” ํ™˜๋ฉธ์„ ๋Š๋ผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ด€์ ์ด๊ณ  ์„ธ์‹ฌํ•˜๊ฒŒ ๋ณด๋„ํ•˜๋Š” ํŽธ๊ฒฌ ์—†๋Š” ๋‰ด์Šค ๋งค์ฒด๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ์ ์  ๋” ์–ด๋ ค์›Œ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‰ด์Šค ์ž์ฒด์™€ ๋‰ด์Šค์— ๋Œ€ํ•œ ์˜๊ฒฌ ์‚ฌ์ด์˜ ๊ฒฝ๊ณ„๊ฐ€ ๋ชจํ˜ธํ•ด์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ •๋ณด๋Š” ํŽธํ–ฅ๋œ ๋ฐฉ์‹์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์—ญ์‚ฌ์ ์œผ๋กœ ๋‰ด์Šค์™€ ์˜๊ฒฌ์ด ๋ถ„๋ฆฌ๋˜์ง€ ์•Š์•˜๋˜ ์ผ๋ถ€ ๊ตญ๊ฐ€์—์„œ ํŠนํžˆ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ ์˜๊ตญ ์ด์„  ์ดํ›„ ๋ฐœํ‘œ๋œ ์ตœ๊ทผ ๊ธฐ์‚ฌ์—์„œ ๊ฐ€๋””์–ธ(The Guardian)์˜ ์ „ ํŽธ์ง‘์žฅ์ธ ์•จ๋Ÿฐ ๋ฃจ์Šค๋ธŒ๋ฆฌ์ €(Alan Rusbridger)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ก:

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

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

ะกะพั†ะธะฐะปัŒะฝั‹ะต ัะตั‚ะธ

์†Œ์…œ ๋ฏธ๋””์–ด์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋‰ด์Šค ํ”Œ๋žซํผ์€ ์ „ ์„ธ๊ณ„ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์˜ ์ฃผ์š” ์ •๋ณด ์†Œ์Šค์ด๋ฉฐ, ์ผ๋ถ€ ํ”Œ๋žซํผ์˜ ์ •ํ™•์„ฑ์ด ๋ถ€์กฑํ•˜๊ณ  ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์‹ค ํ™•์ธ์กฐ์ฐจ ๊บผ๋ฆฌ๋ฏ€๋กœ ๋Œ€๋Ÿ‰ ํ•™์‚ด, ์„ ๊ฑฐ ๊ฐ„์„ญ ๋“ฑ๊ณผ ๊ฐ™์€ ์žฌ์•™์ ์ธ ๊ฒฐ๊ณผ๊ฐ€ ์ดˆ๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. .

์†Œ์…œ ๋ฏธ๋””์–ด๋Š” ๋˜ํ•œ ์ง€๊ธˆ๊นŒ์ง€ ์กด์žฌํ–ˆ๋˜ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๋ฏธ๋””์–ด ๋„๊ตฌ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ •์น˜์  ๊ด€ํ–‰์„ ๊ทผ๋ณธ์ ์œผ๋กœ ๋ณ€ํ™”์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ด‘๊ณ ๋ฅผ ๋ฐ”๊ฟจ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋Œ€์ค‘ ๋ฌธํ™”๋ฅผ ๋ณ€ํ™”์‹œ์ผฐ์Šต๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด, ์†Œ์œ„ ์ทจ์†Œ ๋ฌธํ™” ๋ฐœ์ „์— ์ฃผ์š”ํ•œ ๊ธฐ์—ฌ๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค) [๋ฐฐ์ฒ™์˜ ๋ฌธํ™” - ๋Œ€๋žต. ๋ฒˆ์—ญ] ์†Œ์…œ ๋„คํŠธ์›Œํฌ๊ฐ€ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค). ๋น„ํ‰๊ฐ€๋“ค์€ ์†Œ์…œ ๋ฏธ๋””์–ด๊ฐ€ ๋„๋•์  ๊ฐ€์น˜์˜ ๋น ๋ฅด๊ณ  ๋ณ€๋•์Šค๋Ÿฌ์šด ๋ณ€ํ™”๋ฅผ ์œ„ํ•œ ๋น„์˜ฅํ•œ ๊ธฐ๋ฐ˜์ž„์ด ์ž…์ฆ๋˜์—ˆ์ง€๋งŒ, ์†Œ์™ธ๋œ ์ง‘๋‹จ์˜ ๊ตฌ์„ฑ์›๋“ค์—๊ฒŒ ์ด์ „์—๋Š” ๊ฒฐ์ฝ” ๊ฐ–์ง€ ๋ชปํ–ˆ๋˜ ๋ฐฉ์‹์œผ๋กœ ์กฐ์งํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋„ ์ œ๊ณตํ–ˆ๋‹ค๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ ์†Œ์…œ ๋ฏธ๋””์–ด๋Š” XNUMX์„ธ๊ธฐ ์‚ฌ๋žŒ๋“ค์ด ์˜์‚ฌ์†Œํ†ตํ•˜๊ณ  ์ž์‹ ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹์„ ๋ณ€ํ™”์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.

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

๋” ๋‚˜์€ ํ’ˆ์งˆ์˜ ํ† ๋ก ์„ ์ด‰์ง„ํ•˜๋Š” "๋” ๋‚˜์€" ํ”Œ๋žซํผ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ, ์ด๋Ÿฌํ•œ ํ”Œ๋žซํผ์— ์ฃผ์š” ์ด์ต์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์€ ๋ฐ”๋กœ "์ฐธ์—ฌ"๋ฅผ ์ฃผ๋„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๊ธฐ๋ก New York Times์˜ Kara Swisher๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

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

์ˆ˜์‹ญ ๋…„ ์•ˆ์— ์†Œ์…œ ๋ฏธ๋””์–ด์˜ ์œ ์ผํ•œ ์œ ์‚ฐ์ด ๊ณต๊ฐœ ๋‹ด๋ก ์˜ ๋‰˜์•™์Šค์™€ ์ ์ ˆ์„ฑ์˜ ์นจ์‹์ด๋ผ๋ฉด ์ •๋ง ๋ถˆํ–‰ํ•œ ์ผ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฒˆ์—ญ๊ฐ€์˜ ์ถ”์‹ 

๋ธ”๋กœ๊ทธ์—์„œ๋„ ์ฝ์–ด๋ณด์„ธ์š”.

์ถœ์ฒ˜ : habr.com

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