Rust๋กœ ๋น„๋™๊ธฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ํ”Œ๋žซํผ์ธ Tokio 1.13.0 ์ถœ์‹œ

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

Tokio์—๋Š” ๋‹ค์Œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํŠน์ • ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” ์Šค๋ ˆ๋“œ(๋ณ‘๋ ฌ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์—์„œ)์—๋งŒ ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์ž‘๋™ํ•จ์œผ๋กœ์จ ์•ˆ์ „ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ ์—†์ด ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์Ÿ ์กฐ๊ฑด์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ I/O ์Šค์ผ€์ค„๋Ÿฌ
  • epoll, kqueue ๋ฐ IOCP์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์šด์˜ ์ฒด์ œ์—์„œ ์ œ๊ณต๋˜๋Š” ์—ฐ๊ฒฐ ๋‹ค์ค‘ํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐฑ์—”๋“œ
  • ๋น„๋™๊ธฐ TCP ๋ฐ UDP ์†Œ์ผ“ ๊ตฌํ˜„์„ ํ†ตํ•œ ์œ ํ˜• ๋ฐ ๋ฐ”์ธ๋”ฉ.
  • ๋™๊ธฐํ™” ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ, ํŒŒ์ดํ”„ ๋ฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ž‘์—…์„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • TCP/UDP ์†Œ์ผ“, ํŒŒ์ผ ์ž‘์—…, ์‹ ํ˜ธ ๋ฐ ํ”„๋กœ์„ธ์Šค ์ œ์–ด๋ฅผ ๋‹ค๋ฃจ๋Š” ๋น„๋™๊ธฐ I/O๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ API์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๋“ค์€ ๋ฒ ์–ด๋ฉ”ํƒˆ์—์„œ์˜ ์ž‘์—… ์†๋„์— ํ•„์ ํ•˜๋Š” ๊ณ ์„ฑ๋Šฅ, Rust ์–ธ์–ด์˜ ์œ ํ˜• ์‹œ์Šคํ…œ ๋ฐ ๋ณ‘๋ ฌ์„ฑ ๋ชจ๋ธ์ด ์ œ๊ณตํ•˜๋Š” ํƒ์›”ํ•œ ํ™•์žฅ์„ฑ๊ณผ ์•ˆ์ •์„ฑ ๋“ฑ ์ œํ’ˆ์˜ ๊ธฐ๋Šฅ์„ ์ฃผ๋ชฉํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—๋Š” AWS, Azure, Comcast, Dropbox ๋ฐ Facebook ๋Œ€ํ‘œ๋ฅผ ํฌํ•จํ•˜์—ฌ 500๋ช… ์ด์ƒ์˜ ์ฐธ๊ฐ€์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Tokio์˜ ์ข…์†์„ฑ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ œํ’ˆ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • hyper: Rust์šฉ HTTP/1 ๋ฐ HTTP/2์˜ ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•œ ๊ตฌํ˜„;
  • warp: ๊ฒฝ๋Ÿ‰ ํ”„๋ ˆ์ž„์›Œํฌ ์›น ์„œ๋ฒ„๋น ๋ฅธ ์ž‘์—… ์†๋„์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.
  • ์ถ”์ : ๋น„๋™๊ธฐ์„ฑ์„ ๊ณ ๋ คํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€ ์ถ”์  ๋ฐ ์ง„๋‹จ์„ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.
  • rdbc: MySQL, Postgres ๋ฐ SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ Rust ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ œํ’ˆ์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
  • bytes: ํšจ์œจ์ ์ธ ๋ฐ”์ดํŠธ ๋ฒ„ํผ๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ฐ”์ดํŠธ๋ฅผ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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