์ผ€์ด์ง€ ์›๊ฒฉ ํŒŒ์ผ ์•ก์„ธ์Šค ์‹œ์Šคํ…œ

์‹œ์Šคํ…œ ๋ชฉ์ 

๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ์ปดํ“จํ„ฐ์˜ ํŒŒ์ผ์— ๋Œ€ํ•œ ์›๊ฒฉ ์•ก์„ธ์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์€ TCP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜(๋ฉ”์‹œ์ง€)์„ ๊ตํ™˜ํ•จ์œผ๋กœ์จ ๋ชจ๋“  ๊ธฐ๋ณธ ํŒŒ์ผ ์ž‘์—…(์ƒ์„ฑ, ์‚ญ์ œ, ์ฝ๊ธฐ, ์“ฐ๊ธฐ ๋“ฑ)์„ "๊ฐ€์ƒ"์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์‘์šฉ ๋ถ„์•ผ

์‹œ์Šคํ…œ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

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

๊ตฌ์กฐ

Cage ์‹œ์Šคํ…œ(Windows์˜ Python 3.7์— ๋ฒ ํƒ€ ๋ฒ„์ „ ๊ตฌํ˜„์ด ์žˆ์Œ)์—๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๋ถ€๋ถ„์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  1. ์ผ€์ด์ง€์„œ๋ฒ„ โ€” ์›๊ฒฉ ์•ก์„ธ์Šค๊ฐ€ ํ•„์š”ํ•œ ํŒŒ์ผ์ด ์žˆ๋Š” ๋„คํŠธ์›Œํฌ์˜ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰๋˜๋Š” ํŒŒ์ผ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ(๊ธฐ๋Šฅ ํŒจํ‚ค์ง€)
  2. ํด๋ž˜์Šค ์ƒˆ์žฅ ํด๋ผ์ด์–ธํŠธ ์†Œํ”„ํŠธ์›จ์–ด์šฉ ๋ฐฉ๋ฒ• ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ ์ฝ”๋”ฉ์„ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์‹œ์Šคํ…œ ์‚ฌ์šฉ

Cage ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋Š” ์ผ๋ฐ˜์ ์ธ "์ผ์ƒ์ ์ธ" ํŒŒ์ผ ์‹œ์Šคํ…œ ์ž‘์—…์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ, ์—ด๊ธฐ, ๋‹ซ๊ธฐ, ์‚ญ์ œ ํŒŒ์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ/์“ฐ๊ธฐ (๋ฐ์ดํ„ฐ์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ„) ๊ฐœ๋…์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์€ ํŒŒ์ผ ์—ด๊ธฐ/๋‹ซ๊ธฐ๊ฐ€ ์ž…๋ ฅ/์ถœ๋ ฅ์˜ "์ฑ„๋„"์—์„œ ์ˆ˜ํ–‰๋˜๋Š” C ์–ธ์–ด์˜ ํŒŒ์ผ ๊ธฐ๋Šฅ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.

์ฆ‰, ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” "ํŒŒ์ผ" ๊ฐ์ฒด(ํด๋ž˜์Šค)์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. _io Python์—์„œ๋Š”) Cage ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Cage ๊ฐœ์ฒด์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ์„œ๋ฒ„(๋˜๋Š” ์—ฌ๋Ÿฌ ์„œ๋ฒ„)์™€์˜ ์ดˆ๊ธฐ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ ID๋กœ ์ธ์ฆ๋˜๋ฉฐ ๋ชจ๋“  ํŒŒ์ผ ์ž‘์—…์— ๋Œ€ํ•œ ์ „์šฉ ํฌํŠธ ๋ฒˆํ˜ธ๋กœ ํ™•์ธ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. Cage ๊ฐœ์ฒด๊ฐ€ ์‚ญ์ œ๋˜๋ฉด ์„œ๋ฒ„์— ํ†ต์‹ ์„ ์ค‘์ง€ํ•˜๊ณ  ํŒŒ์ผ์„ ๋‹ซ๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. ํ†ต์‹  ์ข…๋ฃŒ๋Š” ์„œ๋ฒ„ ์ž์ฒด์—์„œ ์‹œ์ž‘๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋‹จ์ผ Cage ๊ฐœ์ฒด๋Š” ์—ฌ๋Ÿฌ ์„œ๋ฒ„์˜ ์—ฌ๋Ÿฌ ํŒŒ์ผ๊ณผ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ†ต์‹  ๋งค๊ฐœ๋ณ€์ˆ˜(IP ์ฃผ์†Œ ๋˜๋Š” DNS ์„œ๋ฒ„, ์ธ์ฆ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ํฌํŠธ, ๊ฒฝ๋กœ ๋ฐ ํŒŒ์ผ ์ด๋ฆ„)๋Š” ๊ฐœ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

๊ฐ Cage ๊ฐœ์ฒด๋Š” ๋™์‹œ์— ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋ฒ„ํผ๋ง์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์บ์‹œ ํฌ๊ธฐ โ€“ ํŽ˜์ด์ง€ ์ˆ˜์™€ ํฌ๊ธฐ๋Š” Cage ๊ฐœ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋™์ ์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 1GB ์บ์‹œ๋Š” ๊ฐ๊ฐ 1000MB์˜ 1ํŽ˜์ด์ง€, ๊ฐ๊ฐ 10KB์˜ 100ํŽ˜์ด์ง€ ๋˜๋Š” ๊ฐ๊ฐ 1KB์˜ 1๋งŒ ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ํฌ๊ธฐ์™€ ์ˆ˜๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์€ ๊ฐ ์ ์šฉ ์‚ฌ๋ก€์— ๋Œ€ํ•œ ํŠน์ • ์ž‘์—…์ž…๋‹ˆ๋‹ค.

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

Cage ํด๋ž˜์Šค๋Š” ๋ฐ์ดํ„ฐ ์ฃผ์†Œ(๋ฐฐ์—ด์˜ ์œ„์น˜ ๋ฐ ๊ธธ์ด ํ‘œ์‹œ, ํŒŒ์ผ ์‹œ์Šคํ…œ ์ž‘์—… "๊ต์ฒด")๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋” ๋‚ฎ์€ "๋ฌผ๋ฆฌ์ " ์ˆ˜์ค€(๋ฒ„ํผ ๋ฉ”๋ชจ๋ฆฌ์˜ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ)์œผ๋กœ๋„ I/O๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

Cage ๊ฐ์ฒด์—๋Š” ์›๋ž˜ ๊ธฐ๋Šฅ์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. "๋™๋ฉด" ("์ž ์ž๊ธฐ") - ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ๋กœ์ปฌ ๋คํ”„ ํŒŒ์ผ๋กœ "์ถ•์†Œ"(์˜ˆ: ์„œ๋ฒ„์™€์˜ ์—ฐ๊ฒฐ์ด ๋Š๊ธฐ๊ฑฐ๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ค‘์ง€๋œ ๊ฒฝ์šฐ ๋“ฑ)ํ•˜๊ณ  ์‹ ์†ํ•˜๊ฒŒ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ(ํ†ต์‹ ์ด ์žฌ๊ฐœ๋œ ํ›„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ๋•Œ) ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ ์กฐ๊ฐ์ด ์ด๋ฏธ ์บ์‹œ์— ์ €์žฅ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ์‹œ์ ์œผ๋กœ "์˜คํ”„๋ผ์ธ" ์ƒํƒœ๊ฐ€ ๋œ ํ›„ ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์„ ํ™œ์„ฑํ™”ํ•  ๋•Œ ํŠธ๋ž˜ํ”ฝ์„ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cage๋Š” ์•ฝ 3600์ค„์˜ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

์„œ๋ฒ„ ๊ตฌ์ถ•์˜ ์›๋ฆฌ

Cageserver ํŒŒ์ผ ์„œ๋ฒ„๋Š” ์ž„์˜ ๊ฐœ์ˆ˜์˜ ํฌํŠธ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ ์ค‘ ํ•˜๋‚˜("๊ธฐ๋ณธ")๋Š” ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์˜ ์ธ์ฆ์—๋งŒ ์‚ฌ์šฉ๋˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ฐ์ดํ„ฐ ๊ตํ™˜์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Cage ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์—๋Š” Python๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— ํŒŒ์ผ ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์ปดํ“จํ„ฐ๋Š” ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„๋Š” ์ฒ˜์Œ์— ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ํ”„๋กœ์„ธ์Šค์˜ ๋ชจ์Œ์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

  1. "์‚ฌ์ด" โ€“ ํด๋ผ์ด์–ธํŠธ์™€์˜ ํ†ต์‹ ์„ ์„ค์ •ํ•˜๊ณ  ์„œ๋ฒ„ ์ฃผ๋„๋กœ ์ด๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค
  2. "์ž‘์—…" โ€“ ํŒŒ์ผ ์ž‘์—…์„ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ์˜ ์ž‘์—…(์ž‘์—…)์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ ๋ช…๋ น์— ๋”ฐ๋ผ ํ†ต์‹  ์„ธ์…˜์„ ์ข…๋ฃŒํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค.

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

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

์„œ๋ฒ„์—์„œ ํŒŒ์ผ์„ ์ƒ์„ฑ/์‚ญ์ œ/์—ด๊ธฐ/๋‹ซ๊ธฐ ์œ„ํ•œ ๋ช…๋ น ์ฒ˜๋ฆฌ๋Š” ์„œ๋ฒ„ OS์˜ ํŒŒ์ผ ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ "์ž‘์—…" ํ”„๋กœ์„ธ์Šค ์ž์ฒด์—์„œ ์—„๊ฒฉํ•˜๊ฒŒ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ด๋Ÿฌํ•œ ์ž‘์—…์€ "์ž‘์—…" ํ”„๋กœ์„ธ์Šค์—์„œ ์ƒ์„ฑ๋œ ์Šค๋ ˆ๋“œ์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ ์ˆ˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์—ด๋ฆฐ ํŒŒ์ผ ์ˆ˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์˜ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์ž‘์—…์€ ์ผ๋ฐ˜ ๋Œ€๊ธฐ์—ด์— ์ œ์ถœ๋˜๊ณ  ์ฒซ ๋ฒˆ์งธ ์ž์œ  ์Šค๋ ˆ๋“œ๋Š” ํ•ด๋‹น ์ž‘์—…์„ ํ—ค๋“œ์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ํŠน์ˆ˜ ๋…ผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋ฒ„ RAM์—์„œ ๋ฐ์ดํ„ฐ ๋‹ค์‹œ ์“ฐ๊ธฐ ์ž‘์—…์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šด์˜ ํ”„๋กœ์„ธ์Šค๋Š” ํด๋ผ์ด์–ธํŠธ ํ™œ๋™์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๋ช…๋ น์— ๋”ฐ๋ผ ๋˜๋Š” ๋น„ํ™œ์„ฑ ์ œํ•œ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋˜๋ฉด ์„œ๋น„์Šค๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด Cageserver๋Š” ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์˜ ๋กœ๊ทธ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์ผ๋ฐ˜ ๋กœ๊ทธ์—๋Š” ํŒŒ์ผ ์ƒ์„ฑ/์—ด๊ธฐ/์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ/์‚ญ์ œ ์ž‘์—…์ด ํฌํ•จ๋œ ํด๋ผ์ด์–ธํŠธ์˜ ๋ฉ”์‹œ์ง€ ๋ณต์‚ฌ๋ณธ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ž‘์—… ํŒŒ์ผ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ๋กœ๊ทธ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ, ์—ฌ๊ธฐ์—๋Š” ์ด ์ž‘์—… ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ์ž‘์—…์ด ํฌํ•จ๋œ ๋ฉ”์‹œ์ง€ ๋ณต์‚ฌ๋ณธ๊ณผ ์ž‘์„ฑ๋œ(์ƒˆ) ๋ฐ์ดํ„ฐ ๋ฐฐ์—ด ๋ฐ ๋ฎ์–ด์“ฐ๊ธฐ(์“ฐ๊ธฐ) ์ค‘์— ํŒŒ๊ดด๋œ ๋ฐ์ดํ„ฐ ๋ฐฐ์—ด์ด ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฐ์ดํ„ฐ "์œ„์—" ์ƒˆ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์Œ).

์ด๋Ÿฌํ•œ ๋กœ๊ทธ๋Š” ๋ฐฑ์—…์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณต์›ํ•˜๊ณ  ํ˜„์žฌ ์ฝ˜ํ…์ธ ๋ฅผ ๊ณผ๊ฑฐ ์‹œ์ ์œผ๋กœ ๋กค๋ฐฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Cageserver๋Š” ์•ฝ 3100์ค„์˜ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

์ผ€์ด์ง€ ์›๊ฒฉ ํŒŒ์ผ ์•ก์„ธ์Šค ์‹œ์Šคํ…œ

Cageserver ํŒŒ์ผ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘

์‹œ์ž‘ํ•  ๋•Œ ๋Œ€ํ™” ์ƒ์ž์—์„œ ๋‹ค์Œ์„ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
- ์ธ์ฆ์„ ์œ„ํ•œ ์ฃผ์š” ํฌํŠธ;
โ€” ์Šน์ธ๋œ ํด๋ผ์ด์–ธํŠธ์™€ ํŠธ๋žœ์žญ์…˜์„ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ํฌํŠธ ์ˆ˜(1๊ฐœ ์ด์ƒ๋ถ€ํ„ฐ ์ˆซ์ž ํ’€์€ ๊ธฐ๋ณธ ํฌํŠธ ๋ฒˆํ˜ธ ์˜†์— ์žˆ๋Š” ํฌํŠธ๋ถ€ํ„ฐ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค).

์ผ€์ด์ง€ ํด๋ž˜์Šค ์‚ฌ์šฉ

์ˆ˜์—… ์ƒˆ์žฅ.์ƒˆ์žฅ( ์ผ€์ด์ง€_์ด๋ฆ„="", ํŽ˜์ด์ง€ ํฌ๊ธฐ=0, ํŽ˜์ด์ง€ ์ˆ˜=0, maxstrlen=0, server_ip={}, wait=0, awake=False, ์บ์‹œ_ํŒŒ์ผ="" )

ํŒŒ์ผ ์„œ๋ฒ„์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ณ  ๋ฒ„ํผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฐœ์ฒด๋Š” ์ด ํด๋ž˜์Šค์—์„œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋งค๊ฐœ ๋ณ€์ˆ˜

  • ์ผ€์ด์ง€_์ด๋ฆ„(ํ•˜์œ„ ๋ฒ„์ „) - ์„œ๋ฒ„ ์ธก์—์„œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ์ฒด์˜ ์กฐ๊ฑด๋ถ€ ์ด๋ฆ„
  • ํŽ˜์ด์ง€ ํฌ๊ธฐ(INT) โ€” ๋ฒ„ํผ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•œ ํŽ˜์ด์ง€ ํฌ๊ธฐ(๋ฐ”์ดํŠธ)
  • ํŽ˜์ด์ง€ ์ˆ˜(INT) โ€” ๋ฒ„ํผ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ์ˆ˜
  • ์ตœ๋Œ€ ๊ธธ์ด(INT) - ์“ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ ์ž‘์—…์—์„œ ๋ฐ”์ดํŠธ ๋ฌธ์ž์—ด์˜ ์ตœ๋Œ€ ๊ธธ์ด
  • ์„œ๋ฒ„_IP(๋”•์…”๋„ˆ๋ฆฌ) - ์‚ฌ์šฉ๋œ ์„œ๋ฒ„์˜ ์ฃผ์†Œ๊ฐ€ ํฌํ•จ๋œ ์‚ฌ์ „์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ‚ค๋Š” ์„œ๋ฒ„์˜ ์กฐ๊ฑด๋ถ€ ์ด๋ฆ„(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด๋ถ€์˜ ์„œ๋ฒ„ ID)์ด๊ณ  ๊ฐ’์€ ์ฃผ์†Œ๊ฐ€ ํฌํ•จ๋œ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค: "ip ์ฃผ์†Œ:ํฌํŠธ" ๋˜๋Š” "DNS: portโ€(์ด๋ฆ„๊ณผ ์‹ค์ œ ์ฃผ์†Œ์˜ ๋น„๊ต๋Š” ์ผ์‹œ์ ์ด๋ฉฐ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Œ)
  • ๊ธฐ๋‹ค๋ฆฌ๋‹ค(INT) โ€” ํฌํŠธ๋ฅผ ์ˆ˜์‹ ํ•  ๋•Œ ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„(์ดˆ)
  • ๊นจ์–ด(๋ถ€์šธ) โ€” ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํ”Œ๋ž˜๊ทธ(๊ฑฐ์ง“ - ์ƒˆ๋กœ์šด ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒฝ์šฐ ์ฐธ๋œ - ์ด์ „์— "์ถ•์†Œ๋œ" ๊ฐœ์ฒด์—์„œ ๊ฐœ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒฝ์šฐ - "์ตœ๋Œ€ ์ ˆ์ „ ๋ชจ๋“œ" ์ž‘์—… ์‚ฌ์šฉ, ๊ธฐ๋ณธ์ ์œผ๋กœ False)
  • ์บ์‹œ_ํŒŒ์ผ(ํ•˜์œ„ ๋ฒ„์ „) - ์ตœ๋Œ€ ์ ˆ์ „ ๋ชจ๋“œ์šฉ ํŒŒ์ผ ์ด๋ฆ„

๋ฐฉ๋ฒ•

์ƒˆ์žฅ.ํŒŒ์ผ ์ƒ์„ฑ( ์„œ๋ฒ„, ๊ฒฝ๋กœ ) โ€“ ์ƒˆ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค

์ƒˆ์žฅ.ํŒŒ์ผ_์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ( ์„œ๋ฒ„, ๊ฒฝ๋กœ, new_name ) โ€“ ํŒŒ์ผ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ

์ƒˆ์žฅ.ํŒŒ์ผ_์ œ๊ฑฐ( ์„œ๋ฒ„, ๊ฒฝ๋กœ) - ํŒŒ์ผ ์‚ญ์ œ

์ƒˆ์žฅ.์—ด ์ˆ˜( ์„œ๋ฒ„, ๊ฒฝ๋กœ, ๋ชจ๋“œ ) - ํŒŒ์ผ ์—ด๊ธฐ

๋ณด๊ณ  f์ฑ„๋„ ์ฑ„๋„ ๋ฒˆํ˜ธ. ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชจ๋“œ - ํŒŒ์ผ ์—ด๊ธฐ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค: "wm" - ๋ฐฐํƒ€์ (์ฝ๊ธฐ/์“ฐ๊ธฐ), "rs" - ์ฝ๊ธฐ ์ „์šฉ, ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ์˜ ์ฝ๊ธฐ ์ „์šฉ ๊ณต์œ , "ws" - ์ฝ๊ธฐ/์“ฐ๊ธฐ, ์ฝ๊ธฐ ์ „์šฉ ๊ณต์œ  ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ.

์ƒˆ์žฅ.๊ฐ€๊นŒ์šด (f์ฑ„๋„) โ€“ ํŒŒ์ผ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค

์ƒˆ์žฅ.์“ฐ๋‹ค (fchannel, ์‹œ์ž‘, ๋ฐ์ดํ„ฐ ) โ€“ ํŒŒ์ผ์— ๋ฐ”์ดํŠธ ๋ฌธ์ž์—ด ์“ฐ๊ธฐ

์ƒˆ์žฅ.์ฝ๊ธฐ (fchannel, ์‹œ์ž‘, len_data ) โ€“ ํŒŒ์ผ์—์„œ ๋ฐ”์ดํŠธ ๋ฌธ์ž์—ด์„ ์ฝ์Šต๋‹ˆ๋‹ค.

์ƒˆ์žฅ.put_pages ( f์ฑ„๋„ ) โ€“ ์ˆ˜์ •๋œ ํŠน์ • ์ฑ„๋„์˜ ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ๋ฒ„ํผ์—์„œ ์„œ๋ฒ„๋กœ "ํ‘ธ์‹œ"ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ฑ„๋„์˜ ๋ชจ๋“  ์ž‘์—…์ด ์„œ๋ฒ„์˜ ํŒŒ์ผ์— ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•ด๋‹น ์ง€์ ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ์žฅ.push_all () โ€“ ์ˆ˜์ •๋œ Cage ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ๋ชจ๋“  ์ฑ„๋„์˜ ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ๋ฒ„ํผ์—์„œ ์„œ๋ฒ„๋กœ "ํ‘ธ์‹œ"ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ฑ„๋„์˜ ๋ชจ๋“  ์ž‘์—…์ด ์„œ๋ฒ„์— ์ €์žฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€