์์คํ ๋ชฉ์
๋คํธ์ํฌ์ ์๋ ์ปดํจํฐ์ ํ์ผ์ ๋ํ ์๊ฒฉ ์ก์ธ์ค๋ฅผ ์ง์ํฉ๋๋ค. ์์คํ ์ TCP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ํธ๋์ญ์ (๋ฉ์์ง)์ ๊ตํํจ์ผ๋ก์จ ๋ชจ๋ ๊ธฐ๋ณธ ํ์ผ ์์ (์์ฑ, ์ญ์ , ์ฝ๊ธฐ, ์ฐ๊ธฐ ๋ฑ)์ "๊ฐ์"์ผ๋ก ์ง์ํฉ๋๋ค.
์์ฉ ๋ถ์ผ
์์คํ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ํจ๊ณผ์ ์ ๋๋ค.
- ํต์ ์ด ์ผ์์ ์ผ๋ก ์ค๋จ๋ ๊ฒฝ์ฐ(์คํ๋ผ์ธ์ผ๋ก ์ ํ) ์๊ฒฉ ์๋ฒ์ ํ์ผ์ ๋น ๋ฅด๊ฒ ์ก์ธ์คํด์ผ ํ๋ ๋ชจ๋ฐ์ผ ๋ฐ ์๋ฒ ๋๋ ์ฅ์น(์ค๋งํธํฐ, ์จ๋ณด๋ ์ ์ด ์์คํ ๋ฑ)์ฉ ๊ธฐ๋ณธ ์ ํ๋ฆฌ์ผ์ด์
- ๋ก๋๋ DBMS์์ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ๊ฐ ์ผ๋ถ ์๋ฒ์์ ์ํ๋๊ณ ๋ฐ์ดํฐ ์ ์ฅ์ด ๋ค๋ฅธ ์๋ฒ์์ ์ํ๋๋ ๊ฒฝ์ฐ
- ์ ๋ณด ์์ง ๋ฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ถ์ฐ๋ ๊ธฐ์ ๋คํธ์ํฌ์์ ๊ณ ์ ๋ฐ์ดํฐ ๊ตํ, ์ค๋ณต์ฑ ๋ฐ ์ ๋ขฐ์ฑ์ด ํ์ํฉ๋๋ค.
- ๋ชจ๋ ๊ฐ ์ ๋ณด ๊ตํ ์ง์ฐ์ด ์ค์ํ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ฅผ ๊ฐ์ถ ๋ณต์กํ ์์คํ ์์.
๊ตฌ์กฐ
Cage ์์คํ (Windows์ Python 3.7์ ๋ฒ ํ ๋ฒ์ ๊ตฌํ์ด ์์)์๋ ๋ ๊ฐ์ง ์ฃผ์ ๋ถ๋ถ์ด ํฌํจ๋ฉ๋๋ค.
- ์ผ์ด์ง์๋ฒ โ ์๊ฒฉ ์ก์ธ์ค๊ฐ ํ์ํ ํ์ผ์ด ์๋ ๋คํธ์ํฌ์ ์ปดํจํฐ์์ ์คํ๋๋ ํ์ผ ์๋ฒ ํ๋ก๊ทธ๋จ(๊ธฐ๋ฅ ํจํค์ง)
- ํด๋์ค ์์ฅ ํด๋ผ์ด์ธํธ ์ํํธ์จ์ด์ฉ ๋ฐฉ๋ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์์ ์ํธ ์์ฉ ์ฝ๋ฉ์ ๋จ์ํํฉ๋๋ค.
ํด๋ผ์ด์ธํธ ์ธก์์ ์์คํ ์ฌ์ฉ
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๋ง ํ์ํฉ๋๋ค. ๋์์ ํ์ผ ์๋ฒ๊ฐ ์๋ ์ปดํจํฐ๋ ๋ค๋ฅธ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
์๋ฒ๋ ์ฒ์์ ๋ ๊ฐ์ง ์ฃผ์ ํ๋ก์ธ์ค์ ๋ชจ์์ผ๋ก ์์๋ฉ๋๋ค.
- "์ฌ์ด" โ ํด๋ผ์ด์ธํธ์์ ํต์ ์ ์ค์ ํ๊ณ ์๋ฒ ์ฃผ๋๋ก ์ด๋ฅผ ์ข ๋ฃํ๋ ์์ ์ ์ํํ๋ ํ๋ก์ธ์ค
- "์์ " โ ํ์ผ ์์ ์ ์ํด ํด๋ผ์ด์ธํธ์ ์์ (์์ )์ ์ํํ๊ณ ํด๋ผ์ด์ธํธ ๋ช ๋ น์ ๋ฐ๋ผ ํต์ ์ธ์ ์ ์ข ๋ฃํ๋ ํ๋ก์ธ์ค์ ๋๋ค.
๋ ํ๋ก์ธ์ค ๋ชจ๋ ๋๊ธฐํ๋์ง ์์ผ๋ฉฐ ๋ค์ค ํ๋ก์ธ์ค ๋๊ธฐ์ด, ํ๋ก์ ๊ฐ์ฒด, ์ ๊ธ ๋ฐ ์์ผ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋์๋ ๋ฃจํ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์ฐ๊ฒฐ ํ๋ก์ธ์ค๋ ๊ฐ ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ ์ ์กํ ํฌํธ๋ฅผ ํ ๋นํฉ๋๋ค. ํฌํธ ์๋ ์๋ฒ๊ฐ ์์๋ ๋ ์ค์ ๋ฉ๋๋ค. ํฌํธ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ๋งคํ์ ํ๋ก์ธ์ค ๊ฐ ๊ณต์ ํ๋ก์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค.
์ด์ ํ๋ก์ธ์ค๋ ์ฌ๋ฌ ํด๋ผ์ด์ธํธ๊ฐ ๊ณต์ ํ ์ ์๋๋ก ํ์ผ ๋ฆฌ์์ค ๊ณต์ ๋ฅผ ์ง์ํฉ๋๋ค(์ค๋ณ๋ ฌ, ์ก์ธ์ค๋ ์ ๊ธ์ผ๋ก ์ ์ด๋๋ฏ๋ก) "์ฒซ ๋ฒ์งธ" ํด๋ผ์ด์ธํธ๊ฐ ์ฒ์ ์ด์์ ๋ ํ์ฉ๋ ๊ฒฝ์ฐ ํ ํ์ผ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ต๋๋ค.
์๋ฒ์์ ํ์ผ์ ์์ฑ/์ญ์ /์ด๊ธฐ/๋ซ๊ธฐ ์ํ ๋ช ๋ น ์ฒ๋ฆฌ๋ ์๋ฒ 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