[Neo4j] Graph Database๋ž€? RDBMS์™€ ๋น„๊ต, neo4j ๋„์ž… ์ด์œ 

1. ๊ฐœ์š”

RDBMS๋งŒ ์จ๋ณด๋˜ ๋‚˜์—๊ฒŒ Graph Database๋ฅผ ์“ธ ๊ธฐํšŒ๊ฐ€ ์ฐพ์•„์™”๋‹ค. ์™œ Graph Database๋ฅผ ๋„์ž…ํ•˜๊ธฐ๋กœ ํ–ˆ๋Š”์ง€์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๊ณ ์ž ์ด ๊ธ€์„ ์“ด๋‹ค.

 

4ํ•™๋…„์ด ๋˜์—ˆ๊ณ  ๋‚˜๋Š” ์กธ์—… ์ž‘ํ’ˆ ์ฃผ์ œ๋กœ ์ปจํ…์ธ  ์ •๋ณด๋ฅผ ํ™œ์šฉํ•œ ๊ฐœ์ธํ™” POI ์ถ”์ฒœ ์„œ๋น„์Šค ๋กœ ์„ ์ •ํ•˜์˜€๋‹ค.

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

 

ai ํ•™์Šต ๋ฐ์ดํ„ฐ๋กœ yelp์˜ ์˜คํ”ˆ ๋ฐ์ดํ„ฐ์…‹์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์›น ๊ด€๋ จ๋œ ํ”„๋กœ์ ํŠธ๋งŒ ์ง„ํ–‰ํ•˜๋‹ค ai, ml๊ณผ ์„ž์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ˆ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ์–ด๋งˆ๋ฌด์‹œํ–ˆ๋‹ค. 

 

์ •์  ํŒŒ์ผ์ธ json ๋ฐ์ดํ„ฐ๋ฅผ Cloud DB์— ์˜ฌ๋ฆฌ๊ณ  AI, ML์„ ๋‹ด๋‹นํ•˜๋Š” ํŒ€์›๋“ค์ด ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ ค ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š”๊ฒŒ ๋‚˜์˜ ์ฒซ ์—…๋ฌด์ด๋‹ค. ์ด์ œ DB๋ฅผ ์„ ํƒํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๋ฐ์ดํ„ฐ ๊ฐ„ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•ด์„œ ์ถ”์ฒœ์ด ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— GDB๋ฅผ ์จ์•ผํ•˜๋‚˜ ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ์šฐ์„  ์žฅ๋‹จ์  ๋น„๊ต ํ›„ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์— ์–ด์šธ๋ฆฌ๋Š” DB๋ฅผ ๋„์ž…ํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. 

 

 

 

 

 

2. Graph Database ๋ž€? (GDB)

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

 

๋…ธ๋“œ

๋…ธ๋“œ๋Š” ๋ฐ์ดํ„ฐ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ์ •์ ์ด๋‹ค. ๊ฐ ๋…ธ๋“œ์—๋Š” ์ˆ˜์™€ ์œ ํ˜•์— ์ œํ•œ์ด ์—†๋Š” ๊ด€๊ณ„๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค. 

 

์—ฃ์ง€

์—ฃ์ง€๋Š” ๋…ธ๋“œ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฃ์ง€๋Š” ์ƒ์œ„-ํ•˜์œ„ ๊ด€๊ณ„, ์ž‘์—… ๋ฐ ์†Œ์œ ๊ถŒ์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ผ๋Œ€๋‹ค ๊ด€๊ณ„์™€ ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„๋ฅผ ๋ชจ๋‘ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์—ฃ์ง€์—๋Š” ํ•ญ์ƒ ์‹œ์ž‘ ๋…ธ๋“œ, ์ข…๋ฃŒ ๋…ธ๋“œ, ์œ ํ˜• ๋ฐ ๋ฐฉํ–ฅ์ด ์žˆ๋‹ค.

 

์†์„ฑ

๊ฐ ๋…ธ๋“œ์—๋Š” ํ•ด๋‹น ๋…ธ๋“œ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์†์„ฑ์ด ์žˆ๋‹ค. ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์—ฃ์ง€์—๋„ ์†์„ฑ์ด ํฌํ•จ๋œ๋‹ค. ์†์„ฑ์ด ์žˆ๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ์†์„ฑ ๊ทธ๋ž˜ํ”„๋ผ๊ณ ๋„ ํ•œ๋‹ค.

 

 

 

 

ํ•˜๋‚˜์˜ Node๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ด€๊ณ„์˜ ์ˆ˜์™€ ์ข…๋ฅ˜์˜ ์ œํ•œ์€ ์—†๋‹ค. ๋˜ํ•œ, GraphDB์˜ Graph๋Š” ํŠน์ • Edge์˜ ์œ ํ˜• ๋˜๋Š” ์ „์ฒด Graph๋ฅผ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค. GraphDB์—์„œ Node๊ฐ„์˜ ๊ด€๊ณ„๋Š” Query์‹œ๊ฐ„์— ํฌํ•œ๋˜์ง€ ์•Š์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์œ ์ง€๋˜๊ธฐ ๋•Œ๋ฌธ์— Join ๋˜๋Š” Relationship ์ถ”์ ํ•˜๋Š” ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋‹ค.  

 

 

 

 

 

 

 

3. Graph Database๊ฐ€ RDBMS์— ๋ฐ˜ํ•ด ๊ฐ–๋Š” ์žฅ์ 

1. ๋น…๋ฐ์ดํ„ฐ/์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๋ถ„์„์— ์šฉ์ดํ•จ

๊ธฐ์กด ๊ด€๊ณ„ํ˜•๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํ‘œ(table)๋กœ ์ €์žฅ๋˜์–ด ์žˆ์–ด ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ์˜๋ฏธํ•ด์„์„ ์œ„ํ•ด ๋ณ„๋„์˜ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ์ž‘์—…์„ ํ•„์š”๋กœ ํ–ˆ๋‹ค๋ฉด, ๊ทธ๋ž˜ํ”„๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ ์ž์ฒด๊ฐ€ ‘์  — ์„ ’์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๊ณ  ํŠน์ • ์†์„ฑ์— ๋”ฐ๋ผ ์—ฐ๊ฒฐ๊ด€๊ณ„๋ฅผ ๋ฐ”๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋Ÿ‰์˜ ๋น…๋ฐ์ดํ„ฐ/์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๋ถ„์„์— ์šฉ์ดํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 

์ด๊ฒƒ์€ ํ…Œ์ด๋ธ” ํ˜•ํƒœ์— ๋งž์ถฐ์ง„ ๋ฐ์ดํ„ฐ ํ˜•์‹์ธ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ณด๋‹ค ํ›จ์”ฌ ํ˜„์‹ค์ ์ธ ๋ชจํ˜•์— ๊ฐ€๊นŒ์šด ๋ฐ์ดํ„ฐ๋ผ๋Š” ๋Š๋‚Œ์„ ์ฃผ์–ด ๋ฐ์ดํ„ฐ์˜ ์ƒ๊ด€๊ด€๊ณ„์— ๋Œ€ํ•œ ๋†’์€ ์ง๊ด€์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค.

 

 

2. ๋ฐ์ดํ„ฐ ์ €์žฅ์˜ ์œ ์—ฐ์„ฑ

๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋กœ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ๋ณ€ํ™”์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋œ๋‹ค๋ฉด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธด ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋“ค๊ณผ์˜ ๊ด€๊ณ„๋ฅผ ์—ฃ์ง€๋กœ ์—ฐ๊ฒฐํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€๊ฐ€ ์™„๋ฃŒ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ์ €์žฅ์— ๋งค์šฐ ์œ ์—ฐํ•˜๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์ง„๋‹ค.

 

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

 

 

3. ๋น ๋ฅธ ์งˆ์˜(Query) ์†๋„

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

 

 

์ฆ‰, ๋†’์€ ์—ฐ๊ด€์„ฑ์„ ์ฐพ๊ณ  ์ด๋ฅผ ๋‹ค๋ฃจ๋Š” ์„œ๋น„์Šค๋“ค์€ ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ์กด์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค๋Š” ํ›จ์”ฌ ํšจ์œจ์ ์ด๋‹ค. 

 

์ด๋Ÿฐ ์„œ๋น„์Šค ๊ธฐ์—…๋“ค์€ ํŽ˜์ด์Šค๋ถ, ์ธ์Šคํƒ€, ์นด์นด์˜ค ๋“ฑ์ด ์žˆ๋‹ค. 

 

 

 

4. ๋„์ž… ์ด์œ 

์œ„์—์„œ ์–˜๊ธฐํ–ˆ์ง€๋งŒ ๋‹ค์‹œ ์–ธ๊ธ‰ํ•˜์ž๋ฉด ๋‚˜์˜ ํ”„๋กœ์ ํŠธ ์ฃผ์ œ๋Š” ์ปจํ…์ธ  ์ •๋ณด๋ฅผ ํ™œ์šฉํ•œ ๊ฐœ์ธํ™” POI ์ถ”์ฒœ ์„œ๋น„์Šค ์ด๊ณ  ๋„์ž…ํ•œ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

 

์ฒซ๋ฒˆ์งธ ์ด์œ ๋Š” ๋จผ์ € ๋†’์€ ์ง๊ด€๋ ฅ์„ ๊ฐ–๊ณ  ์žˆ์–ด ์ œ3์ž๋ฅผ ๋น ๋ฅด๊ฒŒ ์ดํ•ด์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋งค์ฃผ ๊ต์ˆ˜๋‹˜๊ณผ์˜ ๋ฏธํŒ…, ๋ฐœํ‘œ ๋“ฑ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๊นŠ๊ฒŒ ์ดํ•ดํ•˜์ง€ ๋ชป ํ•˜๋Š” ์ œ3์ž์—๊ฒŒ ์ดํ•ด์‹œ์ผœ์•ผํ•  ์ƒํ™ฉ์ด 1๋…„๋™์•ˆ ๊ณ„์†ํ•ด์„œ ์ฃผ์–ด์งˆ ๊ฒƒ์ด๋‹ค. node๋“ค๊ณผ ์ด๋“ค์„ edge๋กœ ์—ฐ๊ฒฐํ•ด์„œ ํ‘œํ˜„ํ•ด์ฃผ๋Š” GDB๋Š” ์šฐ๋ฆฌ์˜ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ์— ์ ํ•ฉํ•˜๋‹ค.

 

 

๋‘๋ฒˆ์งธ ์ด์œ ๋Š” ํ™•์žฅ์— ์—ด๋ ค์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‹น์žฅ์€ review ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ๊ฐ’, ๋ฐฉ๋ฌธ ํšŸ์ˆ˜, poi๊ฐ„ ๊ฑฐ๋ฆฌ ๋“ฑ๋งŒ ๊ณ ๋ คํ•˜๊ธฐ๋กœ ํ–ˆ์ง€๋งŒ, ๋” ์ •ํ™•ํ•œ ์ถ”์ฒœ ๋ชจ๋ธ์„ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด์„  ๋” ๋งŽ์€ ์š”์†Œ๋“ค์ด ๋ณตํ•ฉ์ ์œผ๋กœ ๊ณ ๋ ค๋˜์•ผ ํ•œ๋‹ค. ์ด๋•Œ node๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , edge์™€ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐ๋งŒ ์‹œ์ผœ์ฃผ๋ฉด ๋œ๋‹ค. 

 

 

์„ธ๋ฒˆ์งธ ์ด์œ ๋Š” ์‹ค์‹œ๊ฐ„ ์ถ”์ฒœ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์„ค๊ณ„ํ•œ ๋ชจ๋ธ์˜ ๋‹จ์ ์€ ์ƒˆ๋กœ์šด user๊ฐ€ ์ถ”๊ฐ€๋˜๊ณ  review๋ฐ์ดํ„ฐ๋“ค์ด ์ƒ๊ธด๋‹ค๋ฉด ์ถ”๊ฐ€๋œ ๋ฐ์ดํ„ฐ๋กœ ์ถ”์ฒœ ๋ชจ๋ธ์„ ์žฌํ•™์Šตํ•ด์•ผ ์ •ํ™•ํ•œ ์ถ”์ฒœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. graph database๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์œ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”๊ฑด ์•„๋‹ˆ๋‹ค. ๋Œ€์‹  ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ถ”์ฒœ์„ ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. 

์˜ˆ๋ฅผ ๋“ค์–ด user A์™€ User B๊ฐ€ ์žˆ๊ณ  POI C์— ๋‘˜ ๋‹ค ์—ฌ๋Ÿฌ๋ฒˆ ๋ฐฉ๋ฌธํ–ˆ๋‹ค ๊ฐ€์ •ํ•˜์ž. A์™€ B๋Š” ๋น„์Šทํ•œ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— B๊ฐ€ ์ž์ฃผ ๋ฐฉ๋ฌธํ•˜๋Š” POI D๋ฅผ A์—๊ฒŒ ์ถ”์ฒœํ•ด์ค„์ˆ˜๋„ ์žˆ๋‹ค. 

 

 

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

 

 

 

 

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์™„์„ฑํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ๋Š” RDBMS๋‚˜ GDB๋‚˜ ๊ทธ๋ ‡๊ฒŒ ํฌ๊ฒŒ ์ค‘์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜๋Š” ์žˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๊ณ  ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•ด๋ณด์•˜์„ ๋•Œ, ๊ฐœ์ธํ™”๋œ POI ์ถ”์ฒœ์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค ์„ฑ๊ฒฉ์ƒ GDB๊ฐ€ ์ ํ•ฉํ•˜๋‹ค ํŒ๋‹จํ•˜์—ฌ GDB์ค‘ ๊ฐ€์žฅ ๋†’์€ ์ ์œ ์œจ์„ ๋ณด์—ฌ์ฃผ๋Š” neo4j๋ฅผ ๋„์ž…ํ•˜์˜€๋‹ค.