๐Ÿ““ 13์žฅ. ๊ฒ€์ƒ‰์–ด ์ž๋™์™„์„ฑ ์„ค๊ณ„

onyยท2023๋…„ 1์›” 6์ผ
2

๐Ÿ“š book

๋ชฉ๋ก ๋ณด๊ธฐ
7/10
post-thumbnail

๊ฒ€์ƒ‰์–ด ์ž๋™์™„์„ฑ (autocomplete, typehead, search-as-you-type, incremental search)์— ๊ด€ํ•œ ์ด์•ผ๊ธฐ.

1๋‹จ๊ณ„. ๋ฌธ์ œ ์ดํ•ด ๋ฐ ์„ค๊ณ„ ๋ฒ”์œ„ ํ™•์ •

์š”๊ตฌ์‚ฌํ•ญ

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

๊ฐœ๋žต์  ๊ทœ๋ชจ ์ถ”์ •

  • ์ผ๊ฐ„ ๋Šฅ๋™ ์‚ฌ์šฉ์ž(DAU) ๋Š” ์•ฝ 1000๋งŒ๋ช…
  • ํ‰๊ท ์ ์œผ๋กœ ํ•œ ์‚ฌ์šฉ์ž ๋‹น ๋งค์ผ 10๊ฑด์˜ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๊ณ  ๊ฐ€์ •
  • ์งˆ์˜ํ•  ๋•Œ๋งˆ๋‹ค ํ‰๊ท ์ ์œผ๋กœ 20๋ฐ”์ดํŠธ ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ
  • ๊ฒ€์ƒ‰์ฐฝ์— ๊ธ€์ž๋ฅผ ์ž…๋ ฅํ•  ๋•Œ๋งˆ๋‹ค ํด๋ผ์ด์–ธํŠธ๋Š” ๊ฒ€์ƒ‰์–ด ์ž๋™์™„์„ฑ ๋ฐฑ์—”๋“œ์— ์š”์ฒญ์„ ์ „์†ก
  • ๋Œ€๋žต ์ดˆ๋‹น 24,000๊ฑด์˜ ์งˆ์˜(QPS)๊ฐ€ ๋ฐœ์ƒ
  • ์ตœ๋Œ€ QPS = QPS * 2 = ์•ฝ 48,000
  • ์งˆ์˜ ๊ฐ€์šด๋ฐ 20% ์ •๋„๋Š” ์‹ ๊ทœ๊ฒ€์ƒ‰์–ด๋ผ๊ณ  ๊ฐ€์ •. ๋”ฐ๋ผ์„œ ๋งค์ผ 0.4GB ์˜ ์‹ ๊ทœ ๋ฐ์ดํ„ฐ๊ฐ€ ์‹œ์Šคํ…œ์— ์ถ”๊ฐ€๋œ๋‹ค๋Š” ์˜๋ฏธ

2๋‹จ๊ณ„. ๊ฐœ๋žต์  ์„ค๊ณ„์•ˆ ์ œ์‹œ ๋ฐ ๋™์˜ ๊ตฌํ•˜๊ธฐ

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์„œ๋น„์Šค(data gathering service)
์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์งˆ์˜๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜์ง‘ํ•˜๋Š” ์‹œ์Šคํ…œ
๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ์€ ๊ทธ๋‹ค์ง€ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์ง€๋งŒ ์„ค๊ณ„์•ˆ์„ ๋งŒ๋“œ๋Š” ์ถœ๋ฐœ์ ์œผ๋กœ๋Š” ๊ดœ์ฐฎ์Œ

์งˆ์˜ ์„œ๋น„์Šค(query service)
์ฃผ์–ด์ง„ ์งˆ์˜์— ๋‹ค์„ฏ ๊ฐœ์˜ ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ •๋ ฌํ•ด ๋‚ด๋†“๋Š” ์„œ๋น„์Šค

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์„œ๋น„์Šค

์งˆ์˜๋ฌธ๊ณผ ์‚ฌ์šฉ๋นˆ๋„๋ฅผ ์ €์žฅํ•˜๋Š” ๋นˆ๋„ ํ…Œ์ด๋ธ”(frequency table)์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •
์ฒ˜์Œ์— ํ…Œ์ด๋ธ”์€ ๋น„์–ด์žˆ๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์ˆœ์ฐจ์ ์œผ๋กœ ๋นˆ๋„ ์ˆ˜์— ์นด์šดํŠธ๋ฅผ ๋„ฃ์Œ

์งˆ์˜ ์„œ๋น„์Šค

SELECT * FROM frequency_table
WHERE query Like 'prefix%'
ORDER BY frequency DESC
LIMIT 5

๋ฐ์ดํ„ฐ ์–‘์ด ์ ์„ ๋•Œ์— ๋‚˜์˜์ง€ ์•Š์€ ์„ค๊ณ„์•ˆ. ๋ฐ์ดํ„ฐ๊ฐ€ ์•„์ฃผ ๋งŽ์•„์ง€๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋ณ‘๋ชฉ์ด ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

3๋‹จ๊ณ„. ์ƒ์„ธ ์„ค๊ณ„

ํŠธ๋ผ์ด(trie) ์ž๋ฃŒ๊ตฌ์กฐ, ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์„œ๋น„์Šค, ์งˆ์˜ ์„œ๋น„์Šค, ๊ทœ๋ชจ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•œ ์ €์žฅ์†Œ, ํŠธ๋ผ์ด ์—ฐ์‚ฐ

ํŠธ๋ผ์ด ์ž๋ฃŒ๊ตฌ์กฐ

ํŠธ๋ผ์ด๋Š” ๋ฌธ์ž์—ด๋“ค์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

  • ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ
  • ์ด ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ ๋…ธ๋“œ๋Š” ๋นˆ ๋ฌธ์ž์—ด์„ ๋‚˜ํƒ€๋ƒ„
  • ๊ฐ ๋…ธ๋“œ๋Š” ๊ธ€์ž(character) ํ•˜๋‚˜๋ฅผ ์ €์žฅํ•˜๋ฉฐ, 26๊ฐœ(ํ•ด๋‹น ๊ธ€์ž ๋‹ค์Œ์— ๋“ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ธ€์ž์˜ ๊ฐœ์ˆ˜)์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ
  • ๊ฐ ํŠธ๋ฆฌ ๋…ธ๋“œ๋Š” ํ•˜๋‚˜์˜ ๋‹จ์–ด, ๋˜๋Š” ์ ‘๋‘์–ด ๋ฌธ์ž์—ด(prefix string)์„ ๋‚˜ํƒ€๋ƒ„

์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ง๊ด€์ ์ด์ง€๋งŒ ์ตœ์•…์˜ ๊ฒฝ์šฐ k๊ฐœ ๊ฒฐ๊ณผ๋ฅผ ์–ป์œผ๋ ค๊ณ  ์ „์ฒด ํŠธ๋ผ์ด๋ฅผ ๋‹ค ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•˜๋Š” ์ผ์ด ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” 1. ์ ‘๋‘์–ด์˜ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ œํ•œ๊ณผ 2. ๊ฐ ๋…ธ๋“œ์— ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด๋ฅผ ์บ์‹œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

์ ‘๋‘์–ด ์ตœ๋Œ€ ๊ธธ์ด ์ œํ•œ

์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰์ฐฝ์— ๊ธด ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์ผ์€ ๊ฑฐ์˜ ๋“œ๋ฌผ๊ธฐ์— ๊ฒ€์ƒ‰์–ด์˜ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ œํ•œํ•ด๋„ ๋œ๋‹ค.

๋…ธ๋“œ์— ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด ์บ์‹œ

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

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์„œ๋น„์Šค

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

๋ฐ์ดํ„ฐ ๋ถ„์„ ์„œ๋น„์Šค ๋กœ๊ทธ

๊ฒ€์ƒ‰์ฐฝ์— ์ž…๋ ฅ๋œ ์งˆ์˜์— ๊ด€ํ•œ ์›๋ณธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด๊ด€๋จ.
์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋  ๋ฟ ์ˆ˜์ •์€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์œผ๋ฉฐ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ์— ์ธ๋ฑ์Šค๋ฅผ ๊ฑธ์ง€ ์•Š์Œ.

๋กœ๊ทธ ์ทจํ•ฉ ์„œ๋ฒ„

๋ฐ์ดํ„ฐ ๋ถ„์„ ์„œ๋น„์Šค๋กœ ๋ถ€ํ„ฐ ๋‚˜์˜ค๋Š” ๋กœ๊ทธ๋Š” ์–‘๋„ ๋งŽ๊ณ  ๋ฐ์ดํ„ฐ ํ˜•์‹์ด ์ œ๊ฐ๊ฐ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„
-- ๋”ฐ๋ผ์„œ ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ์ทจํ•ฉ(aggregation)ํ•˜์—ฌ ์‹œ์Šคํ…œ์ด ์‰ฝ๊ฒŒ ์†Œ๋น„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์•ผ ํ•จ

๋ฐ์ดํ„ฐ ์ทจํ•ฉ์˜ ์‹ค์‹œ๊ฐ„์„ฑ์— ๋Œ€ํ•œ ์ฒดํฌ๊ฐ€ ์ค‘์š”

์ทจํ•ฉ๋œ ๋ฐ์ดํ„ฐ

์ž‘์—… ์„œ๋ฒ„

์ฃผ๊ธฐ์ ์œผ๋กœ ๋น„๋™๊ธฐ์  ์ž‘์—…(job) ์„ ์‹คํ–‰ํ•˜๋Š” ์„œ๋ฒ„ ์ง‘ํ•ฉ
ํŠธ๋ผ์ด ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ณ  ํŠธ๋ผ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹น

ํŠธ๋ผ์ด ์บ์‹œ

๋ถ„์‚ฐ ์บ์‹œ ์‹œ์Šคํ…œ์œผ๋กœ ํŠธ๋ผ์ด ๋ฐ์ดํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์— ์œ ์ง€ํ•˜์—ฌ ์ฝ๊ธฐ ์—ฐ์‚ฐ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ์—ญํ• 
๋งค์ฃผ ํŠธ๋ผ์ด DB์˜ ์Šค๋ƒ…์ƒท์„ ๋– ์„œ ๊ฐฑ์‹ 

ํŠธ๋ผ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

์ง€์†์„ฑ ์ €์žฅ์†Œ
ํŠธ๋ผ์ด DB๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„ ํƒ์ง€๋กœ๋Š”

  1. ๋ฌธ์„œ์ €์žฅ์†Œ(document store) : ์ฃผ๊ธฐ์ ์œผ๋กœ ํŠธ๋ผ์ด๋ฅผ ์ง๋ ฌํ™”ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ ๊ฐ€๋Šฅ. ๋ชฝ๊ณ ๋””๋น„(MongoDB) ๊ฐ™์€ ๋ฌธ์„œ ์ €์žฅ์†Œ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ €์žฅ ๊ฐ€๋Šฅ
  2. ํ‚ค-๊ฐ’ ์ €์žฅ์†Œ : 1) ํŠธ๋ผ์ด์— ๋ณด๊ด€๋œ ๋ชจ๋“  ์ ‘๋‘์–ด๋ฅผ ํ•ด์‹œ ํ…Œ์ด๋ธ” ํ‚ค๋กœ ๋ณ€ํ™˜ 2) ๊ฐ ํŠธ๋ผ์ด ๋…ธ๋“œ์— ๋ณด๊ด€๋œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์‹œ ํ…Œ์ด๋ธ” ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜

์งˆ์˜ ์„œ๋น„์Šค

  1. ๊ฒ€์ƒ‰ ์งˆ์˜๊ฐ€ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋กœ ์ „์†ก
  2. ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” ํ•ด๋‹น ์งˆ์˜๋ฅผ API ์„œ๋ฒ„๋กœ ๋ณด๋ƒ„
  3. API ์„œ๋ฒ„๋Š” ํŠธ๋ผ์ด ์บ์‹œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ํ•ด๋‹น ์š”์ฒญ์— ๋Œ€ํ•œ ์ž๋™์™„์„ฑ ๊ฒ€์ƒ‰์–ด ์ œ์•ˆ ์‘๋‹ต์„ ๊ตฌ์„ฑํ•จ
  4. ๋ฐ์ดํ„ฐ๊ฐ€ ํŠธ๋ผ์ด ์บ์‹œ์— ์—†๋Š” ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ๋ฅผ DB์—์„œ ๊ฐ€์ ธ์™€ ์บ์‹œ์— ์ฑ„์›€. ๋‹ค์Œ์— ๊ฐ™์€ ์ ‘๋‘์–ด์— ๋Œ€ํ•œ ์งˆ์˜๊ฐ€ ์˜ค๋ฉด ์บ์‹œ์— ๋ณด๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ.. ์บ์‹œ ๋ฏธ์Šค(CACHE MISS)๋Š” ์บ์‹œ ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ์บ์‹œ ์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ์žˆ์–ด๋„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ

์ƒ๊ฐํ•ด ๋ณผ ๋งŒํ•œ ์ตœ์ ํ™” ๋ฐฉ์•ˆ

  1. Ajax ์š”์ฒญ(request) : ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•ด ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์žฅ์ 
  2. ๋ธŒ๋ผ์šฐ์ € ์บ์‹ฑ(browser caching) : ์ œ์•ˆ๋œ ๊ฒ€์ƒ‰์–ด๋“ค์„ ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ์— ๋„ฃ์–ด๋‘๋ฉด ํ›„์† ์งˆ์˜์˜ ๊ฒฐ๊ณผ๋Š” ํ•ด๋‹น ์บ์‹œ์—์„œ ๋ฐ”๋กœ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ์Œ. ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰ ์—”์ง„์ด ์ด๋Ÿฌํ•œ ์บ์‹œ ๋งค์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉ.
  3. ๋ฐ์ดํ„ฐ ์ƒ˜ํ”Œ๋ง(data sampling) : ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ, ๋ชจ๋“  ์งˆ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋กœ๊น… ํ•ด ๋†“์œผ๋ฉด CPU ์ž์›๊ณผ ์ €์žฅ๊ณต๊ฐ„์„ ๋‹ค๋Ÿ‰ ์†Œ์ง„ํ•˜๊ฒŒ ๋จ. N๊ฐœ์˜ ์š”์ฒญ ๊ฐ€์šด๋ฐ 1๊ฐœ๋งŒ ๋กœ๊น…

ํŠธ๋ผ์ด ์—ฐ์‚ฐ

ํŠธ๋ผ์ด๋Š” ๊ฒ€์ƒ‰์–ด ์ž๋™์™„์„ฑ ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ ์ปดํฌ๋„ŒํŠธ

ํŠธ๋ผ์ด ์ƒ์„ฑ

์ž‘์—… ์„œ๋ฒ„๊ฐ€ ๋‹ด๋‹นํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ ๋ถ„์„ ์„œ๋น„์Šค์˜ ๋กœ๊ทธ๋‚˜ DB๋กœ๋ถ€ํ„ฐ ์ทจํ•ฉ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉ

ํŠธ๋ผ์ด ๊ฐฑ์‹ 

  1. ๋งค์ฃผ ํ•œ ๋ฒˆ ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•. ์ƒˆ๋กœ์šด ํŠธ๋ผ์ด๋ฅผ ๋งŒ๋“  ๋‹ค์Œ, ๊ธฐ์กด์˜ ํŠธ๋ผ์ด๋ฅผ ๋Œ€์ฒด
  2. ํŠธ๋ผ์ด์˜ ๊ฐ ๋…ธ๋“œ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•. ์„ฑ๋Šฅ์ด ๋–จ์–ด์ ธ์„œ ํŠธ๋ผ์ด๊ฐ€ ์ž‘์„ ๋•Œ ๊ณ ๋ คํ•ด๋ณผ๋งŒํ•œ ๋ฐฉ์•ˆ.

๊ฒ€์ƒ‰์–ด ์‚ญ์ œ

ํŠธ๋ผ์ด ์บ์‹œ ์•ž์— ํ•„ํ„ฐ ๊ณ„์ธต(filter layer)์„ ๋‘๊ณ  ๋ถ€์ ์ ˆํ•œ ์งˆ์˜์–ด๊ฐ€ ๋ฐ˜ํ™˜๋˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ.
ํ•„ํ„ฐ ๊ณ„์ธต์„ ๋‘๋ฉด ํ•„ํ„ฐ ๊ทœ์น™์— ๋”ฐ๋ผ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ 
DB์—์„œ ํ•ด๋‹น ๊ฒ€์ƒ‰์–ด๋ฅผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ๋‹ค์Œ ๋ฒˆ ์—…๋ฐ์ดํŠธ ์‚ฌ์ดํด์— ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉด ๋จ.

์ €์žฅ์†Œ ๊ทœ๋ชจ ํ™•์žฅ

ํŠธ๋ผ์ด์˜ ํฌ๊ธฐ๊ฐ€ ํ•œ ์„œ๋ฒ„์— ๋„ฃ๊ธฐ์— ๋„ˆ๋ฌด ํฐ ๊ฒฝ์šฐ์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก..
๊ฐ„๋‹จํ•˜๊ฒŒ ์ฒซ ๊ธ€์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ƒค๋”ฉ(SHARDING) ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ์Œ

4. ๋งˆ๋ฌด๋ฆฌ

์•„์ด๋””์–ด

  1. ์ƒค๋”ฉ์„ ํ†ตํ•ด ์ž‘์—… ๋Œ€์ƒ์˜ ๋ฐ์ดํ„ฐ ์–‘์„ ์ค„์ž„
  2. ์ˆœ์œ„๋ชจ๋ธ(Ranking Model)์„ ๋ฐ”๊พธ์–ด ์ตœ๊ทผ ๊ฒ€์ƒ‰์–ด์— ๋ณด๋‹ค ๋†’์€ ๊ฐ€์ค‘์น˜
  3. ๋ฐ์ดํ„ฐ๊ฐ€ ์ŠคํŠธ๋ฆผ ํ˜•ํƒœ๋กœ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ . ํ•œ๋ฒˆ์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ ค - ์ด์— ๋Œ€ํ•œ ๋…ผ์˜๋ฅผ ์œ„ํ•ด์„œ๋Š” ํŠน์ •ํ•œ ๋„๋ฉ”์ธ ์ง€์‹์ด ํ•„์š”
profile
ํŒŒ์ด(ฯ€)ํ˜• ๊ฐœ๋ฐœ์ž ๐ŸŽ๐ŸŒฟ๐Ÿค

0๊ฐœ์˜ ๋Œ“๊ธ€