NoSQL์šฉ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„์˜ ํŠน์ง•

์†Œ๊ฐœ

NoSQL์šฉ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„์˜ ํŠน์ง• โ€œ๋‹น์‹ ์€ ๊ทธ ์ž๋ฆฌ์— ๋จธ๋ฌผ๊ธฐ ์œ„ํ•ด ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ๋‹ฌ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์–ด๋”˜๊ฐ€์— ๋„์ฐฉํ•˜๋ ค๋ฉด ์ ์–ด๋„ ๋‘ ๋ฐฐ๋Š” ๋นจ๋ฆฌ ๋‹ฌ๋ ค์•ผ ํ•ด์š”!"
(c) ์ด์ƒํ•œ ๋‚˜๋ผ์˜ ์•จ๋ฆฌ์Šค

์–ผ๋งˆ ์ „ ๊ฐ•์˜๋ฅผ ํ•ด๋‹ฌ๋ผ๋Š” ์š”์ฒญ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋ถ„์„๊ฐ€๋“ค ์ €ํฌ ํšŒ์‚ฌ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„๋ผ๋Š” ์ฃผ์ œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋žœ ์‹œ๊ฐ„ (๋•Œ๋กœ๋Š” ๋ช‡ ๋…„์”ฉ) ํ”„๋กœ์ ํŠธ์— ๋ชฐ๋‘ํ•˜๋‹ค ๋ณด๋ฉด IT ๊ธฐ์ˆ  ์„ธ๊ณ„์—์„œ ์–ด๋–ค ์ผ์ด ๋ฒŒ์–ด์ง€๊ณ  ์žˆ๋Š”์ง€ ์ œ๋Œ€๋กœ ํŒŒ์•…ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ €ํฌ ํšŒ์‚ฌ์—์„œ๋Š” (๋งˆ์นจ๋‚ด ๊ทธ๋ ‡๊ฒŒ ๋˜์—ˆ๋„ค์š”) ๋งŽ์€ ํ”„๋กœ์ ํŠธ์—์„œ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (์ ์–ด๋„ ์•„์ง์€). ๊ทธ๋ž˜์„œ ์ €๋Š” ๊ฐ•์˜์—์„œ HBase๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํŠนํžˆ ์ง‘์ค‘ํ–ˆ๊ณ , NoSQL์„ ์‚ฌ์šฉํ•ด ๋ณธ ์ ์ด ์—†๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ง‘์ค‘์ ์œผ๋กœ ์ „๋‹ฌํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ช‡ ๋…„ ์ „์— ์ฝ์—ˆ๋˜ ์‚ฌ๋ก€๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„์˜ ๋ช‡ ๊ฐ€์ง€ ํŠน์ง•์„ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. Amandeep Khurana์˜ "HB ase ์Šคํ‚ค๋งˆ ์„ค๊ณ„ ์†Œ๊ฐœ" ๊ธฐ์‚ฌ์—์„œ์˜ˆ๋ฅผ ๋ถ„์„ํ•  ๋•Œ, ์ €๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ•ด๊ฒฐ์ฑ…์„ ๋น„๊ตํ•˜์—ฌ ์ฒญ์ค‘์—๊ฒŒ ์ฃผ์š” ์•„์ด๋””์–ด๋ฅผ ๋” ์ž˜ ์ „๋‹ฌํ•˜๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ "์ง€๋ฃจํ•ด์„œ" (5์›”์˜ ๊ธด ๊ฒฉ๋ฆฌ ๊ธฐ๊ฐ„์ด ํŠนํžˆ๋‚˜ ์ด๋Ÿฐ ์ƒํ™ฉ์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค) ์Šค์Šค๋กœ์—๊ฒŒ ๋ฌผ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ก ์  ๊ณ„์‚ฐ์ด ์‹ค์ œ ์ƒํ™ฉ์— ์–ผ๋งˆ๋‚˜ ๋ถ€ํ•ฉํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ์‚ฌ์‹ค, ์ด ๊ธ€์˜ ์•„์ด๋””์–ด๋Š” ๋ฐ”๋กœ ์ด๋ ‡๊ฒŒ ํƒ„์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋žซ๋™์•ˆ NoSQL์„ ์‚ฌ์šฉํ•ด ์˜จ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด NoSQL์—์„œ ์ƒˆ๋กœ์šด ๊ฒƒ์„ ๋ฐฐ์šฐ์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(๋”ฐ๋ผ์„œ ๊ธ€์˜ ์ ˆ๋ฐ˜์€ ๋ฐ”๋กœ ๊ฑด๋„ˆ๋›ธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค). ํ•˜์ง€๋งŒ ๋ถ„์„๊ฐ€์•„์ง NoSQL์„ ๊ธด๋ฐ€ํ•˜๊ฒŒ ๋‹ค๋ฃจ์–ด ๋ณธ ์ ์ด ์—†๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” HBase๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์„ค๊ณ„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ธฐ๋ณธ์ ์ธ ์‚ฌํ•ญ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ์œ ์šฉํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ ๋ถ„์„

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

์šฐ๋ฆฌ๊ฐ€ ๊ณ„์†ํ•ด์„œ ์—ฐ๊ตฌํ•  ๋‹ค์Œ์˜ "ํ•ฉ์„ฑ" ๋ฌธ์ œ๋ฅผ ๊ณ ๋ คํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

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

  • ์‚ฌ์šฉ์ž A๊ฐ€ ์‚ฌ์šฉ์ž B๋ฅผ ์ฝ๊ณ  ์žˆ๋Š”์ง€(์ฝ๊ธฐ ํŒจํ„ด)์— ๋Œ€ํ•œ ์งˆ๋ฌธ์— ๋‹ตํ•˜์„ธ์š”.
  • ์‚ฌ์šฉ์ž A๊ฐ€ ์‚ฌ์šฉ์ž B๋ฅผ ๊ตฌ๋…/๊ตฌ๋… ์ทจ์†Œํ•  ๋•Œ ๋งํฌ ์ถ”๊ฐ€/์ œ๊ฑฐ ํ—ˆ์šฉ(๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ํ…œํ”Œ๋ฆฟ)

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

USER_ID
์นœ๊ตฌ_์•„์ด๋””

Vasya
ํŽ˜ํ‹ฐ

Vasya
ะžะปั

๋ช…ํ™•์„ฑ๊ณผ ๋” ๋‚˜์€ ์ดํ•ด๋ฅผ ์œ„ํ•ด ์—ฌ๊ธฐ์™€ ๋” ๋‚˜์•„๊ฐ€ ID ๋Œ€์‹  ์ด๋ฆ„์„ ํ‘œ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

HBase์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ์‚ฌํ•ญ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž ID๋ฅผ ํ‚ค๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. "์นœ๊ตฌ ID๋ฅผ ์–ด๋””์— ์–ด๋–ป๊ฒŒ ์ €์žฅํ•  ๊ฒƒ์ธ๊ฐ€?"๋ผ๋Š” ์ฃผ์ œ์—์„œ ๊ฐ€์žฅ ๋จผ์ € ๋– ์˜ค๋ฅด๋Š” ์ƒ๊ฐ์€ ์—ด์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ€์žฅ ๋ช…ํ™•ํ•˜๊ณ  "์ˆœ์ง„ํ•œ" ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค(์ด๋ฆ„์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค). ์˜ต์…˜ 1(๊ธฐ๋ณธ๊ฐ’), ์ถ”ํ›„ ์ฐธ๊ณ ์šฉ์œผ๋กœ):

๋กœ์šฐํ‚ค
์—ฐ์‚ฌ

Vasya
1: ํŽ˜ํ‹ฐ์•ผ
2: ์˜ฌ๋ฆฌ์•ผ
3: ๋‹ค์ƒค

ํŽ˜ํ‹ฐ
1: ๋งˆ์ƒค
2: ๋ฐ”์ƒค

์—ฌ๊ธฐ์„œ ๊ฐ ํ–‰์€ ๋„คํŠธ์›Œํฌ์˜ ํ•œ ์‚ฌ์šฉ์ž์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์—ด์—๋Š” ์นœ๊ตฌ ์ˆ˜์— ๋”ฐ๋ผ 1, 2, โ€ฆ๋ผ๋Š” ์ด๋ฆ„์ด ์ง€์ •๋˜๊ณ , ๊ฐ ์—ด์—๋Š” ์นœ๊ตฌ์˜ ID๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ํ–‰์˜ ์—ด ๊ฐœ์ˆ˜๋Š” ์„œ๋กœ ๋‹ค๋ฅด๋‹ค๋Š” ์ ์— ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์œ„ ๊ทธ๋ฆผ์˜ ์˜ˆ์—์„œ ํ•œ ํ–‰์—๋Š” ์„ธ ๊ฐœ์˜ ์—ด(1, 2, 3)์ด ์žˆ๊ณ , ๋‘ ๋ฒˆ์งธ ํ–‰์—๋Š” ๋‘ ๊ฐœ์˜ ์—ด(1๊ณผ 2)๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—†๋Š” HBase์˜ ๋‘ ๊ฐ€์ง€ ์†์„ฑ์„ ์ง์ ‘ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์—ด ๊ตฌ์„ฑ์„ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ๋Šฅ(์นœ๊ตฌ ์ถ”๊ฐ€ -> ์—ด ์ถ”๊ฐ€, ์นœ๊ตฌ ์ œ๊ฑฐ -> ์—ด ์ œ๊ฑฐ)
  • ๋‹ค๋ฅธ ํ–‰์—๋Š” ๋‹ค๋ฅธ ์—ด ๊ตฌ์„ฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž‘์—… ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ค€์ˆ˜ํ•˜๋Š”์ง€ ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ: Vasya๊ฐ€ Olya์— ๊ฐ€์ž…ํ–ˆ๋Š”์ง€ ์ดํ•ดํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ฝ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ๋ผ์ธ RowKey = "Vasya" ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Olya๋ฅผ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€ ์—ด ๊ฐ’์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” Olya๋ฅผ ๋งŒ๋‚˜์ง€ ์•Š๋Š” ๋ชจ๋“  ์—ด ๊ฐ’์„ ๋ฐ˜๋ณตํ•˜์—ฌ False๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์„ธ๋ถ€ ์ •๋ณด ํŽธ์ง‘: ์นœ๊ตฌ ์ถ”๊ฐ€: ๋น„์Šทํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ๋„ ๋นผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ๋ผ์ธ RowKey = "Vasya" ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นœ๊ตฌ์˜ ์ด ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ์นœ๊ตฌ์˜ ID๋ฅผ ์ž…๋ ฅํ•  ์—ด ๋ฒˆํ˜ธ๋ฅผ ๊ฒฐ์ •ํ•˜๋ ค๋ฉด ์ด ์ด ์นœ๊ตฌ ์ˆ˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ€๊ฒฝ ์‚ฌํ•ญ: ์นœ๊ตฌ ์‚ญ์ œ:
    • ๋นผ์•ผ ํ•ฉ๋‹ˆ๋‹ค ์ „์ฒด ๋ผ์ธ RowKey = "Vasya" ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ญ์ œ๋˜๋Š” ์นœ๊ตฌ๊ฐ€ ๊ธฐ๋ก๋œ ์—ด์„ ์ฐพ์Šต๋‹ˆ๋‹ค.
    • ๋‹ค์Œ์œผ๋กœ, ์นœ๊ตฌ๋ฅผ ์‚ญ์ œํ•œ ํ›„์—๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ์—ด๋กœ "์ด๋™"ํ•˜์—ฌ ๋ฒˆํ˜ธ ๋งค๊ธฐ๊ธฐ์— "๊ฐ„๊ฒฉ"์ด ์ƒ๊ธฐ์ง€ ์•Š๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

  • ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ: ์ „์ฒด ํ–‰์„ ๋นผ๊ณ  ๊ทนํ•œ๊ฐ’ ๋‚ด์˜ ๋ชจ๋“  ์—ด์„ ์ •๋ ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋น„์šฉ์˜ ์ƒํ•œ ์ถ”์ •๊ฐ’์€ ์•ฝ O(n)์ด ๋ฉ๋‹ˆ๋‹ค.
  • ์„ธ๋ถ€ ์ •๋ณด ํŽธ์ง‘: ์นœ๊ตฌ ์ถ”๊ฐ€: ์นœ๊ตฌ์˜ ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜๋ ค๋ฉด ํ–‰์˜ ๋ชจ๋“  โ€‹โ€‹์—ด์„ ๋ฐ˜๋ณตํ•œ ๋‹ค์Œ ์ƒˆ ์—ด์„ ์‚ฝ์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค => O(n)
  • ๋ณ€๊ฒฝ ์‚ฌํ•ญ: ์นœ๊ตฌ ์‚ญ์ œ:
    • ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•œ๊ณ„ ๋‚ด์˜ ๋ชจ๋“  ์—ด์„ ์‚ดํŽด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค => O(n)
    • ์—ด์„ ์‚ญ์ œํ•œ ํ›„์—๋Š” "์ด๋™"ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ "์ •๋ฉด"์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ํ•œ๊ณ„์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ ์ตœ๋Œ€ (n-1)๊ฐœ์˜ ์—ฐ์‚ฐ์ด ๋” ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ถ€๋ถ„๊ณผ ์‹ค์ œ์ ์ธ ๋ถ€๋ถ„์—์„œ๋Š” ๋‹ค๋ฅธ ์ ‘๊ทผ๋ฒ•์„ ์ ์šฉํ•˜์—ฌ "์˜์‚ฌ ์ด๋™"์„ ๊ณ ์ •๋œ ์—ฐ์‚ฐ ํšŸ์ˆ˜๋กœ ๊ตฌํ˜„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, n์— ๊ด€๊ณ„์—†์ด ์ƒ์ˆ˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ์ด ์ƒ์ˆ˜ ์‹œ๊ฐ„(์ •ํ™•ํžˆ O(2))์€ O(n)์— ๋น„ํ•ด ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ๋ฒ•์€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. "๋งˆ์ง€๋ง‰" ์—ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋ ค๋Š” ์—ด๋กœ ๋ณต์‚ฌํ•œ ๋‹ค์Œ ๋งˆ์ง€๋ง‰ ์—ด์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
      NoSQL์šฉ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„์˜ ํŠน์ง•

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

๋กœ์šฐํ‚ค
์—ฐ์‚ฌ

Vasya
1: ํŽ˜ํ‹ฐ์•ผ
2: ์˜ฌ๋ฆฌ์•ผ
3: ๋‹ค์ƒค
์นด์šดํŠธ: 3

ํŽ˜ํ‹ฐ
1: ๋งˆ์ƒค
2: ๋ฐ”์ƒค

์นด์šดํŠธ: 2

์ฒซ ๋ฒˆ์งธ ์˜ต์…˜๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ:

  • ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ: "Vasya๊ฐ€ Olya๋ฅผ ์ฝ๋‚˜์š”?"๋ผ๋Š” ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ์–ป์œผ๋ ค๋ฉด ์•„๋ฌด๊ฒƒ๋„ ๋ณ€ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค => O(n)
  • ์„ธ๋ถ€ ์ •๋ณด ํŽธ์ง‘: ์นœ๊ตฌ ์ถ”๊ฐ€: ์ƒˆ ์นœ๊ตฌ ์ถ”๊ฐ€ ์ž‘์—…์„ ๊ฐ„์†Œํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ „์ฒด ํ–‰์„ ์ฝ๊ณ  ํ•ด๋‹น ์—ด์„ ๋ฐ˜๋ณตํ•  ํ•„์š”๊ฐ€ ์—†๊ณ , "count" ์—ด์˜ ๊ฐ’๋งŒ ๊ฐ€์ ธ์™€ ์ƒˆ ์นœ๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•  ์—ด ๋ฒˆํ˜ธ๋ฅผ ์ฆ‰์‹œ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ณ„์‚ฐ ๋ณต์žก๋„๊ฐ€ O(1)๋กœ ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ€๊ฒฝ ์‚ฌํ•ญ: ์นœ๊ตฌ ์‚ญ์ œ: ์นœ๊ตฌ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์ด ์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ์…€ ์™ผ์ชฝ์œผ๋กœ "์ด๋™"ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” I/O ์ž‘์—… ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‚ญ์ œํ•ด์•ผ ํ•  ์—ด์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์—ด์„ ๋ฐ˜๋ณตํ•ด์•ผ ํ•˜๋ฏ€๋กœ => O(n)
  • ๋ฐ˜๋ฉด์—, ์ด์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๋•Œ๋งˆ๋‹ค "count" ์—ด์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜์ง€๋งŒ ์ด ์ž‘์—…์—๋Š” ์ผ์ •ํ•œ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋ฉฐ, ์ด๋Š” O-์‹ฌ๋ณผ๋ฆญ ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด์—์„œ ๋ฌด์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „๋ฐ˜์ ์œผ๋กœ ์˜ต์…˜ 2๊ฐ€ ์กฐ๊ธˆ ๋” ์ตœ์ ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ "ํ˜๋ช… ๋Œ€์‹  ์ง„ํ™”"์— ๋” ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. "ํ˜๋ช…"์„ ์ผ์œผํ‚ค๋ ค๋ฉด ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ต์…˜ 3(์—ด).
๋ชจ๋“  ๊ฒƒ์„ ๋’ค์ง‘์–ด ๋ณด์ž: ์ž„๋ช…ํ•˜์ž ์—ด ์ด๋ฆ„ ์‚ฌ์šฉ์ž ID! ์นผ๋Ÿผ์— ์“ฐ์ผ ๋‚ด์šฉ์€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 1๋ฒˆ์œผ๋กœ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค(์ผ๋ฐ˜์ ์œผ๋กœ ์œ ์šฉํ•œ ์ •๋ณด, ์˜ˆ๋ฅผ ๋“ค์–ด "๊ฐ€์กฑ/์นœ๊ตฌ/๊ธฐํƒ€" ๊ทธ๋ฃน). ์ด๋Ÿฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์€ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ ๊ฒฝํ—˜์ด ์—†๋Š” "์ผ๋ฐ˜์ธ"์—๊ฒŒ๋Š” ๋†€๋ผ์šธ ์ˆ˜ ์žˆ์ง€๋งŒ, HBase์˜ ์ž ์žฌ๋ ฅ์„ ์ด ์ž‘์—…์—์„œ ํ›จ์”ฌ ๋” ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค๋‹ˆ๋‹ค.

๋กœ์šฐํ‚ค
์—ฐ์‚ฌ

Vasya
ํŽ˜ํ‹ฐ์•ผ: 1
์˜ฌ๋ฆฌ์•ผ: 1
๋‹ค์ƒค: 1

ํŽ˜ํ‹ฐ
๋งˆ์ƒค: 1
๋ฐ”์ƒค: 1

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์ ์„ ๋™์‹œ์— ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๊ตฌ์กฐ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ๊ณ„์‚ฐ ๋ณต์žก๋„๋ฅผ ์ถ”์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ: Vasya๊ฐ€ Olya์— ๊ฐ€์ž…ํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ์งˆ๋ฌธ์— ๋‹ตํ•˜๋ ค๋ฉด "Olya" ์—ด ํ•˜๋‚˜๋งŒ ์ฝ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์ž…ํ–ˆ๋‹ค๋ฉด ๋‹ต์€ True์ด๊ณ , ๊ฐ€์ž…ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด False์ž…๋‹ˆ๋‹ค => O(1)
  • ์„ธ๋ถ€ ์ •๋ณด ํŽธ์ง‘: ์นœ๊ตฌ ์ถ”๊ฐ€: ์นœ๊ตฌ ์ถ”๊ฐ€: ์ƒˆ๋กœ์šด ์—ด "์นœ๊ตฌ ID"๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค => O(1)
  • ๋ณ€๊ฒฝ ์‚ฌํ•ญ: ์นœ๊ตฌ ์‚ญ์ œ: "์นœ๊ตฌ ID" ์—ด๋งŒ ์ œ๊ฑฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค => O(1)

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

์ด ๋ถ€๋ถ„์„ ๊ณ ๋ฏผํ•ด ๋ณด๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ์‹œ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ณ  I/O ์ž‘์—…์„ ์ค„์ด๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํ•œ ๊ฑธ์Œ ๋” ๋‚˜์•„๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์ „์ฒด ์ •๋ณด๋ฅผ ํ–‰ ํ‚ค์— ์ง์ ‘ ์ €์žฅํ•˜๋ฉด ์–ด๋–จ๊นŒ์š”? ์ฆ‰, ํ‚ค๋ฅผ userID.friendID์ฒ˜๋Ÿผ ๋ณตํ•ฉ ํ‚ค๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํ–‰ ์—ด์„ ์ฝ์„ ํ•„์š”๋„ ์—†์Šต๋‹ˆ๋‹ค(์˜ต์…˜ 4(ํ–‰)):

๋กœ์šฐํ‚ค
์—ฐ์‚ฌ

๋ฐ”์ƒค.ํŽ˜ํ‹ฐ์•„
ํŽ˜ํ‹ฐ์•ผ: 1

๋ฐ”์ƒค.์˜ฌ์•ผ
์˜ฌ๋ฆฌ์•ผ: 1

๋ฐ”์ƒค.๋‹ค์ƒค
๋‹ค์ƒค: 1

ํŽ˜ํ‹ฐ์•„.๋งˆ์ƒค
๋งˆ์ƒค: 1

ํŽ˜ํ‹ฐ์•ผ.๋ฐ”์ƒค
๋ฐ”์ƒค: 1

์ด๋Ÿฌํ•œ ๊ตฌ์กฐ์—์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ํ‰๊ฐ€๋Š” ์ด์ „ ๋ณ€ํ˜•๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ O(1)์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณ€ํ˜• 3๊ณผ์˜ ์ฐจ์ด์ ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ž…์ถœ๋ ฅ ์ž‘์—… ํšจ์œจ์„ฑ์—๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋กœ์šฐํ‚ค
์—ฐ์‚ฌ

dc084ef00e94aef49be885f9b01f51c01918fa783851db0dc1f72f83d33a5994
ํŽ˜ํ‹ฐ์•ผ: 1

dc084ef00e94aef49be885f9b01f51c0f06b7714b5ba522c3cf51328b66fe28a
์˜ฌ๋ฆฌ์•ผ: 1

dc084ef00e94aef49be885f9b01f51c00d2c2e5d69df6b238754f650d56c896a
๋‹ค์ƒค: 1

1918fa783851db0dc1f72f83d33a59949ee3309645bd2c0775899fca14f311e1
๋งˆ์ƒค: 1

1918fa783851db0dc1f72f83d33a5994dc084ef00e94aef49be885f9b01f51c0
๋ฐ”์ƒค: 1

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

์นœ๊ตฌ ์ถ”๊ฐ€
์นœ๊ตฌ๋ฅผ ์ฒดํฌํ•˜๋‹ค
์นœ๊ตฌ ์‚ญ์ œํ•˜๊ธฐ

์˜ต์…˜ 1(๊ธฐ๋ณธ๊ฐ’)
O (N)
O (N)
O (N)

์˜ต์…˜ 2(๊ฐœ์ˆ˜)
O (1)
O (N)
O (N)

์˜ต์…˜ 3(์—ด)
O (1)
O (1)
O (1)

์˜ต์…˜ 4(ํ–‰)
O (1)
O (1)
O (1)

์˜ต์…˜ 5(ํ•ด์‹œ)
O (1)
O (1)
O (1)

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

์‹คํ—˜ ์ค€๋น„

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

  • ์ƒˆ๋กœ์šด ์นœ๊ตฌ ํ•œ ๋ช… ์ถ”๊ฐ€ํ•˜๊ธฐ
  • ์‚ฌ์šฉ์ž A๊ฐ€ ์‚ฌ์šฉ์ž B์˜ ์นœ๊ตฌ์ธ์ง€ ํ™•์ธํ•˜์„ธ์š”
  • ์นœ๊ตฌ ํ•œ ๋ช… ์‚ญ์ œ

๋”ฐ๋ผ์„œ ์ดˆ๊ธฐ ๋ช…์„ธ์„œ์— ๋ช…์‹œ๋œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•  ๋•Œ ๊ฒ€์ฆ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

5๊ฐ€์ง€ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๋ณ€ํ˜• ๊ฐ๊ฐ๊ณผ ๋‹ค์–‘ํ•œ ๊ทœ๋ชจ์˜ ์†Œ์…œ ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•ด ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๊ฐ€ ์„ฑ์žฅํ•จ์— ๋”ฐ๋ผ ์‹œ๊ฐ„์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 5n ๋‚ด์—์„œ ๋„คํŠธ์›Œํฌ์˜ ์—ฐ๊ฒฐ๊ณผ ํ™•์ธํ•  ์‚ฌ์šฉ์ž ๋ชฉ๋ก์€ XNUMX๊ฐ€์ง€ ๋ณ€ํ˜• ๋ชจ๋‘์—์„œ ๋‹น์—ฐํžˆ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋” ๋‚˜์€ ์ดํ•ด๋ฅผ ์œ„ํ•ด, n=5์— ๋Œ€ํ•ด ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ์˜ ์˜ˆ๋ฅผ ์•„๋ž˜์— ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ž‘์„ฑ๋œ "์ƒ์„ฑ๊ธฐ"๋Š” ์ถœ๋ ฅ์—์„œ โ€‹โ€‹์„ธ ๊ฐœ์˜ ID ์‚ฌ์ „์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • ์ฒซ ๋ฒˆ์งธ๋Š” ์‚ฝ์ž…์šฉ์ž…๋‹ˆ๋‹ค
  • ๋‘ ๋ฒˆ์งธ๋Š” ํ™•์ธ์šฉ์ž…๋‹ˆ๋‹ค
  • ์„ธ ๋ฒˆ์งธ๋Š” ์ œ๊ฑฐ์šฉ์ž…๋‹ˆ๋‹ค

{0: [1], 1: [4, 5, 3, 2, 1], 2: [1, 2], 3: [2, 4, 1, 5, 3], 4: [2, 1]} # ะฒัะตะณะพ 15 ะดั€ัƒะทะตะน

{0: [1, 10800], 1: [5, 10800, 2, 10801, 4, 10802], 2: [1, 10800], 3: [3, 10800, 1, 10801, 5, 10802], 4: [2, 10800]} # ะฒัะตะณะพ 18 ะฟั€ะพะฒะตั€ัะตะผั‹ั… ััƒะฑัŠะตะบั‚ะพะฒ

{0: [1], 1: [1, 3, 2, 5, 4], 2: [1, 2], 3: [4, 1, 2, 3, 5], 4: [1, 2]} # ะฒัะตะณะพ 15 ะดั€ัƒะทะตะน

๋ณด์‹œ๋‹ค์‹œํ”ผ, ๊ฒ€์ฆ์„ ์œ„ํ•ด ์‚ฌ์ „์— ์žˆ๋Š” 10๋ณด๋‹ค ํฐ ๋ชจ๋“  ID๋Š” ๋ช…๋ฐฑํžˆ False ๊ฒฐ๊ณผ๋ฅผ ๋‚ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. "์นœ๊ตฌ"์˜ ์‚ฝ์ž…, ๊ฒ€์ฆ ๋ฐ ์‚ญ์ œ๋Š” ์‚ฌ์ „์— ์ง€์ •๋œ ์ •ํ™•ํ•œ ์ˆœ์„œ์— ๋”ฐ๋ผ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

์ด ์‹คํ—˜์€ ๋…ธํŠธ๋ถ์—์„œ ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Windows 10HBase๋Š” ํ•˜๋‚˜์˜ Docker ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋˜๊ณ , Python๊ณผ Jupyter Notebook์€ ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Docker์—๋Š” 2๊ฐœ์˜ CPU ์ฝ”์–ด์™€ 2GB์˜ RAM์ด ํ• ๋‹น๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "๋”๋ฏธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜" ์‹œ๋ฎฌ๋ ˆ์ด์…˜๊ณผ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ๋ฐ ์‹œ๊ฐ„ ์ธก์ • ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ๋กœ์ง์€ Python์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•ดํ”ผ๋ฒ ์ด์Šค, ์˜ต์…˜ 5์— ๋Œ€ํ•œ ํ•ด์‹œ(MD5)๋ฅผ ๊ณ„์‚ฐํ•˜๋ ค๋ฉด - hashlib

ํŠน์ • ๋…ธํŠธ๋ถ์˜ ์ปดํ“จํŒ… ์„ฑ๋Šฅ์„ ๊ณ ๋ คํ•˜์—ฌ ์ „์ฒด ํ…Œ์ŠคํŠธ ์ฃผ๊ธฐ(๋ชจ๋“  n์— ๋Œ€ํ•œ ๋ชจ๋“  ์˜ต์…˜์— ๋Œ€ํ•œ ๋ชจ๋“  ์‹œ๋‚˜๋ฆฌ์˜ค)์˜ ์ด ์‹คํ–‰ ์‹œ๊ฐ„์ด ํ•œ ๋ฒˆ์˜ ํ‹ฐํŒŒํ‹ฐ(ํ‰๊ท  10๋ถ„) ๋™์•ˆ ์—ฌ์ „ํžˆ ์–ด๋А ์ •๋„ ํ•ฉ๋ฆฌ์ ์ด๊ณ  ์ ํ•ฉํ•œ ๊ฒฝ์šฐ n = 30, 170, โ€ฆ 15์— ๋Œ€ํ•ด ์‹คํ—˜์ ์œผ๋กœ ์ถœ์‹œ๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

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

์‹คํ—˜ ๊ฒฐ๊ณผ

์ฒซ ๋ฒˆ์งธ ์‹คํ—˜์€ ์นœ๊ตฌ ๋ชฉ๋ก์„ ์ฑ„์šฐ๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜ ๊ทธ๋ž˜ํ”„์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
NoSQL์šฉ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„์˜ ํŠน์ง•
์˜ต์…˜ 3~5๋Š” ๋„คํŠธ์›Œํฌ ๊ทœ๋ชจ์˜ ์„ฑ์žฅ์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ์‚ฌ์‹ค์ƒ ์ผ์ •ํ•œ "๋น„์ฆˆ๋‹ˆ์Šค ์šด์˜" ์‹œ๊ฐ„๊ณผ ๋ˆˆ์— ๋„๋Š” ์„ฑ๋Šฅ ์ฐจ์ด๋ฅผ ๋ณด์ผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.
์˜ต์…˜ 2๋„ ์ผ์ •ํ•˜์ง€๋งŒ ์•ฝ๊ฐ„ ๋” ๋‚ฎ์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๋ฉฐ, ์˜ต์…˜ 2~3์— ๋น„ํ•ด ๊ฑฐ์˜ ์ •ํ™•ํžˆ ๋‘ ๋ฐฐ ๋” ๋†’์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ด๋ก ๊ณผ ์ผ์น˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŒ์กฑ์Šค๋Ÿฝ์ง€ ์•Š์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์—์„œ๋Š” HBase์™€์˜ ์ž…์ถœ๋ ฅ ์ž‘์—… ์ˆ˜๊ฐ€ ์ •ํ™•ํžˆ ๋‘ ๋ฐฐ ๋” ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ณธ ํ…Œ์ŠคํŠธ๊ฐ€ ์ด๋ก ์ ์œผ๋กœ ์šฐ์ˆ˜ํ•œ ์ •ํ™•๋„๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฐ„์ ‘์ ์ธ ์ฆ๊ฑฐ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ต์…˜ 1์€ ๊ฐ€์žฅ ๋А๋ฆด ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋ฉฐ, ๋„คํŠธ์›Œํฌ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์นœ๊ตฌ ํ•œ ๋ช…์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์ด ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๋ชจ์Šต์„ ๋ณด์ž…๋‹ˆ๋‹ค.
์ด์ œ ๋‘ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ์˜ ๊ฒฐ๊ณผ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
NoSQL์šฉ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„์˜ ํŠน์ง•
๋ณ€ํ˜• 3~5๋Š” ์˜ˆ์ƒ๋Œ€๋กœ ๋„คํŠธ์›Œํฌ ํฌ๊ธฐ์— ๊ด€๊ณ„์—†์ด ์ƒ์ˆ˜ ์‹œ๊ฐ„์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ณ€ํ˜• 1๊ณผ 2๋Š” ๋„คํŠธ์›Œํฌ ํฌ๊ธฐ ์ฆ๊ฐ€์— ๋”ฐ๋ผ ์‹œ๊ฐ„์ด ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋ฉฐ ์œ ์‚ฌํ•œ ์„ฑ๋Šฅ์„ ๋ณด์ž…๋‹ˆ๋‹ค. ๋”์šฑ์ด ๋ณ€ํ˜• 2๋Š” ์•ฝ๊ฐ„ ๋” ๋А๋ฆฐ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ถ”๊ฐ€ ์—ด "count"๋ฅผ ์ฝ๊ณ  ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ธ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ, ์ด๋Š” n์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ๋”์šฑ ๋‘๋“œ๋Ÿฌ์ง‘๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋น„๊ต์˜ ์ •ํ™•๋„๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐ๋ก ์„ ๋‚ด๋ฆฌ์ง€๋Š” ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ด๋Ÿฌํ•œ ๋น„์œจ(๋ณ€ํ˜• 1๊ณผ 2 ์ค‘ ์–ด๋А ๊ฒƒ์ด ๋” ๋น ๋ฅธ์ง€)์€ ์ถœ์‹œ ์‹œ์ ๋งˆ๋‹ค (์ข…์†์„ฑ์˜ ๋ณธ์งˆ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„) ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ ๊ทธ๋ž˜ํ”„๋Š” ์ œ๊ฑฐ ํ…Œ์ŠคํŠธ์˜ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

NoSQL์šฉ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„์˜ ํŠน์ง•

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

์˜ˆ์ƒ๋Œ€๋กœ ์˜ต์…˜ 1๊ณผ 2๋Š” ์‹œ๊ฐ„์ด ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜ต์…˜ 2๋Š” ์นด์šดํŠธ ์—ด์„ "์ฒ˜๋ฆฌ"ํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€์ ์ธ ์ž…์ถœ๋ ฅ ์ž‘์—…์œผ๋กœ ์ธํ•ด ์˜ต์…˜ 1๋ณด๋‹ค ์ง€์†์ ์œผ๋กœ ๋А๋ฆฝ๋‹ˆ๋‹ค.

์‹คํ—˜์˜ ์ผ๋ฐ˜์ ์ธ ๊ฒฐ๋ก :

  • ์˜ต์…˜ 3~5๋Š” HBase๋ฅผ ํ™œ์šฉํ•˜๋ฏ€๋กœ ํšจ์œจ์„ฑ์ด ๋” ๋†’์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ฑ๋Šฅ์€ ์ผ์ •ํ•˜๊ฒŒ ๋‹ค๋ฅด๋ฉฐ ๋„คํŠธ์›Œํฌ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ณ€ํ˜• 4์™€ 5์˜ ์ฐจ์ด๋Š” ๊ธฐ๋ก๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ๋ณ€ํ˜• 5๋ฅผ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์Šคํƒ ๋“œ์˜ ์„ฑ๋Šฅ ํŠน์„ฑ์„ ๊ณ ๋ คํ–ˆ์„ ๋•Œ, ์‚ฌ์šฉ๋œ ์‹คํ—˜ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์ฐจ์ด๋ฅผ ๋“œ๋Ÿฌ๋‚ด์ง€ ๋ชปํ–ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "๋น„์ฆˆ๋‹ˆ์Šค ์šด์˜"์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์ด์ „์— ์–ป์€ ๋ชจ๋“  ์˜ต์…˜์— ๋Œ€ํ•œ ์ด๋ก ์  ๊ณ„์‚ฐ์„ ์ „๋ฐ˜์ ์œผ๋กœ ํ™•์ธ์‹œ์ผœ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

์ปคํŠผ์ฝœ

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

๊ฒฐ๋ก ์ ์œผ๋กœ HBase์—์„œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์„ค๊ณ„ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ๊ถŒ์žฅ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—… ๊ฒฝํ—˜์„ ์ ‘์–ด๋‘๊ณ  "๊ณ„๋ช…"์„ ๊ธฐ์–ตํ•˜์„ธ์š”.

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

์ถœ์ฒ˜ : habr.com

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster