๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฑ… ๋ฆฌ๋ทฐ/๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ

(4)
[๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ] 5. ์•ˆ์ • ํ•ด์‹œ ์„ค๊ณ„ ์ฝ์€ ๋‚ ์งœ : 2024.08.26์ง€์€์ด : ์•Œ๋ ‰์Šค ์‰ฌ์ถœํŒ์‚ฌ : ์ธ์‚ฌ์ดํŠธ โœ”๏ธ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉํ•ด์‹œ ํ‚ค ์žฌ๋ฐฐ์น˜(rehash) ๋ฌธ์ œN๊ฐœ์˜ ์บ์‹œ ์„œ๋ฒ„๊ฐ€ ์žˆ์„ ๋•Œ ์„œ๋ฒ„๋“ค์— ๋ถ€ํ•˜๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ๋‚˜๋ˆ„๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€serverIndex = hash(key) % NํŠน์ • ํ‚ค๊ฐ€ ๋ณด๊ด€๋œ ์„œ๋ฒ„์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ฐฉ๋ฒ•์€ ์„œ๋ฒ„ ํ’€์˜ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์„ ๋•Œ์™€ ๋ฐ์ดํ„ฐ ๋ถ„ํฌ๊ฐ€ ๊ท ๋“ฑํ•  ๋•Œ๋Š” ์ž˜ ๋™์ž‘ํ•œ๋‹ค.๊ทธ๋Ÿฌ๋‚˜ ์„œ๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ๊ธฐ์กด ์„œ๋ฒ„๊ฐ€ ์‚ญ์ œ๋˜๋Š” ๊ฒฝ์šฐ(์ฆ‰, N ๊ฐ’์ด ๋ฐ”๋€œ), ์„œ๋ฒ„ ์ธ๋ฑ์Šค ๊ฐ’์ด ๋ฐ”๋€Œ๋ฉด์„œ ๋Œ€๊ทœ๋ชจ ์บ์‹œ ๋ฏธ์Šค(cache miss)๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์•ˆ์ • ํ•ด์‹œ(consistent hash)ํ•ด์‹œ ํ…Œ์ด๋ธ” ํฌ๊ธฐ๊ฐ€ ์กฐ์ •๋  ๋•Œ ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„์˜ ํ‚ค๋ฅผ ์žฌ๋ฐฐ์น˜ํ•˜๋Š” ์ „ํ†ต์ ์ธ ๋ฐฉ์‹๊ณผ ๋‹ฌ๋ฆฌ, ์•ˆ์ • ํ•ด์‹œ๋Š” ํ‰๊ท ์ ์œผ๋กœ k/n๊ฐœ์˜ ํ‚ค๋งŒ ์žฌ๋ฐฐ์น˜ํ•˜๋Š”..
[๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ] 4. ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜์˜ ์„ค๊ณ„ ์ฝ์€ ๋‚ ์งœ : 2024.08.20์ง€์€์ด : ์•Œ๋ ‰์Šค ์‰ฌ์ถœํŒ์‚ฌ : ์ธ์‚ฌ์ดํŠธ โœ”๏ธ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜๋ฅผ ๋‘๋ฉด ์ข‹์€ ์ DoS(Denial of Service) ๊ณต๊ฒฉ์— ์˜ํ•œ ์ž์› ๊ณ ๊ฐˆ ๋ฐฉ์ง€์„œ๋ฒ„ ๊ฐœ์ˆ˜๋‚˜ ์„œ๋“œ ํŒŒํ‹ฐ API ์‚ฌ์šฉ๋ฃŒ์— ๋Œ€ํ•œ ๋น„์šฉ ์ ˆ๊ฐ๋ด‡(bot)์—์„œ ์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์ด๋‚˜ ์‚ฌ์šฉ์ž์˜ ์ž˜๋ชป๋œ ์ด์šฉ ํŒจํ„ด์œผ๋กœ ์œ ๋ฐœ๋œ ํŠธ๋ž˜ํ”ฝ์œผ๋กœ ์ธํ•œ ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜ ๋ฐฉ์ง€ 1๋‹จ๊ณ„ : ๋ฌธ์ œ ์ดํ•ด ๋ฐ ์„ค๊ณ„ ๋ฒ”์œ„ ํ™•์ •ํด๋ผ์ด์–ธํŠธ ์ธก ์ œํ•œ ์žฅ์น˜์ธ๊ฐ€, ์„œ๋ฒ„ ์ธก ์ œํ•œ ์žฅ์น˜์ธ๊ฐ€?์„œ๋ฒ„ ์ธก์ด๋ผ๋ฉด API ํ˜ธ์ถœ์„ ์ œ์–ดํ•˜๋Š” ๊ธฐ์ค€์€? - IP ์ฃผ์†Œ, ์‚ฌ์šฉ์ž ID ๋“ฑ์‹œ์Šคํ…œ์˜ ๊ทœ๋ชจ๋Š”?์‹œ์Šคํ…œ์ด ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜๋Š” ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค์ธ๊ฐ€, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ์— ํฌํ•จ๋  ์ˆ˜ ์žˆ๋Š”๊ฐ€?์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์ด ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜์— ์˜ํ•ด ๊ฑธ๋Ÿฌ์ง„ ๊ฒฝ์šฐ, ..
[๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ] 2~3.๊ฐœ๋žต์ ์ธ ๊ทœ๋ชจ ์ถ”์ • ~์‹œ์Šคํ…œ ์„ค๊ณ„ ๋ฉด์ ‘ ๊ณต๋žต๋ฒ• ์ฝ์€ ๋‚ ์งœ : 2024.08.19์ง€์€์ด : ์•Œ๋ ‰์Šค ์‰ฌ์ถœํŒ์‚ฌ : ์ธ์‚ฌ์ดํŠธ โœ”๏ธ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ๊ฐœ๋žต์ ์ธ ๊ทœ๋ชจ ์ถ”์ •(back-of-the-envelope estimatation)๋ณดํŽธ์ ์œผ๋กœ ํ†ต์šฉ๋˜๋Š” ์„ฑ๋Šฅ ์ˆ˜์น˜์ƒ์—์„œ ์‚ฌ๊ณ  ์‹คํ—˜์„ ํ–‰ํ•˜์—ฌ ์ถ”์ •์น˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ–‰์œ„์–ด๋–ค ์„ค๊ณ„๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ์— ๋ถ€ํ•ฉํ•  ๊ฒƒ์ธ์ง€ ๋ณด๊ธฐ ์œ„ํ•œ ๊ฒƒ2์˜ ์ œ๊ณฑ์ˆ˜, ์‘๋‹ต์ง€์—ฐ ๊ฐ’, ๊ฐ€์šฉ์„ฑ๊ณผ ๊ด€๋ จ๋œ ์ˆ˜์น˜๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค. 2์˜ ์ œ๊ณฑ์ˆ˜์ตœ์†Œ ๋‹จ์œ„๋Š” 1๋ฐ”์ดํŠธ(=8๋น„ํŠธ). ASCII ๋ฌธ์ž ํ•˜๋‚˜๊ฐ€ 1๋ฐ”์ดํŠธ.1 byte(๋ฐ”์ดํŠธ) - 1KB(ํ‚ฌ๋กœ๋ฐ”์ดํŠธ) - 1MB(๋ฉ”๊ฐ€๋ฐ”์ดํŠธ) - 1GB(๊ธฐ๊ฐ€๋ฐ”์ดํŠธ) - 1TB(ํ…Œ๋ผ๋ฐ”์ดํŠธ) - 1PB(ํŽ˜ํƒ€๋ฐ”์ดํŠธ)๋‹จ์œ„๊ฐ€ ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค 2์˜ 10์ œ๊ณฑ์”ฉ ๊ณฑํ•ด์ง„๋‹ค. ์‘๋‹ต์ง€์—ฐ ๊ฐ’๋ฉ”๋ชจ๋ฆฌ๋Š” ๋น ๋ฅด์ง€๋งŒ ๋””์Šคํฌ๋Š” ๋А๋ฆฌ๋‹ค.๋””์Šคํฌ ํƒ์ƒ‰์€ ๊ฐ€๋Šฅํ•œ ํ•œ ํ”ผํ•˜๋ผ.๋‹จ์ˆœํ•œ..
[๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ] 1. ์‚ฌ์šฉ์ž ์ˆ˜์— ๋”ฐ๋ฅธ ๊ทœ๋ชจ ํ™•์žฅ์„ฑ ์ฝ์€ ๋‚ ์งœ : 2024.08.13์ง€์€์ด : ์•Œ๋ ‰์Šค ์‰ฌ์ถœํŒ์‚ฌ : ์ธ์‚ฌ์ดํŠธ โœ”๏ธ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ๐Ÿ”– ์‹œ์Šคํ…œ ๊ทœ๋ชจ ํ™•์žฅ ๋ฐฉ๋ฒ• ์ •๋ฆฌ์›น ๊ณ„์ธต์€ ๋ฌด์ƒํƒœ ๊ณ„์ธต์œผ๋กœ๋ชจ๋“  ๊ณ„์ธต์— ๋‹ค์ค‘ํ™” ๋„์ž…๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œํ•  ๊ฒƒ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋ฅผ ์ง€์›ํ•  ๊ฒƒ์ •์  ์ฝ˜ํ…์ธ ๋Š” CDN์„ ํ†ตํ•ด ์„œ๋น„์Šคํ•  ๊ฒƒ๋ฐ์ดํ„ฐ ๊ณ„์ธต์€ ์ƒค๋”ฉ์„ ํ†ตํ•ด ๊ทธ ๊ทœ๋ชจ๋ฅผ ํ™•์žฅํ•  ๊ฒƒ๊ฐ ๊ณ„์ธต์€ ๋…๋ฆฝ์  ์„œ๋น„์Šค๋กœ ๋ถ„ํ• ํ•  ๊ฒƒ์‹œ์Šคํ…œ์„ ์ง€์†์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ์ž๋™ํ™” ๋„๊ตฌ๋“ค์„ ํ™œ์šฉํ•  ๊ฒƒ 1. ๋‹จ์ผ ์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜์‚ฌ์šฉ์ž ๋‹จ๋ง(์›น/์•ฑ)์—์„œ ๋„๋ฉ”์ธ์œผ๋กœ ์ ‘์†DNS์— ๋„๋ฉ”์ธ์„ ์กฐํšŒํ•˜์—ฌ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜IP ์ฃผ์†Œ๋กœ HTTP ์š”์ฒญHTML์ด๋‚˜ JSON ์‘๋‹ต 2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์›น/๋ชจ๋ฐ”์ผ์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅํ•ด ๋‚˜๊ฐ„๋‹ค.๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ด€๊ณ„ํ˜• / ๋น„๊ด€๊ณ„ํ˜• ์ค‘..