์ €์žฅ ๋ฐ ์ „๋‹ฌ ๋ชจ๋“œ์—์„œ ํŒŒ์ผ/๋ช…๋ น์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ธ NNCP 8.8.0 ๋ฆด๋ฆฌ์Šค

ํŒŒ์ผ, ์ด๋ฉ”์ผ, ์ €์žฅ ํ›„ ์ „๋‹ฌ(store-and-forward) ๋ช…๋ น์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†กํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ์„ธํŠธ์ธ ๋…ธ๋“œ ๊ฐ„ ๋ณต์‚ฌ(NNCP)๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. NNCP๋Š” POSIX ํ˜ธํ™˜ ์šด์˜ ์ฒด์ œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” Go ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ GPLv3 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ผ์ด์„ ์Šค๊ฐ€ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.

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

NNCP๋Š” ์•ž์„œ ์–ธ๊ธ‰ํ•œ ์•”ํ˜ธํ™” ๋ฐ ์ธ์ฆ ๊ธฐ๋Šฅ ์™ธ์—๋„ ํ”Œ๋กœํ”ผ ๋””์Šคํฌ ๋„คํŠธ์›Œํฌ์™€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ฒฉ๋ฆฌ๋œ(์—์–ด๊ฐญ๋œ) ์ปดํ“จํ„ฐ๊ฐ€ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋กœ์ปฌ ๋ฐ ๊ณต์šฉ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•œ๋‹ค๋Š” ์ ์—์„œ UUCP ๋ฐ FTN(FidoNet Technology Network) ์†”๋ฃจ์…˜๊ณผ ์ฐจ๋ณ„ํ™”๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ NNCP๋Š” UUCP์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ธฐ์กด ์ด๋ฉ”์ผ ์„œ๋น„์Šค์™€์˜ ์†์‰ฌ์šด ํ†ตํ•ฉ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„Postfix ๋ฐ Exim๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์ž…๋‹ˆ๋‹ค.

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

์ด์ „ ๋‰ด์Šค(๋ฒ„์ „ 8.8.0)์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ NNCP 5.0.0์˜ ํ˜์‹  ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • BLAKE2b ํ•ด์‹œ ๋Œ€์‹ , BLAKE3 ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์†Œ์œ„ MTH: ๋จธํด ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜ ํ•ด์‹ฑ(Merkle Tree-based Hashing)์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์•”ํ˜ธํ™”๋œ ํŒจํ‚ค์ง€ ๋ถ€๋ถ„์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋‹ค์šด๋กœ๋“œ ์ค‘์— ์ง์ ‘ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‚˜์ค‘์— ์ฝ์„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ์˜ ๋ฌด์ œํ•œ ๋ณ‘๋ ฌํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ์•”ํ˜ธํ™” ํŒจํ‚ท ํ˜•์‹์€ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ŠคํŠธ๋ฆผ ์นœํ™”์ ์ž…๋‹ˆ๋‹ค. ์ธ์ฆ๋œ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†ก ์ข…๋ฃŒ๋ฅผ ์•Œ๋ฆฌ๋Š” ์‹ ํ˜ธ๋Š” ์•”ํ˜ธํ™”๋œ ์ŠคํŠธ๋ฆผ์— ๋ฐ”๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ์ „์†ก๋œ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ์ž„์‹œ ํŒŒ์ผ์— ์ €์žฅํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ "nncp-exec" ๋ช…๋ น์—์„œ "-use-tmp" ์˜ต์…˜์ด ์™„์ „ํžˆ ๋ถˆํ•„์š”ํ•ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • BLAKE2b KDF ๋ฐ XOF ํ•จ์ˆ˜๋Š” ์•”ํ˜ธํ™” ๊ธฐ๋ณธ ์š”์†Œ์˜ ์ˆ˜๋ฅผ ์ค„์ด๊ณ  ์ฝ”๋“œ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด BLAKE3๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ "ff02::4e4e:4350" ์ฃผ์†Œ๋กœ ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์˜ ๋‹ค๋ฅธ ๋…ธ๋“œ๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ๊ทธ๋ฃน(FidoNet ์—์ฝ” ์ปจํผ๋Ÿฐ์Šค๋‚˜ ์œ ์ฆˆ๋„ท ๋‰ด์Šค๊ทธ๋ฃน๊ณผ ์œ ์‚ฌ)์ด ๋“ฑ์žฅํ•˜์—ฌ ํ•˜๋‚˜์˜ ํŒจํ‚ท์„ ์—ฌ๋Ÿฌ ๊ทธ๋ฃน ๊ตฌ์„ฑ์›์—๊ฒŒ ์ „์†กํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๊ณ , ๊ฐ ๊ตฌ์„ฑ์›์€ ํ•ด๋‹น ํŒจํ‚ท์„ ๋‹ค๋ฅธ ์„œ๋ช…์ž๋“ค์—๊ฒŒ๋„ ์ค‘๊ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ํŒจํ‚ท์„ ์ฝ์œผ๋ ค๋ฉด ํ‚ค ์Œ์„ ์•Œ์•„์•ผ ํ•˜์ง€๋งŒ(๊ทธ๋ฃน์˜ ๊ตฌ์„ฑ์›์ด์–ด์•ผ ํ•จ), ์ค‘๊ณ„๋Š” ๋ชจ๋“  ๋…ธ๋“œ์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŒจํ‚ท ์ˆ˜์‹ ์— ๋Œ€ํ•œ ๋ช…์‹œ์  ํ™•์ธ ์‘๋‹ต ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์†ก์‹ ์ž๋Š” ์ˆ˜์‹ ์ž๋กœ๋ถ€ํ„ฐ ํŠน๋ณ„ํ•œ ํ™•์ธ ์‘๋‹ต(ACK) ํŒจํ‚ท์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉด์„œ ์ „์†ก ํ›„ ํŒจํ‚ท์„ ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • Yggdrasil ์˜ค๋ฒ„๋ ˆ์ด ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ๋‚ด์žฅ ์ง€์›: ์˜จ๋ผ์ธ ๋ฐ๋ชฌ์€ ํƒ€์‚ฌ Yggdrasil ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ์™„์ „ํ•œ ๋…๋ฆฝ ๋„คํŠธ์›Œํฌ ์ฐธ์—ฌ์ž ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ IP ์Šคํƒ๊ณผ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ตฌ์กฐํ™”๋œ ์ค„(RFC 3339) ๋Œ€์‹ , ๋กœ๊ทธ๋Š” GNU Recutils ์œ ํ‹ธ๋ฆฌํ‹ฐ์™€ ํ•จ๊ป˜ โ€‹โ€‹์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” recfile ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์„ ํƒ์ ์œผ๋กœ, ์•”ํ˜ธํ™”๋œ ํŒจํ‚ท ํ—ค๋”๋ฅผ "hdr/" ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ZFS์™€ ๊ฐ™์€ ๋Œ€์šฉ๋Ÿ‰ ๋ธ”๋ก ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ํŒจํ‚ท ๋ชฉ๋ก ์ž‘์—… ์†๋„๋ฅผ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ํŒจํ‚ท ํ—ค๋”๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋””์Šคํฌ์—์„œ 128KB ๋ธ”๋ก๋งŒ ์ฝ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ๊ฒ€์‚ฌํ•  ๋•Œ๋Š” kqueue์™€ inotify ์ปค๋„ ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ์—ด๋ฆฐ ํŒŒ์ผ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ ๊ณ , ๋‹ซ์•˜๋‹ค๊ฐ€ ๋‹ค์‹œ ์—ฌ๋Š” ๋นˆ๋„๋„ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ํŒจํ‚ค์ง€ ์ˆ˜๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์—ด๋ฆฐ ํŒŒ์ผ์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜์— ์ œํ•œ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋งŽ์€ ํŒ€์ด ๋‹ค์šด๋กœ๋“œ/์—…๋กœ๋“œ, ํŒจํ‚ค์ง€ ๋ณต์‚ฌ ๋ฐ ์ฒ˜๋ฆฌ(ํˆฌ์ฒ™) ๋“ฑ์˜ ์ž‘์—… ์ง„ํ–‰ ์ƒํ™ฉ๊ณผ ์†๋„๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • "nncp-file" ๋ช…๋ น์€ ๋‹จ์ผ ํŒŒ์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋””๋ ‰ํ† ๋ฆฌ๋„ ์ „์†กํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•ด๋‹น ๋‚ด์šฉ์„ ๋ฐ”๋กœ pax ์•„์นด์ด๋ธŒ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜จ๋ผ์ธ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ๋ณ„๋„์˜ "nncp-toss" ๋ฐ๋ชฌ์„ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ ๋„ ํŒจํ‚ค์ง€๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•œ ํ›„ ์ฆ‰์‹œ ํ† ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ์ฐธ๊ฐ€์ž์—๊ฒŒ ์˜จ๋ผ์ธ ํ†ตํ™”๋ฅผ ํ•˜๋Š” ๊ฒƒ์€ ํƒ€์ด๋จธ๊ฐ€ ์ด๋ฒคํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•  ๋•Œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์Šคํ’€ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฐœ์‹  ํŒจํ‚ท์ด ๋‚˜ํƒ€๋‚  ๋•Œ๋„ ์„ ํƒ์ ์œผ๋กœ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ์กด์— ์ง€์›๋˜๋˜ FreeBSD์™€ GNU/Linux ์™ธ์—๋„ NetBSD์™€ OpenBSD OS์—์„œ๋„ ๊ธฐ๋Šฅ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.
  • "nncp-daemon"์€ UCSPI-TCP ์ธํ„ฐํŽ˜์ด์Šค์™€ ์™„๋ฒฝํ•˜๊ฒŒ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. ์ง€์ •๋œ ํŒŒ์ผ ์„ค๋ช…์ž(์˜ˆ: "NNCPLOG=FD:4" ์„ค์ •)์— ๋กœ๊น…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๊ณผ ํ•จ๊ป˜, daemontools์™€ ์œ ์‚ฌํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ ์‹คํ–‰ํ•˜๊ธฐ์— ๋งค์šฐ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ์™„์ „ํžˆ ๋ฆฌ๋‘ ์‹œ์Šคํ…œ์œผ๋กœ ์ด์ „๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru