์„œ๋ฒ„ ๋ถ„์„ ์‹œ์Šคํ…œ

์ด๊ฒƒ์€ ๋ถ„์„ ์‹œ์Šคํ…œ์— ๊ด€ํ•œ ์ผ๋ จ์˜ ๊ธฐ์‚ฌ ์ค‘ ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค(1๋ถ€ ๋งํฌ).

์„œ๋ฒ„ ๋ถ„์„ ์‹œ์Šคํ…œ

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

ํด๋ผ์ด์–ธํŠธ ๋ถ„์„๊ฐ€

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

์„œ๋ฒ„ ๋ถ„์„๊ฐ€

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

ํ”„๋กœ
์ฃ„์ˆ˜ ํŒ€์€

์›ํ•˜๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ด๋“  ๋งž์ถค ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Š” ์ข…์ข… ๋งค์šฐ ์–ด๋ ค์šฐ๋ฉฐ ๋ณ„๋„์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‘˜์งธ: ์ง์ ‘ ๋ฐฐํฌํ•˜๋Š” ๋Œ€์‹  SaaS ์„œ๋น„์Šค(Amazon, Google, Azure)๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. SaaS์— ๋Œ€ํ•ด์„œ๋Š” ์„ธ ๋ฒˆ์งธ ๋ถ€๋ถ„์—์„œ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ
์ฃ„์ˆ˜ ํŒ€์€

์ค‘๊ฐ„ ๊ทœ๋ชจ์—์„œ๋Š” ๋” ์ €๋ ดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด ์—ฌ์ „ํžˆ ๋„ˆ๋ฌด ๋น„์Œ‰๋‹ˆ๋‹ค.
๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌ๋Š” ์ „์ ์œผ๋กœ ์„œ๋น„์Šค ์ œ๊ณต์—…์ฒด์˜ ์ฑ…์ž„์œผ๋กœ ์ด์ „๋ฉ๋‹ˆ๋‹ค.
์„œ๋น„์Šค ๋‚ด๋ถ€์— ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ํ•ญ์ƒ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค(ํ•„์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Œ).

์„œ๋ฒ„ ๋ถ„์„ ์ˆ˜์ง‘ ๋ฐฉ๋ฒ•

ํด๋ผ์ด์–ธํŠธ ๋ถ„์„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์—์„œ ๋ฒ—์–ด๋‚˜ ์ž์ฒด ๋ถ„์„์„ ๊ตฌ์ถ•ํ•˜๋ ค๋ฉด ๋จผ์ € ์ƒˆ ์‹œ์Šคํ…œ์˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ „์ฒด์ ์œผ๋กœ ์ƒ๊ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ๋Š” ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ, ๊ฐ ๋‹จ๊ณ„๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ๋ฐ์ดํ„ฐ ์ˆ˜์‹ 

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

์— ๋”ฐ๋ฅด๋ฉด Quora์— ๊ฒŒ์‹œ 2014๋…„ ์•„ํŒŒ์น˜ ์นดํ”„์นด(Apache Kafka)์˜ ์ฐฝ์‹œ์ž๋Š” โ€œ๊ธ€์“ฐ๊ธฐ์— ์ตœ์ ํ™”๋œ ์‹œ์Šคํ…œโ€์ด๊ณ  ์นดํ”„์นด์˜ ์ž‘ํ’ˆ์„ ์ข‹์•„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋ž€์ธ  ์นดํ”„์นด(Franz Kafka)์˜ ์ด๋ฆ„์„ ๋”ฐ์„œ ์†Œํ”„ํŠธ์›จ์–ด ์ด๋ฆ„์„ ์ง“๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. โ€” ์œ„ํ‚ค ๋ฐฑ๊ณผ

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

๋™์‹œ์— Kafka๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฒญํฌ ๋‹จ์œ„๋กœ ์ฝ๊ณ  ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ์„ ๋ฏธ๋‹ˆ ๋ฐฐ์น˜๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Kafka๋Š” ์ฆ๊ฐ€ํ•˜๋Š” ์š”๊ตฌ ์‚ฌํ•ญ(์˜ˆ: ์ด๋ฒคํŠธ์˜ ์ง€๋ฆฌ์  ์œ„์น˜)์— ๋”ฐ๋ผ ํ™•์žฅ๋˜๋Š” ๋งค์šฐ ํŽธ๋ฆฌํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ์ƒค๋“œ ํ•˜๋‚˜๋ฉด ์ถฉ๋ถ„ํ•˜์ง€๋งŒ ํ™•์žฅํ•  ๋•Œ๋Š” ์ƒํ™ฉ์ด ๋” ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค(๋Š˜ ๊ทธ๋ ‡๋“ฏ์ด). ์•„ํ‚คํ…์ฒ˜๋Š” ๋‚ด๊ฒฐํ•จ์„ฑ์ด ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ํ”„๋กœ๋•์…˜์—์„œ ํ•˜๋‚˜์˜ ๋ฌผ๋ฆฌ์  ์ƒค๋“œ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์–ดํ•˜๋Š” ์‚ฌ๋žŒ์€ ์•„๋งˆ ์•„๋ฌด๋„ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Kafka ์™ธ์—๋„ ๋˜ ๋‹ค๋ฅธ ์ž˜ ์•Œ๋ ค์ง„ ์†”๋ฃจ์…˜์ธ RabbitMQ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ํ”„๋กœ๋•์…˜์—์„œ ์ด๋ฒคํŠธ ๋ถ„์„์„ ์œ„ํ•œ ๋Œ€๊ธฐ์—ด๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค(๊ทธ๋Ÿฐ ๊ฒฝํ—˜์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š”!). ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” AWS Kinesis๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

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

2. ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ

๋ชจ๋“  ์ด๋ฒคํŠธ๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์ ์ ˆํ•œ ๋Œ€๊ธฐ์—ด์— ๋ฐฐ์น˜ํ•œ ํ›„ ์ฒ˜๋ฆฌ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋‘ ๊ฐ€์ง€ ์ฒ˜๋ฆฌ ์˜ต์…˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์€ Apache ์‹œ์Šคํ…œ์—์„œ Spark Streaming์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  Apache ์ œํ’ˆ์€ ํŒŒ์ผ ๋ณต์ œ๋ณธ์ด ์žˆ๋Š” ๋ณด์•ˆ ํŒŒ์ผ ์‹œ์Šคํ…œ์ธ HDFS์— ์žˆ์Šต๋‹ˆ๋‹ค. Spark Streaming์€ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚œ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์€ ์ž์‹ ๋งŒ์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด Python ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜๊ณ  Docker์—์„œ ๋นŒ๋“œํ•œ ํ›„ Kafka ๋Œ€๊ธฐ์—ด์„ ๊ตฌ๋…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ Docker ํ•ธ๋“ค๋Ÿฌ์— ๋„์ฐฉํ•˜๋ฉด ์ฒ˜๋ฆฌ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ•ญ์ƒ ์‹คํ–‰ ์ƒํƒœ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์œ„์—์„œ ์„ค๋ช…ํ•œ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๊ณ  ์ฒ˜๋ฆฌ ์ž์ฒด๋กœ ๋„˜์–ด๊ฐ„๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์„œ๋Š” ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•˜๊ณ  ๊ฐ€๋น„์ง€ ๋ฐ "๊นจ์ง„" ์ด๋ฒคํŠธ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ฆ์„ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ผˆ๋ฒ ๋กœ์Šค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฐ์ดํ„ฐ ๋งคํ•‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ์†Œ์Šค์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณตํ†ต ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€๋˜๊ธฐ ์œ„ํ•ด ์ •๊ทœํ™”๋˜๊ณ  ํ‘œ์ค€ํ™”๋ฉ๋‹ˆ๋‹ค.
์„œ๋ฒ„ ๋ถ„์„ ์‹œ์Šคํ…œ

3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

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

4. ์ง‘๊ณ„

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

5. ํ”„๋ก ํŠธ์—”๋“œ

์ƒ์„ฑ๋œ ์‹œ์Šคํ…œ์— ํ”„๋ŸฐํŠธ์—”๋“œ๋ฅผ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ข‹์€ ์˜ˆ๊ฐ€ ์„œ๋น„์Šค๋‹ค. ๋‹ค์‹œ ๋Œ€์‹œํ•˜๋‹ค๋Š” ๋Œ€์‹œ๋ณด๋“œ ๊ตฌ์ถ•์„ ๋•๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค GUI์ž…๋‹ˆ๋‹ค. ์ƒํ˜ธ์ž‘์šฉ ์ž‘๋™ ๋ฐฉ์‹:

  1. ์‚ฌ์šฉ์ž๊ฐ€ SQL ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  2. ์ด์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ๊ทธ๋Š” ์‚ฌ์ธ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  3. ์ด๋ฅผ ์œ„ํ•œ '์ƒˆ๋กœ์šด ์‹œ๊ฐํ™”'๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์•„๋ฆ„๋‹ค์šด ๊ทธ๋ž˜ํ”„๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค์˜ ์‹œ๊ฐํ™”๋Š” ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๋ฏ€๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๊ณ  ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Redash๋Š” ์ž์ฒด ํ˜ธ์ŠคํŒ…์˜ ๊ฒฝ์šฐ ๋ฌด๋ฃŒ์ด์ง€๋งŒ SaaS์˜ ๊ฒฝ์šฐ ์›” 50๋‹ฌ๋Ÿฌ์˜ ๋น„์šฉ์ด ๋“ญ๋‹ˆ๋‹ค.
์„œ๋ฒ„ ๋ถ„์„ ์‹œ์Šคํ…œ

๊ฒฐ๋ก 

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

์ฝ์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋Œ“๊ธ€๋กœ ์งˆ๋ฌธ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

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