GNU Guile 3.0์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ผ์–ด๋‚ฌ๋‹ค ์„๋ฐฉํ•˜๋‹ค GNU ๊ฐ€์ผ 3.0, ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋ฌด๋ฃŒ ๊ตฌํ˜„ ๊ณ„ํš๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ฝ”๋“œ๋ฅผ ๋‚ด์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Guile์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ™•์žฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ , ๊ตฌ์„ฑ์„ ์ •์˜ํ•˜๊ฑฐ๋‚˜, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋ณธ ์š”์†Œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ์–ธ์–ด๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Guile์€ GNU ์šด์˜์ฒด์ œ์˜ ๊ณต์‹ ํ™•์žฅ ๊ฐœ๋ฐœ ์–ธ์–ด์ด๋‹ค.

๊ฐ€์ผ์€ ํŠน์ˆ˜ ์ตœ์ ํ™” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ƒ์„ฑํ•œ ์ด์‹ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํšจ์œจ์ ์ธ ๊ฐ€์ƒ ๋จธ์‹ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. Guile ๊ฐ€์ƒ ๋จธ์‹ ์€ C ๋ฐ C++ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ์™€ ์‰ฝ๊ฒŒ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค. Scheme ์–ธ์–ด ์™ธ์—๋„ ์‚ฌ์–‘ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. R5RS, R6RS ะธ R7RSGuile ํ”„๋กœ์ ํŠธ๋Š” ECMAScript, Emacs Lisp, Lua(๊ฐœ๋ฐœ ์ค‘) ๋“ฑ ๋‹ค๋ฅธ ์–ธ์–ด์šฉ ์ปดํŒŒ์ผ๋Ÿฌ๋„ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒจํ‚ค์ง€์—๋Š” HTTP ํ”„๋กœํ† ์ฝœ ์ฒ˜๋ฆฌ, XML ํŒŒ์‹ฑ, ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹ ์‚ฌ์šฉ ๋“ฑ ์ผ๋ฐ˜์ ์ธ ์„œ๋น„์Šค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ชจ๋“ˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

GNU Guile 3.0์˜ ํ•ต์‹ฌ ํ˜์‹ ์€ ๊ธฐ์กด์— ์ œ๊ณต๋˜์—ˆ๋˜ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋ฐ ๋ฐ”์ดํŠธ์ฝ”๋“œ ์ปดํŒŒ์ผ๋Ÿฌ์— ๋”ํ•ด JIT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋“ฑ์žฅํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜•ํƒœ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์—ฐ๊ฒฐ๋œ ํŠน์ˆ˜ ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. JIT๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋ฅผ ์ฆ‰์„์—์„œ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Guile ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹คํ–‰ ์†๋„๋ฅผ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค(ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ์ตœ๋Œ€ 4๋ฐฐ๊นŒ์ง€ ๊ฐ€์†ํ™”). JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” x86-64, i686, ARMv7 ๋ฐ AArch64 ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐํƒ€ ๊ฐœ์„  ์‚ฌํ•ญ:

  • ์ƒˆ๋กœ์šด Scheme ์–ธ์–ด ์‚ฌ์–‘ ์ง€์› R7RS ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์— ์ •์˜๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ๋“ˆ
  • Guile ๊ฐ€์ƒ ๋จธ์‹ ์€ ํ•˜์œ„ ์ˆ˜์ค€ ๋ฐ”์ดํŠธ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ•˜์—ฌ ๊ณ ๊ธ‰ ์ตœ์ ํ™”๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚ด๋ถ€ ์ •์˜์™€ ํ‘œํ˜„์‹์„ ๊ฒฐํ•ฉํ•˜๋Š” ๋ฐ ๋Œ€ํ•œ ์ง€์›(์˜ˆ: "(define _ (begin (foo) #f))");
  • ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ์œ ํ˜•("๋ ˆ์ฝ”๋“œ")์˜ ํ†ตํ•ฉ ๊ตฌํ˜„์ด ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๊ธฐ๋ณธ ์š”์†Œ(throw ๋ฐ catch)๊ฐ€ ์žฌ์ž‘์—…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ™•์žฅ๋œ ๊ตฌ๋ฌธ "else", "=>", "..." ๋ฐ "_"์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.
  • http-request, http-get ๋ฐ ๊ธฐํƒ€ ์›น ํด๋ผ์ด์–ธํŠธ ๊ด€๋ จ ํ”„๋กœ์‹œ์ €์—์„œ ์˜ฌ๋ฐ”๋ฅธ ์ธ์ฆ์„œ ๊ฒ€์ฆ์„ ํ†ตํ•ด TLS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”๋œ ํ†ต์‹  ์ฑ„๋„์„ ํ†ตํ•ด ์ฝ˜ํ…์ธ ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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