๐Ÿค— ** ์ด ๊ธ€์€ ๋น„๊ฐœ๋ฐœ์ž๊ฐ€ ๊ณต๋ถ€ํ•ด๋„ ์ข‹์€ ๋‚ด์šฉ์ด๋ผ ์ƒ๊ฐํ•ด์š”.**

๐Ÿ™†๐Ÿปโ€โ™€๏ธ ** ์ด ๊ธ€์€ ์š•์„ค์ด ์—†๋Š” ์•ˆ์ „ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.**

โš ๏ธ ** ์ด ๊ธ€์€ ์•„์ง ์ž‘์„ฑ ์ค‘์ธ ๊ธ€์ด๋ผ ๋‚ด์šฉ์ด ๋ฐ”๋€” ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.**

๐Ÿฅš ๋ฌด์Šจ ๊ธ€์ผ๊นŒ?

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

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

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

์›น ํฌ๋กค๋Ÿฌ๋ž€ ์ธํ„ฐ๋„ท ์„œ๋น„์Šค๋ฅผ ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ์•„์ฃผ ์ค‘์š”ํ•œ ์†Œํ”„ํŠธ์›จ์–ด์ง€๋งŒ ๊ณต๊ฐœ๋œ ์ž๋ฃŒ๊ฐ€ ๋งŽ์ง€ ์•Š์•˜๋‹ค. IT ๊ธฐ์—…๋“ค์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ ์— ํ•ด๋‹นํ•˜๋Š” ํฌ๋กค๋Ÿฌ๋Š” ๋ฐ”๊นฅ ์„ธ์ƒ์— ๋ชจ์Šต์„ ์ž˜ ๋“œ๋Ÿฌ๋‚ด์ง€ ์•Š์•˜๊ณ  ์ด๋Ÿฐ ์ƒํƒœ๊ฐ€ 90๋…„๋Œ€ ํ›„๋ฐ˜๊นŒ์ง€ ์ง€์† ๋์ง€๋งŒ 2000๋…„๋Œ€ ์ดˆ๋ฐ˜์— ์ด๋ฅด๋Ÿฌ์„œ๋Š” ๐Ÿ“ƒ Mercator: A scalable, extensible Web crawler ์™€ ๊ฐ™์€ ๋…ผ๋ฌธ์ด ๋ฐœํ‘œ๋˜๋ฉด์„œ ์กฐ๊ธˆ์”ฉ ์›น ํฌ๋กค๋Ÿฌ์˜ ์•„ํ‚คํ…์ณ ๊ธฐ๋ฐ˜์ด ์ •์˜๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

โ˜น๏ธ ์ € ๋…ผ๋ฌธ์ด ๋ญ”๋ฐ์š”

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

๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ธ€์„ ์“ฐ๊ธฐ์— ์•ž์„œ ์›น ํฌ๋กค๋Ÿฌ๋ฅผ ๋งŒ๋“ค๋ฉด์„œ ๊ฐ€์žฅ ์˜๋ฌธ์ด ๋“œ๋Š”๊ฒƒ๋“ค์„ ์ •๋ฆฌ ํ•ด๋ณด์ž๋ฉด ์ด๋ ‡๋‹ค.

โœ๐Ÿป ์–ด๋–ป๊ฒŒ ํŽ˜์ด์ง€์˜ ๋ณธ๋ฌธ ํ…์ŠคํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์„๊นŒ?

์ˆ˜๋งŽ์€ ๋ธ”๋กœ๊ทธ๋“ค์ด css selector๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์›ํ•˜๋Š” ํ…์ŠคํŠธ์™€ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ์“ฐ๊ณ  ์žˆ๋‹ค. css selector๋กœ DOM์„ ์ง์ ‘ ๊ฐ€์ ธ์˜ค๋ฉด ์ •ํ™•ํ•˜๊ฒŒ ํ…์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์ง€๋งŒ ์„œ๋น„์Šค์˜ UI๊ฐ€ ์กฐ๊ธˆ๋งŒ ๋ณ€๊ฒฝ๋ผ๋„ ํฌ๋กค๋Ÿฌ๋Š” ์—‰๋šฑํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๊ณ  ์˜ฌ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ํŽ˜์ด์ง€ ๊ตฌ์กฐ๊ฐ€ ์ž์ฃผ ๋ฐ”๋€Œ์–ด๋„ ๋ณธ๋ฌธ ํ…์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ?

๐Ÿฅ ๋ช‡ ์ดˆ๋งˆ๋‹ค ์žฌ๋ฐฉ๋ฌธํ•ด์•ผ freshness๋ฅผ ์œ ์ง€ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

ํŽ˜์ด์ง€๋Š” ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, ์–ด๋–ค ๋ฒจ๋กœ๊ทธ ํฌ์ŠคํŠธ๋ฅผ ํฌ๋กค๋งํ•˜์—ฌ ์ˆ˜์ง‘ํ•˜์˜€์ง€๋งŒ ๋‚˜์ค‘์— ๊ทธ ํฌ์ŠคํŠธ๋Š” ์ž‘์„ฑ์ž๊ฐ€ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ • ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํฌ๋กค๋Ÿฌ๊ฐ€ ๋ฐฉ๋ฌธ ํ–ˆ๋˜ URL์„ ์–ธ์  ๊ฐ€ ๋˜ ๋ฐฉ๋ฌธํ•ด์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ํŽ˜์ด์ง€์˜ ์‹ ์„ ๋„(freshness)๋ฅผ ์œ ์ง€ ํ•ด ์ฃผ์–ด์•ผ๋งŒ ํ•  ๊ฒƒ์ด๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ์ƒ๊ฐํ•ด์„œ ํ•œ ์‹œ๊ฐ„ ๋งˆ๋‹ค, ๋˜๋Š” ๋ฉฐ์น ์— ํ•œ ๋ฒˆ์”ฉ ์žฌ๋ฐฉ๋ฌธ ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ ์ž์ฃผ ์—…๋ฐ์ดํŠธ ๋˜๋Š” ํŽ˜์ด์ง€๊ฐ€ ์žˆ๋Š”๊ฐ€ ํ•˜๋ฉด ์˜ค๋žซ๋™์•ˆ ๊ทธ๋Œ€๋กœ์ธ ํŽ˜์ด์ง€๋„ ์žˆ์„๊ฒƒ์ด๋‹ค. ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ํšจ์œจ์ ์œผ๋กœ ์ˆ˜์ •์ด ์ด๋ค„์ง„ ํŽ˜์ด์ง€๋งŒ ์žฌ๋ฐฉ๋ฌธ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

๐Ÿช ์–ด๋–ป๊ฒŒ ํฌ๋กค๋Ÿฌ๋ฅผ Scalableํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„๊นŒ?

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

www์—์„œ ์ƒ์‚ฐ๋˜๋Š” ํŽ˜์ด์ง€๋Š” ๊ทธ์•ผ๋ง๋กœ ํญ๋ฐœ์ ์ด๋‹ค. ๋‹จ ํ•œ ๋Œ€์˜ ํฌ๋กค๋Ÿฌ๋กœ ์ „ ์„ธ๊ณ„์˜ ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ์ˆ˜์ง‘ ํ•  ์ˆ˜๊ฐ€ ์—†๋Š”๋ฐ ๋‹น์—ฐํ•˜๊ฒŒ๋„ ์—ฌ๋Ÿฌ๋Œ€์˜ ํฌ๋กค๋Ÿฌ๊ฐ€ ํ˜‘์—…ํ•˜๋ฉด์„œ ์›€์ง์—ฌ์•ผ ํ•œ๋‹ค.

Scalableํ•œ ๋Œ€๊ทœ๋ชจ ๋ณ‘๋ ฌ ํฌ๋กค๋Ÿฌ๋ฅผ ๋งŒ๋“œ๋Š” ์˜์—ญ์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š”๋ฐ๋Š” ์‚ฌ์‹ค ์ข€ ๋” ๊นŠ๊ณ  ์–ด๋ ค์šด ๊ณ ๋ฏผ๋“ค์„ ํ•ด์•ผํ•œ๋‹ค. ๋‹คํ–‰ํžˆ Scalable ํฌ๋กค๋Ÿฌ ๊ด€๋ จํ•ด์„œ๋Š” Parallel Cralwer๋ผ๋Š” ๋Œ€ํ‘œ์ ์ด๊ณ  ์œ ๋ช…ํ•œ ๋…ผ๋ฌธ์ด ์žˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ด์™€ ๊ฐ™์€ ๊ณ ๋ฏผ๋“ค์„ ์ตœ๋Œ€ํ•œ ๋‹ค๋ค„ ๋ณผ ์˜ˆ์ •์ด๋‹ค.

๐Ÿค ์™œ ํฌ๋กค๋งํ•˜๋‚˜

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

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

๐Ÿ‘“ ๊ทธ๋ž˜๋„ ๊ฒ€์ƒ‰ ์•Œ๋ ค ์ฃผ์„ธ์š”

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

๐Ÿ“• CS 276: Information Retrieval and Web Search

๐Ÿ•ต๐Ÿปโ€โ™‚๏ธ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค์™€ ์›น ํฌ๋กค๋Ÿฌ

์›น ํฌ๋กค๋Ÿฌ๋Š” ๊ฒ€์ƒ‰ ์„œ๋น„์Šค์—์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋‹ค. Google, Yandex, DuckDuckGo ๊ฐ™์€ ๊ฑฐ๋Œ€ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค๋“ค์€ ์›น ์‚ฌ์ดํŠธ์—์„œ ์ข‹์€ ์ •๋ณด๋ฅผ ์ •ํ™•ํžˆ ์ฐพ์•„ ๋‚ด์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‹น์—ฐํžˆ ์›น์—์„œ ์ƒ์„ฑ๋˜๋Š” ์ˆ˜ ๋งŽ์€ ํŽ˜์ด์ง€๋“ค์„ ์ˆ˜์ง‘ํ•ด์•ผํ•˜๊ณ  ์ •๋ฆฌํ•ด ๋‘์–ด์•ผ ํ•œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ตฌ๊ธ€๋ง์ด๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒ€์ƒ‰ ์„œ๋น„์Šค๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ๊ตฌ๊ธ€์€ GoogleBot์ด๋ผ๋Š” ํฌ๋กค๋Ÿฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. Pinterest ๊ฐ™์€ ์„œ๋น„์Šค๋„ ์ด๋ฏธ์ง€๋งŒ์„ ์ง‘์ค‘์ ์œผ๋กœ ์ˆ˜์ง‘ํ•˜๋Š” ํฌ๋กค๋Ÿฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

"Web crawlers are an essential component to search engines."

๐Ÿ“„ _An Analysis on Search Engines: Techniques and Tools, R. Rubini1, Dr. R. Manicka Chezian _

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

๐Ÿ” ์›น ํฌ๋กค๋Ÿฌ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

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

๐Ÿ“ƒ ๊ฒ€์ƒ‰์˜ ์›๋ฆฌ

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

๐Ÿ“Ž ์ €์ž‘๊ถŒ ๋ฐ ์›น ๊ฒ€์ƒ‰์— ๊ด€ํ•œ ๊ตฌ๊ธ€์˜ ์ •์ฑ…

ํฌ๋กค๋Ÿฌ๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹์€ ์šฐ๋ฆฌ๊ฐ€ ๋ฐฉ๊ตฌ์„์—์„œ ์‹œ๊ฐ„ ๋–ผ์šธ ๋•Œ ํ•˜๋Š” '์›น ์„œํ•‘'๊ณผ ๊ณผ์ •์ด ๊ฐ™๋‹ค. ํฌ๋กค๋Ÿฌ๋Š” ์ฒซ ํŽ˜์ด์ง€์—์„œ ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ๋‚˜ ๊ฒฝ๋กœ๋กœ ์ด๋™ ํ•  ์ˆ˜ ์žˆ๋Š” link๋“ค์„ ์ฐพ์•„ ๋‚ธ ๋‹ค์Œ ํ•˜๋‚˜์”ฉ ์ฐจ๋ก€๋กœ ๋ฐฉ๋ฌธํ•œ๋‹ค.

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

๐Ÿง—๐Ÿปโ€โ™€๏ธ ํฌ๋กค๋Ÿฌ์˜ ๋„์ „๊ณผ์ œ

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

๐Ÿšœ **ํฌ๋กค๋Ÿฌ, ๐ŸŽ’ํ”„๋ก ํ‹ฐ์–ด, ๐Ÿ•ท์ŠคํŒŒ์ด๋”? **

ํฌ๋กค๋Ÿฌ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ด๋ฆ„์„ ๊ฐ–๊ณ  ์žˆ๋‹ค. ์–ด๋–ค ๋…ผ๋ฌธ์—์„œ๋Š” Web Spider๋ผ๊ณ ํ•˜๊ณ  ์–ด๋–ค ๋…ผ๋ฌธ์—์„œ๋Š” URL Frontier๋ผ๊ณ  ์“ฐ๊ธฐ๋„ ํ•œ๋‹ค. 2000 ์ค‘๋ฐ˜๋Œ€์— ๋“ค์–ด์„œ๋Š” ๊ฑฐ์˜ Web Crawler๋กœ ๊ตณ์–ด์ง„ ๊ฒƒ ๊ฐ™๋‹ค. ๋‹ค๋งŒ Scraper๋ผ๋Š” ์šฉ์–ด๋Š” Cralwer์™€๋Š” ๋‹ฌ๋ฆฌ ํŠน์ • ๋ชฉ์ ์„ ์œ„ํ•ด ๋ช‡๋ช‡ ์‚ฌ์ดํŠธ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฐœ๋…์œผ๋กœ ์–ธ๊ธ‰ ๋˜๊ณ  ์žˆ๋‹ค.

๐ŸŒ ์›…์žฅํ•œ www์˜ ํฌ๊ธฐ

ํฌ๋กค๋Ÿฌ๋ฅผ ๋งŒ๋“ค๊ธฐ ์–ด๋ ค์šด ์ด์œ ๋Š” ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๋ฅผ ๊ผฝ์„ ์ˆ˜ ์žˆ๋‹ค.

  1. ์›น์€ ๋Š์ž„ ์—†์ด ํŒฝ์ฐฝํ•˜๊ณ  ์žˆ๋‹ค. ํ•˜๋ฃจ์— ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๊ฐ€ ์ˆ˜์‹ญ๋งŒ๊ฐœ์”ฉ ์ƒ๊ธด๋‹ค.
  2. ์›น์€ ๊ณ„์†ํ•ด์„œ ๋ณ€ํ•œ๋‹ค. ์ˆ˜๋ฐฑ๋งŒ๊ฐœ์˜ ํŽ˜์ด์ง€๊ฐ€ ์ˆ˜์ •๋œ๋‹ค.

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

๐Ÿ“ ํŽ˜์ด์ง€ ํ€„๋ฆฌํ‹ฐ

ํฌ๋กค๋Ÿฌ๊ฐ€ ์•„์ฃผ ๋นจ๋ผ์„œ ์ „์ฒด ์›น์„ ์ž˜ ํƒ์ƒ‰ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•˜์ž. ๋ชจ๋“  ํŽ˜์ด์ง€๊ฐ€ ๊ณ ํ’ˆ์งˆ์€ ์•„๋‹ˆ๊ณ  ๊ทธ ์ค‘์—๋Š” ๊ด‘๊ณ ๋„ ์žˆ๊ณ  ๊ทธ๋ƒฅ ํ•œ ์ค„ ์งœ๋ฆฌ ํฌ์ŠคํŒ…๋„ ์žˆ์„๊ฒƒ์ด๋‹ค. ํฌ๋กค๋Ÿฌ์˜ ์ž„๋ฌด๋Š” ์ข‹์€ ํฌ์ŠคํŒ…์€ ๋นจ๋ฆฌ ํš๋“ํ•˜๊ณ  ์ŠคํŒธ ํฌ์ŠคํŒ…์€ ์ตœ๋Œ€ํ•œ ํ”ผํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

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

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

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

๐Ÿ“Ž In 2020, Two Thirds of Google Searches Ended Without a Click
๐Ÿ“Ž Search Engine Market Share Worldwide

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

๐Ÿ“Ž ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™” ์šฐ์ˆ˜์‚ฌ๋ก€ ๋ฐ ์„ฑ๊ณต์‚ฌ๋ก€ ย |ย  Google ๊ฒ€์ƒ‰ ์„ผํ„ฐ

๋„ค์ด๋ฒ„์˜ ๊ฒฝ์šฐ ์›๋ž˜ '์›น๋งˆ์Šคํ„ฐ ๋„๊ตฌ'๋ผ๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ '๋„ค์ด๋ฒ„ ์„œ์น˜ ์–ด๋“œ๋ฐ”์ด์ €'๋กœ ์ด๋ฆ„์„ ๋ณ€๊ฒฝ ํ•˜๊ณ  ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค๋กœ์˜ ์—ญํ• ์„ ํ•ด๋‚ด๋ ค๊ณ  ์• ์“ฐ๊ณ  ์žˆ๋‹ค.

๐Ÿ“Ž ** ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”(SEO), ์•„์ง๋„ ํ•œ๊ตญ์—์„œ ์•ˆ๋จนํž๊นŒ? **

๐Ÿค– robots.txt

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

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

๋˜ ๋ฐฉ๋ฌธํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๋ถ€๋กœ ๊ฐ€์ ธ๊ฐ€์ง€ ๋ง๋ผ๊ณ  ๋ช…์‹œ ํ•ด ๋‘” ๊ฒฝ๋กœ์— ํฌ๋กค๋Ÿฌ๋Š” ๋ฐฉ๋ฌธ ํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ์ด rule์„ ์จ ๋‘” ๊ณณ์ด ๋ฐ”๋กœ robots.txt์ธ๋ฐ ๊ฐ ์‚ฌ์ดํŠธ์˜ ๋ฃจํŠธ ๋„๋ฉ”์ธ์—์„œ robots.txt๋ฅผ ์กฐํšŒ ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๐Ÿค– **๋„ค์ด๋ฒ„ ๋‰ด์Šค ํŽ˜์ด์ง€์˜ robots.txt**๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

User-agent: Yeti
Allow: /main/imagemontage
Disallow: /
User-agent: *
Disallow: /

๋„ค์ด๋ฒ„ ๋‰ด์Šค ํŽ˜์ด์ง€์—์„œ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋“ฏ์ด Disallow / ๊ฐ€ ์žˆ๋Š” ์ด์ƒ ํฌ๋กค๋Ÿฌ๋Š” ๋‰ด์Šค ํŽ˜์ด์ง€๋ฅผ ํƒ์ƒ‰ ํ•  ์ˆ˜ ์—†๋‹ค. ๋ฐ”๋กœ ์ด ๋กœ๋ด‡ ๋ฃฐ ๋•Œ๋ฌธ์— ๊ตฌ๊ธ€์—์„œ๋Š” ๋„ค์ด๋ฒ„ ๋‰ด์Šค๊ฐ€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ๋œจ์ง€ ์•Š๋Š”๋‹ค. ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ๋ฐฉ๋ฌธํ•˜์ง€ ๋ง๋ผ๊ณ  ๋ช…์‹œ ํ•ด ๋‘์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

User-agent: *, ์ฆ‰ ๋ชจ๋“  ์‚ฌ์šฉ์ž, ํฌ๋กค๋Ÿฌ๋Š” / ์˜์—ญ์„ ๋ฐฉ๋ฌธํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ์‚ฌ์‹ค **์ง€๊ธˆ๊นŒ์ง€ ์˜จ๊ฐ– ๋ธ”๋กœ๊ทธ์—์„œ ์†Œ๊ฐœํ•œ ๋„ค์ด๋ฒ„ ๋‰ด์Šค ํฌ๋กค๋Ÿฌ๋“ค์€ robots.txt๋ฅผ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์€ ๊ฒƒ์ด๋‹ค. **

๊ทธ๋Ÿฌ๋‚˜ ๋„ค์ด๋ฒ„ ๋‰ด์Šค ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉ๋œ User-agent๊ฐ€ ํ•˜๋‚˜ ์žˆ๋Š”๋ฐ Yeti๋Š” ๋„ค์ด๋ฒ„๋ฅผ ํฌ๋กค๋ง ํ•  ์ˆ˜ ์žˆ๋‹ค. Yeti๋Š” ๋„ค์ด๋ฒ„์—์„œ ๊ฐœ๋ฐœํ•œ ํฌ๋กค๋Ÿฌ๋‹ค.

๋„ค์ด๋ฒ„๋Š” Yeti๋ผ๋Š” ํฌ๋กค๋Ÿฌ ์ „์— NaverBot์ด๋ผ๋Š” ํฌ๋กค๋Ÿฌ๋Š” ๊ณผ๊ฑฐ ์ผ๋ณธ ์‹œ์žฅ ์ง„์ถœ์„ ์‹œ๋„ ํ–ˆ๋‹ค๊ฐ€ ์š•๋จน๊ณ  ์‚ฌ๋ผ์ง„ ์ด๋ ฅ์ด ์žˆ๋‹ค. NaverBot์€ ์ผ๋ณธ ์œ„ํ‚คํ”ผ๋””์•„์— '์•…์„ฑ ๋ด‡'์œผ๋กœ ๋“ฑ๋ก๋˜๋Š” ์˜ค๋ช…์„ ๊ฐ–๊ฒŒ ๋๋‹ค. ํ•œ๊ตญ์—์„œ ๋„ค์ด๋ฒ„๋Š” ์ƒ๋‹นํžˆ ์„ฑ๊ณตํ•œ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค์ด์ง€๋งŒ ์ผ๋ณธ์—์„œ ๋„ค์ด๋ฒ„์˜ ํฌ๋กค๋Ÿฌ๋Š” robots.txt๋ฅผ ์ค€์ˆ˜ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ์ด์œ ๋กœ ๊ฝค ๋งŽ์€ ์š•์„ ๋จน์—ˆ์—ˆ๋‹ค.

๐Ÿ“– NaverBot

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

"ๆ—ฅๆœฌใงใฏใ€ๅ›ฝ้š›ๅŸบๆบ–ใธใฎๅฏพๅฟœไธๅ‚™ใชใฉใฎๅ•้กŒใŒไธ€้ƒจใฎWebใ‚ตใ‚คใƒˆ็ฎก็†่€…ใ‚‰ใซๆŒ‡ๆ‘˜ใ•ใ‚Œใ€ใ‚ขใ‚ฏใ‚ปใ‚นใ‚’ๆ‹’ๅฆใ™ใ‚‹ใ‚ตใ‚คใƒˆใ‚‚่ฆ‹ใ‚‰ใ‚ŒใŸใ€‚ใ“ใ‚Œใซๅฏพใ—ใฆใ€ใƒใ‚คใƒใƒผๅดใฏๅ…ฌๅผใฎใ‚ณใƒกใƒณใƒˆใ‚’ๅ‡บใ—ใฆใฏใ„ใชใ„ใŒใ€ๅพŒ็ถ™ใฎใ‚ฏใƒญใƒผใƒฉใƒผ๏ผˆYetiBot๏ผ‰ใงใฏๅฝ“ๆ™‚ๆŒ‡ๆ‘˜ใ•ใ‚ŒใŸไปฅไธ‹ใฎใ‚ˆใ†ใชๅ•้กŒใฏใ™ในใฆ่งฃๆฑบใ•ใ‚Œใฆใ„ใ‚‹ใ€‚"

๐Ÿ“– https://ja.wikipedia.org/wiki/NaverBot ๐Ÿ‡ฏ๐Ÿ‡ต

๋„ค์ด๋ฒ„์˜ ์ผ๋ณธ ์ง„์ถœ์€ ์ด๊ฒƒ์œผ๋กœ ์„ธ๋ฒˆ์งธ๋‹ค. ์ผ๋ณธ์— ์„œ๋น„์Šค๋ฅผ ์ถœ์‹œํ•˜๊ธฐ์— ์•ž์„œ ๋จผ์ € ํฌ๋กค๋Ÿฌ๋ฅผ ๋ณด๋‚ด์„œ ์ผ๋ณธ์˜ ์›น ํŽ˜์ด์ง€๋ฅผ ํƒ์ƒ‰ ํ•  ํ•„์š”๊ฐ€ ์žˆ์—ˆ๊ฒ ์ง€๋งŒ robots.txt๋ฅผ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์•„ ๋ถ€์ •์ ์ธ ์‹œ์„ ์„ ์‚ฌ๊ณ  ๋ง์•˜๋‹ค.

๐Ÿ“ฐ ์ดํ•ด์ง„์˜ 3๋ฒˆ์งธ ๋„์ „โ€ฆ"๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰ ์ผ๋ณธ ์ง„์ถœ ์ด๋ฒˆ์—” ๊ผญ ์„ฑ๊ณต"(์ข…ํ•ฉ)
๐Ÿ“ฐ ๋„ค์ด๋ฒ„, 3ยท1์ ˆ์— ์ผ๋ณธ ์ง„์ถœ ์„ ์–ธโ€ฆ์ดํ•ด์ง„ ์„ธ๋ฒˆ์งธ ๋„์ „ ์„ฑ๊ณตํ• ๊นŒ

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

๐Ÿ“„ ๊ธฐ์ˆ  ํ‘œ์ค€

"์›น ํผ๋ธ”๋ฆฌ์…”์˜ ์˜๊ฒฌ์„ ์กด์ค‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋Š” ๊ตฌ๊ธ€์ด โ€˜์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰์—”์ง„ ๋ฐฐ์ œํ‘œ์ค€โ€™(Robots Exclusion Protocol)๊ณผ NOARCHIVE ๋ฉ”ํƒ€ ํƒœ๊ทธ๋ฅผ ์ค€์ˆ˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ตฌ๊ธ€๋ณด๋‹ค ์•ž์„œ ์ž˜ ์ •๋ฆฝ๋œ ๊ธฐ์ˆ ์—๋Š” ๊ฒ€์ƒ‰์—”์ง„์— ์‚ฌ์ดํŠธ์˜ ์–ด๋–ค ๋ถ€๋ถ„์ด ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•˜๊ณ , ์–ด๋–ค ๋ถ€๋ถ„์€ ๊ฒ€์ƒ‰๊ฒฐ๊ณผ์— ๋‚˜ํƒ€๋‚˜์•ผ ํ• ์ง€๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค."

๐Ÿ“Ž ์ €์ž‘๊ถŒ ๋ฐ ์›น ๊ฒ€์ƒ‰์— ๊ด€ํ•œ ๊ตฌ๊ธ€์˜ ์ •์ฑ…

์ด๋ ‡๋“ฏ robots.txt๋Š” ๋‚ด๊ฐ€ ๋ธ”๋กœ๊ทธ๋ฅผ ์šด์˜ํ•˜๊ฑฐ๋‚˜ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœ ํ•  ๋•Œ ์–ด๋–ค ์ •๋ณด๋ฅผ ์ค‘์ ์ ์œผ๋กœ ๋…ธ์ถœํ•˜๊ณ  ์–ด๋–ค ๊ฒƒ์€ ํฌ๋กค๋ง๋˜์ง€ ์•Š๊ฒŒ ํ•  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…์ด๋‹ค. SEO์—๋„ ์˜ํ–ฅ์„ ๋งŽ์ด ๋ผ์น˜๋Š”๋ฐ ์Šคํƒ€ํŠธ์—…์˜ ๋Œ€ํ‘œ๋‚˜ ๊ฐœ๋ฐœ์ž๋“ค ์กฐ์ฐจ๋„ ์ด ๋ถ€๋ถ„์ด ๋ฏธ๋น„ํ•œ ๊ฒฝ์šฐ๋ฅผ ๋งŽ์ด ๋ดค๋‹ค. robots.txt๋ฅผ Disallow: /๋ผ๊ณ  ์ž‘์„ฑ ํ•ด ๋‘ฌ์„œ ๊ตฌ๊ธ€์—์„œ ์ž์‚ฌ ์„œ๋น„์Šค๋ช…์„ ๊ฒ€์ƒ‰ํ•ด๋„ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์•„ ๊ณ ๋ฏผ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ๋ชจ๋“  ํฌ๋กค๋Ÿฌ๋ฅผ Disallow ํ•ด ๋’€์œผ๋‹ˆ ๋‹น์—ฐํ•œ ๊ฒฐ๊ณผ์˜€์ง€๋งŒ ์•„๋ฌด๋„ ์ด์œ ๋Š” ๋ชฐ๋ž๋‹ค.

๐Ÿค” "User-Agent ์ฏค์ด์•ผ ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์ž–์•„์š”?"

Http ์š”์ฒญ ํ—ค๋”์— ์žˆ๋Š” User-Agent๋Š” ์†์‰ฝ๊ฒŒ ์ˆ˜์ • ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ˆ„๊ตฌ๋‚˜ ๋Œ€์ถฉ ํฌ๋กค๋Ÿฌ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด๋‘๊ณ  'GoogleBot'์ธ์ฒ™ ์†์ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ํฌ๋กค๋Ÿฌ๋ฅผ ์šด์˜ํ•˜๋Š” ํšŒ์‚ฌ๋“ค์€ ํฌ๋กค๋Ÿฌ์˜ IP ๋Œ€์—ญ๋„ ํ•จ๊ป˜ ๊ณต๊ฐœ ํ•ด ๋‘๊ณ  ์žˆ๋‹ค. Pinterest์˜ ๊ฒฝ์šฐ์—” 54.236.1.XXX IP ๋Œ€์—ญ์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋”ฐ๋ผ์„œ Reverse DNS ์กฐํšŒ๋ฅผ ํ†ตํ•ด์„œ ์ด User-agent๊ฐ€ ์ง„์งœ Pinterset ๋˜๋Š” Google-bot์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“Œ Pinterest ์‚ฌ์šฉ์ž ID

Pinterest/0.2 (+https://www.pinterest.com/bot.html)
Mozilla/5.0 (ํ˜ธํ™˜, Pinterestbot/1.0, + https://www.pinterest.com/bot.html)
Mozilla/5.0 (Linux, Android 6.0.1, Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, Gecko ๋“ฑ) Chrome/41.0.2272.96 Mobile Safari/537.36 (ํ˜ธํ™˜, Pinterestbot/1.0, + https://www.pinterest.com/bot.html)

Pinterest IP๋Š” ๋™์ ์ด๊ณ  ์ž์ฃผ ๋ณ€๊ฒฝ๋˜์ง€๋งŒ ํ•ญ์ƒ 54.236.1.XXX ๋ฒ”์œ„ ๋‚ด์— ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Ž Pinterest์˜ ํฌ๋กค๋Ÿฌ ์†Œ๊ฐœ

๐Ÿšง ์—ฌ๊ธฐ์„œ ๋ถ€ํ„ฐ๋Š” ๊ณต์‚ฌ์ค‘ ์ž…๋‹ˆ๋‹ค.

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

๐Ÿšฐ Content Extraction

์ธํ„ฐ๋„ท ๊ฐ•์˜์—์„œ ๋งํ•˜๋Š”๋Œ€๋กœ CSS Selector๋ฅผ ํ†ตํ•ด์„œ DOM์—์„œ text๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‚˜์œ๊ฑด ์•„๋‹ˆ์ง€๋งŒ ์กฐ๊ธˆ๋งŒ UI๊ฐ€ ๋ณ€๊ฒฝ ๋ผ๋„ ์ž‘๋™์ด ์•ˆ ๋  ๊ฐ์˜ค๋ฅผ ํ•ด์•ผํ•œ๋‹ค. ๋ณธ๋ฌธ ์ถ”์ถœ ์—ญ์‹œ ์›น ํฌ๋กค๋ง์„ ํ•  ๋•Œ ๋งž๋‹ฅ๋œจ๋ฆฌ๋Š” ๊นŒ๋‹ค๋กœ์šด ๋ฌธ์ œ๋‹ค.

๋‰ด์Šค ๊ธฐ์‚ฌ๋ฅผ ์ฝ๊ธฐ ์œ„ํ•ด ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜๋ฉด ์ค‘์š”ํ•œ ๋ณธ๋ฌธ ๋‚ด์šฉ๋ณด๋‹ค ์ €์งˆ ๊ด‘๊ณ ์™€ ๊ด€๋ จ ์—†๋Š” ๋‹ค๋ฅธ ๋‚ด์šฉ๋“ค์ด ๋” ๋งŽ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

๐Ÿ“„ DOM based content extraction via text density

DOM ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑ ํ•œ ๋’ค์— Text๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” DOM์„ ๋ฐ€๋„(Density)๋ผ๋Š” ๊ด€์ ์—์„œ ๋ฐ”๋ผ๋ณด๊ณ  ๋ณธ๋ฌธ์„ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋‹ค.

๐Ÿšœ ํฌ๋กค๋Ÿฌ ์•„ํ‚คํ…์ณ

๐Ÿงญ Fetch

Fetch๋Š” ๋‹ค์Œ์— ๋ฐฉ๋ฌธํ•  URL์„ ๊ฐ€์ ธ์™€์„œ ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฐฉ๋ฌธ์ด๋ž€ Http ์š”์ฒญ์„ ๋ณด๋‚ด Response Body๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ณผ์ •์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. Body์˜ DOM ํ•ด์„์€ Parse ๋‹จ๊ณ„๋กœ ๋„˜๊ธด๋‹ค.

์–ด๋–ค ๋…ผ๋ฌธ๋“ค์€ Fetch ๋ถ€๋ถ„์„ Multi-Thread Downloader๋ผ๋Š” ๋‹ค๋ฅธ ์ด๋ฆ„์„ ์จ์„œ ์†Œ๊ฐœํ•˜๊ธฐ๋„ ํ•˜๋Š”๋ฐ ์ด ๊ธ€์—์„œ Multi-Thread๊นŒ์ง€ ๋‹ค๋ฃจ๊ธฐ๋Š” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๋‹ค. ์–ด๋””๊นŒ์ง€๋‚˜ ๋‚ด ์ƒ๊ฐ์ธ๋ฐ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ ๋ณด๋‹ค๋Š” ๊ณง ์„ค๋ช…ํ•  Parallel Crawl์„ ์ดํ•ด ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋‚ซ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. Multi-Thread๋ฅผ ์ฃผ์ œ๋กœ ๊ธ€์„ ์“ด๋‹ค๋ฉด velog ์—ญ์‚ฌ์ƒ ๊ฐ€์žฅ ๊ธด ํฌ์ŠคํŠธ๋ฅผ ์จ์•ผ ํ• ๊ฑฐ๊ณ  ์ด ๋ถ„์•ผ๋งŒ ์ฃฝ์–ด๋ผ ๊ณต๋ถ€ํ•˜์‹œ๋Š” ๋ถ„๋“ค๋„ ์žˆ๋Š”๋ฐ ๋‚ด๊ฐ€ ๊ฐํžˆ ์“ธ ์ˆ˜๊ฐ€ ์—†๋‹ค;

๐Ÿ”Ž Parse

๊ฐ€์ ธ์˜จ ํŽ˜์ด์ง€ ๋‚ด์˜ ๋‹ค๋ฅธ Hyperlink๋ฅผ ์ถ”์ถœ ํ•ด๋Š” ๊ณผ์ •์ด๋ผ๊ณ  ํ•ด์„œ ๋‹ค๋ฅธ ๋…ผ๋ฌธ์—์„œ๋Š” URL extraction์ด๋ผ๊ณ ๋„ ๋งํ•œ๋‹ค. HTML ๋ฌธ์„œ์ผ ๊ฒฝ์šฐ ์ฃผ๋กœ <a> ํƒœ๊ทธ๋‚˜ <link>๊ฐ€ ์ข‹์„ ๊ฒƒ์ด๋‹ค. DOM์€ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

Parsing์ด ์‰ฝ์ง€ ์•Š์€ ์ด์œ ๋Š” ์›น ํŽ˜์ด์ง€๊ฐ€ HTML ํ‘œ์ค€์„ ๋Š˜ ์ง€ํ‚ค๊ณ  ์žˆ๋Š”๊ฑด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋“ค์€ ์‚ฌ์ดํŠธ๊ฐ€ HTML ํ‘œ์ค€์„ ์•ˆ ์ง€ํ‚ค๊ฑฐ๋‚˜ ํƒœ๊ทธ๊ฐ€ ์—‰๋ง์นœ์ฐฝ์ด๋ผ๋„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ตœ๋Œ€ํ•œ ์ œ๋Œ€๋กœ UI๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ดœ์ฐฎ์ง€๋งŒ DOM ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์„ํ•˜๋Š” ์ž…์žฅ์—์„œ๋Š” ํƒœ๊ทธ ํ•˜๋‚˜๋งŒ ์ œ๋Œ€๋กœ ๋‹ซํžˆ์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์˜คํƒ€๋งŒ ์žˆ์–ด๋„ ํ˜ผ๋ˆ์ด๋‹ค. ํ•™๊ต ๊ณผ์ œ๋‚˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ๋Š˜ ์ •๋ˆ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘ํ•˜์ง€๋งŒ ์•ผ์ƒ์˜ www๋Š” ์•Œ ์ˆ˜ ์—†๋Š” ์˜ˆ์™ธ ์ƒํ™ฉ๋“ค์„ ํ•ด๊ฒฐํ•ด์•ผ๋งŒ ํ•œ๋‹ค. ์ˆ˜๋ฐฑ ๋‹จ์œ„๋กœ ์ค‘์ฒฉ๋œ DOM ๊นŠ์ˆ™ํžˆ ๋‚ด๋ ค๊ฐ€์•ผํ•˜๊ณ  UTF-8์ด ์•„๋‹Œ ๋ฌธ์ž๋ฅผ ๋‹ค๋ค„์•ผํ•˜๋Š” Encoding ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚  ์ˆ˜๋„ ์žˆ๋‹ค. ํŠนํžˆ ์š”์ฆ˜์—๋Š” ์ง€๊ธˆ ์ด ๊ธ€๊ณผ ๊ฐ™์ด ์ด๋ชจ์ง€๋ฅผ ๋งŽ์ด ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ด๋ชจ์ง€๋Š” UTF-8 4๋ฐ”์ดํŠธ๋กœ ํ‘œํ˜„์ด ๋˜๋Š”๋ฐ MySQL์˜ UTF-8์€ 3๋ฐ”์ดํŠธ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ชจ์ง€๋กœ ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ฆฌ๋Š” ์‹œ๋„๋ฅผ ํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๋ธŒ๋ผ์šฐ์ €์—์„œ ํŒŒ์„œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ๋” ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ํ•œ๊ตญ์–ด๋กœ ์ž˜ ์ •๋ฆฌ๋œ ๊ธ€์ด ์žˆ๋‹ค. ๐Ÿ“Ž ๋ธŒ๋ผ์šฐ์ €๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”๊ฐ€?

๐Ÿ—บ URL Frontier

๋””์ง€๋ชฌ ํ”„๋ก ํ‹ฐ์–ด ใ…‹ใ…‹.

์ง€๊ธˆ๊นŒ์ง€ ์„ค๋ช…ํ•œ ๋‚ด์šฉ๋งŒ์œผ๋กœ ์›น ํฌ๋กค๋Ÿฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ ํ•ด ๋ณธ๋‹ค๋ฉด ๋Œ€์ถฉ ์ด๋ ‡์ง€ ์•Š์„๊นŒ?

๐Ÿ—‘ Dup URL Elim

์ด๋ฏธ ๋ฐฉ๋ฌธ ํ–ˆ๋˜ URL์„ ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š๋„๋ก ์ค‘๋ณต URL์„ ์ œ๊ฑฐํ•˜๋Š” ๋‹จ๊ณ„๋‹ค.

์•„๋ž˜ ๋‘ URL์€ ์‹ค์ œ๋กœ ๊ฐ™์€ URL์ด๊ธฐ ๋•Œ๋ฌธ์— Query Parameter๋Š” Ordering์„ ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

https://example.com?page=1&section=1
https://example.com?section=1&page=1

๐Ÿ“„ Efficient URL caching for world wide web crawling

๐Ÿ‰ Freshness, โฐ Revisiting

์ž๊พธ ๋”ด ์ด์•ผ๊ธฐํ•ด์„œ ๋ฏธ์•ˆํ•œ๋ฐ ์–ด๋–ค ๋…ผ๋ฌธ์—์„œ๋Š” ์ด ๋ถ€๋ถ„์„ Scheduler๋ผ๊ณ  ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ์ž ์•„๋ฌดํŠผ, ํฌ๋กค๋Ÿฌ๊ฐ€ ํ•œ ๋ฒˆ ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ–ˆ๋‹ค๋ฉด ๋‹ค์Œ์— ๋‹ค์‹œ ์ด ํŽ˜์ด์ง€๋ฅผ ์–ธ์ œ ๋ฐฉ๋ฌธ ํ•ด์•ผํ• ๊นŒ?

์‡ผํ•‘ ๊ฐ™์€ ์˜คํ”ˆ ๋งˆ์ผ“ ํ”Œ๋žซํผ์—์„œ ํŒ๋งค์ž๊ฐ€ ๊ฐ€๊ฒฉ์„ ๋ฐ”๊ฟจ์„ ๊ฒฝ์šฐ ํฌ๋กค๋Ÿฌ๋Š” ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ๋ณ€๊ฒฝ๋œ ๊ฐ€๊ฒฉ์„ UPDATE ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ตœ์ €๊ฐ€ ์ƒํ’ˆ์„ ํด๋ฆญํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌ ๋ง‰์ƒ ํŒ๋งค ํŽ˜์ด์ง€์—์„œ๋Š” ์ „ํ˜€ ๋‹ค๋ฅธ ๊ฐ€๊ฒฉ์ด ํ‘œ์‹œ๋˜๋Š” ๊ฒฝํ—˜์„ ํ•ด ๋ณธ์ ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ํŒ๋งค์ž๊ฐ€ ๊ฐ€๊ฒฉ์„ ๋ฐ”๊ฟจ์ง€๋งŒ ํฌ๋กค๋Ÿฌ๊ฐ€ ์ƒํ’ˆ ํŽ˜์ด์ง€๋ฅผ ์žฌ๋ฐฉ๋ฌธ(revisit)ํ•˜์ง€ ์•Š์•„ ๊ฐ€๊ฒฉ UPDATE๊ฐ€ ์ด๋ค„์ง€์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด๋Ÿฐ ์ผ์ด ๋ฒŒ์–ด์ง„๋‹ค.

Page Freshness๋ฅผ ์œ ์ง€ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ํฌ๋กค๋Ÿฌ๊ฐ€ ์ตœ๋Œ€ํ•œ ์ž์ฃผ HTTP ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค๋ฉด Freshness๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์‰ฝ๊ฒ ์ง€๋งŒ ์›น ํฌ๋กค๋Ÿฌ๊ฐ€ ์ˆ˜์–ต๊ฐœ์˜ ์ƒํ’ˆ ํŽ˜์ด์ง€์— ๊ณ„์†ํ•ด์„œ ์ด๋Ÿฐ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š”๊ฑด ์—„์ฒญ๋‚œ ๋น„์šฉ์ด ๋“ ๋‹ค. ์•ž์„œ ๋„ค์ด๋ฒ„์˜ ์›น ํฌ๋กค๋Ÿฌ NaverBot์˜ ์‚ฌ๋ก€์—์„œ๋„ ์‚ดํŽด ๋ดค์ง€๋งŒ ํฌ๋กค๋Ÿฌ๊ฐ€ Freshness๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ง‘์ค‘์ ์œผ๋กœ ๋ช‡๋ช‡ ํŽ˜์ด์ง€๋ฅผ ์—ฌ๋Ÿฌ์ฐจ๋ก€ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ๋ชปํ•œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์™”์—ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์‚ฌ์ดํŠธ์— ์ตœ์†Œํ•œ์˜ ๋ถ€ํ•˜๋งŒ ์คŒ๋ฉด์„œ ์›น ํฌ๋กค๋ง์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ Freshness๋ฅผ ํ™•๋ณด ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

๐Ÿ‘ฎ๐Ÿปโ€โ™€๏ธ Uniform

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

ฦ› Lambda Crawl

์กฐ์ •ํ›„ ๊ต์ˆ˜์™€ ํ—ฅํ† ๋ฅด ๊ฐ€๋ฅด์‹œ์•„ ๋ชฐ๋ฆฌ๋‚˜ ๊ต์ˆ˜๊ฐ€ ๐Ÿ“„ (2003) ACM Trans Database Syst 28:390โ€“426 ์—์„œ ์ œ์•ˆ ํ–ˆ๋˜ ์ตœ์ ํ™” ๋ชจ๋ธ์„ ์ข€ ๋” ์‰ฝ๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ๋ฐœ์ „ ์‹œํ‚จ ๋ฐฉ์‹์ด๋‹ค. '๋žŒ๋‹ค ํฌ๋กค'์ด๋ผ๊ณ  ์†Œ๊ฐœํ•˜๋Š” ์ด ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹์€ ๊ต‰์žฅํžˆ ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค€๋‹ค. ์ž์ฃผ ๋ณ€ํ™” ํ•˜๋Š” ํŽ˜์ด์ง€์˜ ๋ฐฉ๋ฌธ ๊ฐ„๊ฒฉ์„ ์ ์  ์ค„์—ฌ๋‚˜๊ฐ€์ง€๋งŒ ๋„ˆ๋ฌด ๋งŽ์ด ๋ณ€ํ™”ํ•˜๋ฉด ์˜คํžˆ๋ ค ์ ์ˆ˜๋ฅผ ๊นŽ์•„๋ฒ„๋ฆฌ๋Š” ํ•จ์ˆ˜๋‹ค.

Freshness๋ฅผ ์œ ์ง€ํ•˜๊ธฐ์œ„ํ•œ ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๊ฒƒ์ด ์žˆ๋‹ค. ๋žŒ๋‹ค ํฌ๋กค๋„ ์ด ๋‘๊ฐ€์ง€๋ฅผ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ๋ณด๊ณ  ์žˆ๋‹ค.

  • ์ด ํŽ˜์ด์ง€๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ๋ฐ”๋€Œ๋Š”์ง€
  • ์ด ํŽ˜์ด์ง€๋ฅผ ์œ ์ €๋“ค์ด ์–ผ๋งˆ๋‚˜ ์ฐพ๋Š”์ง€

๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜์ž๋ฉด ์›น ํฌ๋กค๋Ÿฌ๋Š” ์ค‘์š”ํ•œ ํŽ˜์ด์ง€๋“ค์€ ์ตœ๋Œ€ํ•œ Freshํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๋…ผ๋ฌธ์„ ๋ณด๋ฉด ์˜จํ†ต ์ˆ˜ํ•™ ๊ณต์‹ ํˆฌ์„ฑ์ด๋ผ์„œ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•  ์—„๋‘๊ฐ€ ์•ˆ ๋‚˜์„œ ์ด ๋ถ€๋ถ„ ๋‚˜์ค‘์— ์™„์„ฑํ•ด์•ผ๊ฒ ๋‹ค...

๐Ÿƒ๐Ÿปโ€โ™€๏ธ Machine Learning

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

๋…ผ๋ฌธ์—์„œ๋Š” Multi-Aramed bandit์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ๋•๋ถ„์— ๋งค์šฐ ๋†’์€ ์„ฑ๋Šฅ์„ ํ™•๋ณด ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค๊ณ ํ•œ๋‹ค. ํŠนํžˆ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ ์„๋•Œ๋„ ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์คฌ๋‹ค. ์žฌ๋ฐฉ๋ฌธ(revisit) ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋จธ์‹  ๋Ÿฌ๋‹์„ ์ ์šฉํ•˜๊ณ  ์‹คํ—˜ ํ•œ ๋…ผ๋ฌธ์ด์ง€๋งŒLambdaCrawl ๋ฐฉ์‹์ด ๊ฝค ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค˜์„œ ๋†€๋ž๋‹ค๊ณ  ํ•œ๋‹ค.

๋จธ์‹ ๋Ÿฌ๋‹๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ด ํฌ์ŠคํŠธ์—์„œ๋Š” ์ž์„ธํžˆ ์„ค๋ช… ํ•  ์ˆ˜ ์—†๋‹ค. ์ด๋ฏธ ์ข‹์€ ํ•œ๊ตญ์–ด ์ž๋ฃŒ๊ฐ€ ๋งŽ์œผ๋‹ˆ Multi-Armed Bandits์ด ๋Œ€์ถฉ ๋ฌด์—‡์ธ์ง€ ์ •๋„๋งŒ ์งš๊ณ  ๋„˜์–ด๊ฐ€์ž.

๐Ÿ’ช๐Ÿป Multi-Armed Bandits

"Multi-Armed Bandits์€ ์นด์ง€๋…ธ์—์„œ ์–ด๋–ค ์Šฌ๋กฏ๋จธ์‹ ์— ํˆฌ์ž๋ฅผ ํ•ด์•ผ ์ด์ต์„ ์ตœ๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ์„์ง€์— ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด Multi-Armed Bandits์€ ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋Š ์Šฌ๋กฏ๋จธ์‹ ์˜ ์†์žก์ด๋ฅผ ๋‹น๊ฒจ์•ผ ๊ฐ€์žฅ ๋†’์€ ์ˆ˜์ต์„ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์„์ง€๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค."

๐Ÿ“Ž Multi-Armed Bandits
๐Ÿ“– Multi-armed bandit - Wikipedia ๐Ÿ‡บ๐Ÿ‡ธ

๐Ÿ‘ Content Seen?

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

Near-Duplicate Document๋Š” ์ด๋Ÿฐ ๊ณ ๋ฏผ์„ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š” ๋ถ„์•ผ๋‹ค. ๋‘ ๋ฌธ์„œ๊ฐ€ ๋น„์Šทํ•œ ๋‚ด์šฉ์ธ์ง€ ์•„๋‹Œ์ง€ ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ? String Compare๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋‹จ ํ•˜๋‚˜์˜ ๊ณต๋ฐฑ์ด๋‚˜ ๊ธ€์ž๋งŒ ๋‹ฌ๋ผ์ ธ๋„ ๋‘ ๋ฌธ์žฅ์€ ์ „ํ˜€ ๋‹ค๋ฅด๋‹ค๊ณ  ํ•  ๊ฒƒ์ด๋‹ค.

"๋‹ค๋žŒ์ฅ ์ณ‡๋ฐ”ํ€ด์— ํƒ€๊ณ ํŒŒ"
"๋‹ค๋žŒ์ฅ ์ณ‡๋ฐ”ํ€ด์— ํƒ€๊ณ ํŒŒ."

์‚ฌ๋žŒ์ด ๋ณด๊ธฐ์—๋Š” ๋ถ„๋ช… ๊ฐ™์€ ๋ฌธ์žฅ์ด๊ณ  ๋‚ด์šฉ์ง€๋งŒ ๋ฐ์ดํ„ฐ์ ์œผ๋กœ๋Š” ํ™•์‹คํžˆ ๋‹ค๋ฅธ ๋ฌธ์žฅ์ด๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ฌธ์žฅ์˜ ๊ธธ์ด๋Š” 12์ด๊ณ  ๋‘ ๋ฒˆ์งธ ๋ฌธ์žฅ์˜ ๊ธธ์ด๋Š” ๋งˆ์นจํ‘œ๊ฐ€ ๋ถ™์–ด์„œ 13์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์–ผํ• ์ƒ๊ฐํ•ด๋„ String Compare๋Š” ์ค‘๋ณต ๋ฌธ์„œ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋Š”๋ฐ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๋‹ค.

๋ฌธ์žฅ์ด ์–ผ๋งˆ๋‚˜ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ฌธ์žฅ์„ ๋‹จ์–ด๋กœ ์ชผ๊ฐ  ๋‹ค์Œ์— ์ข€ ๋” ์ž์„ธํžˆ ํŒŒ์•… ํ•ด ๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์˜ˆ์ปจ๋Œ€ ์–ด๋–ค ๋ฌธ์žฅ์ด ๋‹จ์–ด A, B, C๋กœ ์ด๋ฃจ์–ด ์ ธ ์žˆ๋‹ค๊ณ  ๋ณด๊ณ  ์ด๊ฒƒ์„ ์œ ์‚ฌ๋„(Similarity)๋ผ๊ณ  ๋ถ€๋ฅด๋„๋ก ํ•˜์ž.

๐Ÿƒ JACARD

์ž์นด๋“œ ์œ ์‚ฌ๋„๋Š” ํ”ํžˆ ์ƒ๊ฐ ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฐฉ๋ฒ•์„ ์“ฐ๋ ค๋ฉด ๋ฌธ์žฅ์„ ์–ด๋–ป๊ฒŒ ๋‹จ์–ด ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌ ํ• ์ง€ ๊ฒฐ์ •ํ•ด์•ผํ•œ๋‹ค. "~๋‹ค", "๋ฐ", "๊ฒƒ"๊ณผ ๊ฐ™์ด ๋„ˆ๋ฌด ํ”ํžˆ ๋“ฑ์žฅํ•˜๋Š” ์š”์†Œ๋“ค์€ stop-word๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์ด๋Ÿฐ๊ฒƒ๋“ค์„ ์šฐ์„  ์ œ๊ฑฐ ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๋” ๋‚˜์•„๊ฐ€๋ฉด ์ด๊ฒƒ์€ ๊ฒฐ๊ตญ ํ•œ๊ตญ์–ด ํ˜•ํƒœ์†Œ ๋ถ„๋ฆฌ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ฒŒ ๋œ๋‹ค.

๐Ÿ“ cos similarity

#๏ธโƒฃ Sim Hashing

๐Ÿ“ƒ Detecting Near-Duplicates for Web Crawling

Detecting Near-Duplicates for Web Crawling ๋…ผ๋ฌธ ์—ญ์‹œ 700ํšŒ๊ฐ€ ๋„˜๋„๋ก ์ธ์šฉ๋œ ์ค‘์š”ํ•œ ๋…ผ๋ฌธ์ด๋‹ค. ๐Ÿ“ƒ **Similarity Estimation Techniques from Rounding Algorithms**์—์„œ๋Š” ๋ฌธ์„œ ๋งˆ๋‹ค ๊ณ ์œ ํ•œ Finger Print, ํ•ด์‹œ๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ–ˆ๋‹ค.

๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป **Gurmeet Manku**๋Š” ํ˜„์žฌ ๊ตฌ๊ธ€์˜ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋‹ค. ํฌ๋กค๋Ÿฌ๋‚˜ ์ •๋ณด๊ฒ€์ƒ‰ ๊ด€๋ จ ํ•ด์„œ๋Š” ์—ญ์‹œ ๊ตฌ๊ธ€์˜ ์—ฐ๊ตฌ์ธ๋ ฅ์ด ์••๋„์ ์ด๋‹ค.

๋Œ€ํ•™์ƒ๋“ค์˜ ์กธ์—… ๋…ผ๋ฌธ, ์—์„ธ์ด์˜ ํ‘œ์ ˆ ์—ฌ๋ถ€๋ฅผ ๊ฐ€๋ฆฌ๋Š”๋ฐ ์“ฐ์ด๋„ ํ•œ๋‹ค.

๐Ÿง‘๐Ÿปโ€๐ŸŽจ state-of-the-art

AI๋‚˜ ๋จธ์‹ ๋Ÿฌ๋‹์„ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋ฉด ๋†’์€ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ•ด์„œ ์™„๋ฒฝ์— ๊ฐ€๊นŒ์›Œ์ง„ ๋ชจ๋ธ์— SoA๋ผ๊ณ  ํ•œ๋‹ค. ์‚ฌ์ „์—์„œ๋Š” ๋Œ€๋ถ€๋ถ„ '์ตœ์ฒจ๋‹จ'์ด๋ผ๊ณ  ๋งŽ์ด ๋ฒˆ์—ญํ•˜๊ณ  ๊ฑฐ์˜ ์ตœ๊ณ ์˜ ๊ฒฝ์ง€์— ๋„๋‹ฌํ–ˆ๋‹ค๋Š” ์˜๋ฏธ๋กœ ๋งŽ์ด ์“ฐ์ด๋Š”๋ฐ ๋‚˜๋Š” ์ด ์šฉ์–ด๋Š” '์˜ˆ์ˆ ์˜ ๊ฒฝ์ง€'๋ผ๊ณ  ๋ฒˆ์—ญํ•˜๋Š”๊ฒŒ ๋”ฑ ์•Œ๋งž์ง€ ์•Š๋‚˜ ์ƒ๊ฐํ•œ๋‹ค.

๐Ÿ‘ฏโ€โ™€๏ธ Parallel Crawler

๋“œ๋„“์€ www๋ฅผ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—ฌ๋Ÿฌ๋Œ€์˜ ํฌ๋กค๋Ÿฌ๋Š” ํ•„์ˆ˜์ ์ด๋‹ค.

Parallel Cralwer ์—ญ์‹œ ์ˆ˜๋ฐฑํšŒ ๋„˜๊ฒŒ ์ธ์šฉ๋œ ๋ฉ‹์žˆ๋Š” ๋…ผ๋ฌธ์ด๋‹ค.

robots.txt๋ฅผ ์ž˜ ์ง€ํ‚ค๋Š” ํฌ๋กค๋Ÿฌ๊ฐ€ ํ•œ ๋Œ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. robots.txt์—์„œ ์ด ํฌ๋กค๋Ÿฌ์—๊ฒŒ ์ตœ๋Œ€ ๋ฐฉ๋ฌธ ์ฃผ๊ธฐ๋ฅผ 10์ดˆ๋กœ ์„ค์ •ํ–ˆ๋‹ค๋ฉด ํฌ๋กค๋Ÿฌ๋Š” 24์‹œ๊ฐ„๋™์•ˆ ์ด ์‚ฌ์ดํŠธ์—์„œ ์ตœ๋Œ€ 86400๊ฐœ์˜ ํŽ˜์ด์ง€๋งŒ ํƒ์ƒ‰ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

Crawl-delay: 10

์ด๋Ÿฐ ์ƒํ™ฉ ์†์—์„œ ํฌ๋กค๋Ÿฌ๊ฐ€ ๋ฉ€๋šฑ ๋ฉ€๋šฑ ์žˆ๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ๋Š” ์‰ด ์ƒˆ ์—†์ด ๋ฐ”๋€Œ๊ณ  ์žˆ์„ ํ…๋ฐ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ข‹์„๊นŒ?

๊ฐœ๋ฐœ์ž๋“ค์„ ํ˜„ํ˜นํ•˜๊ธฐ ์ข‹์€ ๋‹จ์–ด๊ฐ€ Sacalable, Scale Out์ด๋‹ค. ์‰ฝ๊ฒŒ ๋ณ‘๋ ฌ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์€ ๋น„์ฆˆ๋‹ˆ์Šค์—์„œ๋„ ํ™˜์˜๋ฐ›๋Š”๋‹ค.

ํŒจ๋Ÿฌ๋ž  ํฌ๋กค๋ง์€ ์–ด๋–ป๊ฒŒ ์—ฌ๋Ÿฌ๋Œ€์˜ ๋…ธ๋“œ๋กœ ํฌ๋กค๋ง์„ ํ•ด์•ผ ํ• ์ง€ ๊ณ ๋ฏผํ•œ ๊ฒฐ๊ณผ๋‹ค. ์—ญ์‹œ UCLA์˜ ์กฐ์ •ํ›„ ๊ต์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ๋Œ€์˜ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ํฌ๋กค๋ง์— ํš๊ธฐ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ–ˆ๋‹ค.

๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ๊ณผ ๊ฐ™์€ ๋™์‹œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋„ ์ฒซ ๋ฒˆ์งธ ๊ณ ๋ฏผ๋˜๋Š” ๋ฌธ์ œ๋Š” '์–ด๋–ป๊ฒŒ ์ž‘์—…์„ ๋ถ„๋ฆฌํ• ๊นŒ?'์ด๋‹ค. ํฌ๋กค๋Ÿฌ์˜ ๊ฒฝ์šฐ URL์ด ์ž‘์—… ๋‹จ์œ„๊ฐ€ ๋ ๊ฒƒ์ด๋‹ค.

๐Ÿ‘‘ Master-Slave

๊ทธ๋ฆผ์—์„œ ๋ณด์‹œ๋‹ค์‹œํ”ผ SPOF๊ฐ€ ๋œ๋‹ค. ๋ชจ๋“  ํฌ๋กค๋Ÿฌ๊ฐ€ ์ž‘์—… ์ƒํ™ฉ์„ ๊ณต์œ ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ Master Node๊ฐ€ ์‚ฌ๋งํ•˜๋ฉด ๋‚˜๋จธ์ง€ ํฌ๋กค๋Ÿฌ๋“ค์˜ ์ž‘์—…๋„ ๋ฉˆ์ถœ ์ˆ˜ ๋ฐ–์— ์—†๋Š” ๊ตฌ์กฐ๋‹ค.

๐ŸŒ‹ SPOF (Single Point of Failur)

ํ•œ๊ตญ์–ด๋กœ ์ง์—ญํ•˜๋ฉด ๋ณดํ†ต '๋‹จ์ผ ์‹คํŒจ ์ง€์ '์ด๋ผ๊ณ ๋“ค ํ•˜๋Š”๋ฐ ๊ธฐ์ˆ  ์šฉ์–ด ๋ฒˆ์—ญ์ด ๋Š˜ ๊ทธ๋ ‡๋“ฏ์ด ๋‹ค์ •ํ•˜์ง€ ๋ชปํ•˜๋‹ค. 'ํ„ฐ์ง€๋ฉด ๋‹ค ์ฃฝ๋Š” ๊ณณ'๋ผ๊ณ  ๋ฒˆ์—ญํ•ด์•ผ ๋” ์‰ฝ๋‹ค. ์˜ˆ์ปจ๋Œ€ A ์„œ๋ฒ„๊ฐ€ ์ฃฝ์œผ๋ฉด ์„œ๋น„์Šค ์ „์ฒด๊ฐ€ ๋‹ค์šด๋œ๋‹ค๊ณ  ํ•  ๋•Œ A์„œ๋ฒ„๋Š” SPOF๊ฐ€ ๋œ๋‹ค. ๋ฒˆ์—ญ์€ ๋Š˜ ์–ด๋ ต๋‹ค.

โ›ฐ Stand-alone

ํฌ๋กค๋Ÿฌ๊ฐ€ ์ด์ œ ๋…๋ฆฝ ํ•  ํ•„์š”์„ฑ์„ ๋Š๋‚€๋‹ค. ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๊ฐ€ ์—†์–ด๋„ ํฌ๋กค๋Ÿฌ๊ฐ€ 'ํ˜ผ์ž์„œ๋„ ์ž˜ ํ•ด์š”'๋ฅผ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

Parallel Crawling ๋…ผ๋ฌธ์—์„œ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ชจ๋“œ๋ฅผ ์†Œ๊ฐœํ•œ๋‹ค. ์„ธ ๊ฐ€์ง€ ์ •๋„๋งŒ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

๐Ÿ”ฅ Firewall mode

Firewall mode๋Š” ๊ฐ€์žฅ ๋‹จ์ˆœํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค. Firewall mode๋Š” ๊ฐ ํฌ๋กค๋Ÿฌ๊ฐ€ inter-link๋ฅผ ์ „ํ˜€ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ํฌ๋กค๋งํ•œ๋‹ค. C1 ํฌ๋กค๋Ÿฌ๋Š” S1 ์‚ฌ์ดํŠธ๋งŒ ๋ฐฉ๋ฌธํ•˜๊ณ  C2 ํฌ๋กค๋Ÿฌ๋Š” S2 ์‚ฌ์ดํŠธ๋งŒ ๋ฐฉ๋ฌธํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ฆ‰ ์ž๊ธฐ ๋‹ด๋‹น ์‚ฌ์ดํŠธ๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๋งํฌ, ๋„๋ฉ”์ธ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๋Š” ์™ธ๋ถ€ ๋งํฌ๋Š” ๋ฌด์‹œํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๊ฐ€์žฅ ๊ตฌํ˜„ํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ Firewall mode์—์„œ๋Š” ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ ๊ตฌ์„ ๋‹ค ๋ฐฉ๋ฌธํ•˜์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์–ด๋–ค ํŽ˜์ด์ง€๋Š” ๋ฐ˜๋“œ์‹œ inter-link๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์˜ˆ๋ฅผ๋“ค๋ฉด Figure 2์— ๋‚˜์™€์žˆ๋Š” d์™€ eํŽ˜์ด์ง€๊ฐ€ ๊ทธ๋ ‡๋‹ค. dํŽ˜์ด์ง€๋Š” h ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๊ฐˆ ์ˆ˜ ์žˆ๋Š”๋ฐ Firewall mode์—์„œ dํŽ˜์ด์ง€๋Š” C2 ํฌ๋กค๋Ÿฌ ๋‹ด๋‹น ์‚ฌ์ดํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ์„œ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ด์ฒ˜๋Ÿผ Firewall mode๋Š” ํฌ๋กค๋Ÿฌ๋ผ๋ฆฌ ์ž‘์—… ๊ณต์œ ๋ฅผ ์œ„ํ•œ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ํ•˜์ง€ ์•Š์•„์„œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋น„์šฉ์ด ํ™• ์ค„์–ด๋“ค์ง€๋งŒ ์œ ์‹ค๋˜๋Š” ํŽ˜์ด์ง€๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ์ด ๋ชจ๋“œ๋กœ๋Š” Figure 2์—์„œ๋Š” d, h ํŽ˜์ด์ง€๋ฅผ ์ˆ˜์ง‘ ํ•  ์ˆ˜ ์—†์„ ๊ฒƒ์ด๋‹ค.

๐Ÿคผ Cross-over mode

โš–๏ธ Exchange mode

Exchange mode๋Š” URL์„ ํฌ๋กค๋Ÿฌ๋ผ๋ฆฌ ๊ตํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ด ๋ชจ๋“œ๋Š” Firewall mode์—์„œ์˜ ๋‹จ์ ์„ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.

C2 ํฌ๋กค๋Ÿฌ๋Š” ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•˜๋‹ค๊ฐ€ d ํŽ˜์ด์ง€๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” inter-link๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋  ํ…๋ฐ ์ด ๋งํฌ๋Š” C1 ํฌ๋กค๋Ÿฌ์—๊ฒŒ ๋˜์ ธ ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

ํฌ๋กค๋Ÿฌ๋ผ๋ฆฌ ๊ณ„์†ํ•ด์„œ URL์„ ๊ตํ™˜ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ๋งŽ์€ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์ด ๋ฐœ์ƒํ•œ๋‹ค.


๐Ÿ“‰ URL exchange minimization

์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ์‹์„ ์‚ดํŽด ๋ดค๊ณ  Parallel Cralwer ๋…ผ๋ฌธ์€ URL Exchange์˜ ์„ฑ๋Šฅ์ด ๊ฐ€์žฅ ๋†’๋‹ค๊ณ  ํ‰๊ฐ€ํ•˜๊ณ  ์žˆ๋‹ค. URL Exchange mode์˜ ๊ฐ€์žฅ ํฐ ๋‹จ์ ์€ URL ๊ตํ™˜์ด ์ž์ฃผ ์ผ์–ด๋‚˜๋Š” ๋งŒํผ ๋„คํŠธ์›Œํฌ ๋น„์šฉ๋„ ๋†’์•„์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด URL ๊ตํ™˜์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

๐Ÿค™๐Ÿป Batch communication

์ด ๋ฐฉ๋ฒ•์€ ๊ทธ๋ƒฅ URL set์„ ํฌ๋กค๋Ÿฌ๋ผ๋ฆฌ ํ•œ ๋ฒˆ์— ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ ๋ฐฐ์น˜ ๋‹จ์œ„๋กœ URL์„ ๊ตํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ ํ†ต์‹ ๋Ÿ‰์ด ๋น„๊ต์  ์ ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

๐Ÿ–จ Replication

๐Ÿ˜ฎ ๋„ˆ๋ฌด ๋ณต์žกํ•ด์š”

๊ฒ€์ƒ‰ ์—”์ง„ ์„œ๋น„์Šค๋ฅผ ํ•˜๋ ค๋Š”๊ฒŒ ์•„๋‹Œ์ด์ƒ ๋Œ€๋ถ€๋ถ„์˜ ์ƒํ™ฉ์—์„œ๋Š” ํฌ๋กค๋Ÿฌ๋ฅผ ๋งŒ๋“ค๊ธฐ ๋ณด๋‹ค๋Š” ์›น ์Šคํฌ๋ž˜ํผ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์œผ๋กœ ๋๋‚œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํ™ฉ์„ ์ƒ๊ฐ ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  • ์ •๋ถ€ ๊ด€๋ จ ์‚ฌ์ดํŠธ์—์„œ ์—„์ฒญ ๋งŽ์€ ๊ณต์‹œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€์„œ ์—‘์…€์— ์ •๋ฆฌ ํ•ด์•ผ ํ•ด์š”.

  • ๋งค์ผ ๊ธฐ์ƒ์ฒญ ์‚ฌ์ดํŠธ์—์„œ ์—…๋ฐ์ดํŠธ ๋˜๋Š” ๋‚ ์”จ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•ด์š”.

  • ๊ฒŒ์‹œํŒ์— ์ƒˆ ๊ธ€์ด ์˜ฌ๋ผ ์™”๋Š”์ง€ ์ •๊ธฐ์ ์œผ๋กœ ์ฒดํฌํ•˜๊ณ  ์•Œ๋ฆผ์ด ์™€์•ผํ•ด์š”.

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

โœ‚๏ธ ์Šคํฌ๋ž˜ํ•‘

์›น ์‚ฌ์ดํŠธ๋ฅผ ์† ์‰ฝ๊ฒŒ ์Šคํฌ๋žฉ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํˆด์€ ๋งŽ์ด ๋‚˜์™€ ์žˆ๋‹ค. ๐Ÿ‘ป PhantomJS ๋ผ๋˜๊ฐ€...

๐Ÿ“Ž ํ† ์Šค๊ฐ€ ํ˜„๋Œ€์นด๋“œ๋ฅผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค :: Outsider's Dev Story

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

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

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

๐Ÿ— ๋งˆ๋ฌด๋ฆฌ

ํฌ๋กค๋Ÿฌ์˜ ๊ฐœ๋…์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋…ผ๋ฌธ๋“ค ๋ช‡๊ฐœ๋ฅผ ๊ฐ€์ ธ๋‹ค ๋†“๊ณ  ์ตœ๋Œ€ํ•œ ๊ฒ‰๋งŒ ํ•ฅ์•„ ๋ณด์•˜๋‹ค. ๋…ผ๋ฌธ์—์„œ๋Š” ํ›จ์”ฌ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๊ณ  ์•Œ ์ˆ˜ ์žˆ๋Š” ์•„์ด๋””์–ด๋“ค๋„ ๋งŽ๋‹ค.

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

๐Ÿ“˜ ๋” ์ฝ์–ด ๋ณผ ๊ฑฐ๋ฆฌ

๋ชจ๋นˆ์ผˆ์˜ ๊ธ€

๐Ÿ“Ž https://velog.io/@mowinckel/์›น-ํฌ๋กค๋ง-I

ํฌ๋กค๋ง ๊ด€๋ จ ์—ฐ๊ตฌ์ž ํ™ˆํŽ˜์ด์ง€

๐Ÿ  Marc Najork's home page
๐Ÿ  Junghoo "John" Cho ์กฐ์ •ํ›„

์›น ํฌ๋กค๋Ÿฌ ๊ด€๋ จ ๋…ผ๋ฌธ

๐Ÿ“ƒ [Heydon, A., Najork, M. Mercator: A scalable, extensible Web crawler. World Wide Web 2, 219โ€“229 (1999)]
(https://link.springer.com/article/10.1023/A:1019213109274)

๐Ÿ“ƒ Christopher Olston and Marc Najork (2010), "Web Crawling", Foundations and Trendsยฎ in Information Retrieval: Vol. 4: No. 3, pp 175-246.
๐Ÿ“ƒ Junghoo Cho and Hector Garcia-Molina "Parallel Crawlers." In Proceedings of the World Wide Web conference (WWW), Honolulu, Hawaii, May 2002.
๐Ÿ“ƒ Detecting Near-Duplicates for Web Crawling
GS Manku, A Jain, A Das Sarma

๐Ÿ“ƒ Tractable near-optimal policies for crawling
Yossi Azar, Eric Horvitz, Eyal Lubetzky, Yuval Peres, and Dafna Shahaf

์ปจํ…์ธ  ์ถ”์ถœ ๊ด€๋ จ ๋…ผ๋ฌธ

๐Ÿ“ƒ Sun, Fei, Dandan Song, and Lejian Liao, โ€œDom based content extraction via text density,โ€ Proceedings of the 34th International ACM SIGIR Conference on Research and Development in Information Retrieval, pp.245-254, 2011.

๊ธˆ์œต ์•ฑ๋“ค์˜ ์Šคํฌ๋ž˜ํ•‘ ์ „์Ÿ

๐Ÿ“ฐ ํ•€ํ…Œํฌ์—…์ฒด ํ† ์Šค โ€˜์Šคํฌ๋ž˜ํ•‘โ€™ ๊ต๋ณด๋ผ์ดํ”„ยท์นด์นด์˜ค โ€˜์†์•“์ดโ€™
๐Ÿ“ฐ ๋งˆ์ด๋ฐ์ดํ„ฐ ์ œ๊ณต ๋ฒ”์œ„ ๋‘๊ณ  ํ•€ํ…Œํฌ vs ๊ธˆ์œต์‚ฌ ์‹ ๊ฒฝ์ „ ์—ฌ์ „

robots.txt ์œค๋ฆฌ์™€ ๋„ค์ด๋ฒ„ ํฌ๋กค๋Ÿฌ ๊ด€๋ จ

๐Ÿ“Ž ์ €์ž‘๊ถŒ ๋ฐ ์›น ๊ฒ€์ƒ‰์— ๊ด€ํ•œ ๊ตฌ๊ธ€์˜ ์ •์ฑ…
๐Ÿ“ฐ ๋„ค์ด๋ฒ„ ์ผ๋ณธ๊ฒ€์ƒ‰ ์—”์ง„, ์ •๋ณด ๋ชจ์œผ๊ธฐ๋Š” ์„ฑ๊ณตํ• ๊นŒ
๐Ÿ“Ž ๊ฒ€์ƒ‰๋กœ๋ด‡ ํ™•์ธ ๋ฐฉ๋ฒ• - ๋„ค์ด๋ฒ„ ์„œ์น˜์–ด๋“œ๋ฐ”์ด์Šค
๐Ÿ“Ž ์ผ๋ณธ์—์„œ๋„ ์•…๋ช…์„ ๋–จ์นœ ๋„ค์ด๋ฒ„
๐Ÿ“– NaverBot - Wikipedia ๐Ÿ‡ฏ๐Ÿ‡ต

๊ฒ€์ƒ‰ ์„œ๋น„์Šค ๊ธฐ์—…๋“ค์˜ ํฌ๋กค๋Ÿฌ ์†Œ๊ฐœ๊ธ€

๐Ÿ“Ž Googlebot์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?
๐Ÿ“Ž Pinterest์˜ ํฌ๋กค๋Ÿฌ ์†Œ๊ฐœ
๐Ÿ“Ž What Is DuckDuckBot and What Does It Do?
๐Ÿ“Ž How-to check that a robot belongs to Yandex

ํฌ๋กค๋Ÿฌ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป gocolly/colly: Elegant Scraper and Crawler Framework for Golang

Multi-armed Bandit ๊ด€๋ จ

๐Ÿ“Ž A/B ํ…Œ์ŠคํŒ…๊ณผ '์—ฌ๋Ÿฌ ํŒ” ๊ฐ•๋„' ๋ฌธ์ œ
๐Ÿ“Ž ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜๊ณผ AI #7 ์‚ฌ์šฉ์ž์—๊ฒŒ ์†Œ์‹์„ ๊ณจ๋ผ์ฃผ๋Š” PAIGE

๐Ÿ‘๐Ÿป KakaoPay๋กœ ์„œํฌํŠธํ•˜๊ธฐ

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

๐Ÿงฝ Sponsors

{
  "sponsors": [
    {
      "๋ฐ•*์ค€": {
        "amount": 30000,
        "message": "๊ธ€ ํ•ญ์ƒ ์ž˜ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค."
      }
    },
    {
      "๋ฐ•*ํฌ": {
        "amount": 2200,
        "message": "github.com/9j"
      }
    }
  ]
}
profile
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๊ฒฝ๋ ฅ๋„ ์ด๋ ฅ๋„ ์—†์–ด์š” ๐Ÿ™ƒ ranghild99@gmail.com

๊ด€์‹ฌ ์žˆ์„ ๋งŒํ•œ ํฌ์ŠคํŠธ

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

comment-user-thumbnail
2021๋…„ 5์›” 21์ผ

์˜›๋‚ ์— ์ปค๋ฎค๋‹ˆํ‹ฐ ์‚ฌ์ดํŠธ๋ฅผ ๋”œ๋ ˆ์ด ์—†์ด ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋”ฉ์œผ๋กœ ํฌ๋กค๋งํ•ด์„œ ์‚ฌ์ดํŠธ ์‘๋‹ต์ด ๋Š๋ ค์ง„ ๊ฒฝํ—˜์ด ๋– ์˜ค๋ฅด๋„ค์š”๐Ÿ‘

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 5์›” 22์ผ

์ •๋ง ์ •์‹ ์—†์ด ๋‹ค ์ฝ์—ˆ๋„ค์š”. ์ด๊ฑธ ์ฑ…์œผ๋กœ ์ง‘ํ•„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ“š๐Ÿ“š๐Ÿ“š๐Ÿ“š๐Ÿ“š

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 5์›” 22์ผ

์ต๋ช… ๋’ค์—์„œ ๋น„ํ•˜ํ•˜๋Š” ๋ถ„๋“คํ•œํ…Œ ์—ด ๋ฐ›์•„์„œ ๊ฐ์žก๊ณ  ๋…ผ๋ฌธ์„ ์“ฐ์…จ๊ตฐ์š” ใ…‹ใ…‹ใ…‹ ๊ธ€์—์„œ ๋Š๊ปด์ง€๋Š” ๊ธด ๊ฐ€๋ฐฉ๋ˆ์˜ ์˜ค์˜ค๋ผ...

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 5์›” 27์ผ

์ข‹์€ ๊ธ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•ญ์ƒ ์ž˜์ฝ๊ณ ์žˆ์Šต๋‹ˆ๋‹ค.

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 5์›” 27์ผ

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

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 5์›” 27์ผ

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

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 5์›” 28์ผ

๐Ÿ‘๐Ÿป

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 5์›” 30์ผ

์ง„์งœ ์งˆ ์ข‹์€ ์ปจํ…์ธ  ใ…‡ใ…ˆ
๋ฐ˜๋ฉด์— ๋„๋ฐฐ์ฒ˜๋Ÿผ ์˜ฌ๋ผ์˜ค๋Š” ์ปจํ…์ธ ๋Š” ใ„ดใ…‡ใ…ˆ

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 6์›” 1์ผ

URL Frontier ๋ž‘Dup URL Elim ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…์ด ๋ถ€์กฑํ•ด๋ณด์ด๋Š”๋ฐ ํ”„๋ก ํ‹ฐ์–ด๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ์„ค๋ช…์„ ํ•˜๋Š”๋ฐ ๊ฐ‘์ž๊ธฐ ์ €๋Ÿฐ ์ฝ”๋“œ๊ฐ€ ๋‚˜์˜ค๋Š” ์ด์œ ์™€ dup๋‹จ๊ณ„๊ฐ€ ์ค‘๋ณต๋œ๊ฑธ ์‚ญ์ œํ•ด์ค€๋‹ค๋Š” ๊ทผ๊ฑฐ๋‚˜ ๊ด€๋ จ ๊ธฐ์ˆ  ๋˜๋Š” ๋งํฌ๋Š” ์–ด๋””์žˆ๋‚˜์š”?

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 6์›” 5์ผ

์ •๋ง ์ข‹๋„ค์š” ์ด๋Ÿฐ ์‚ฌ๋žŒ๊ณผ ์ผํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์–ผ๋งˆ๋‚˜ ์ข‹์„๊นŒ

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2021๋…„ 6์›” 5์ผ

๋„ˆ๋ฌด ์ข‹์•„์š” ์„ ์ƒ๋‹˜

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2์ผ ์ „

์ทจ์—… ํฌํŠธํด๋ฆฌ์˜ค ๋จธ๋งŒ๋“ค์ง€ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ์ข‹์€์ •๋ณด์–ป์–ด๊ฐ‘๋‹ˆ๋‹ค

1๊ฐœ์˜ ๋‹ต๊ธ€