C-toxcore: ์ƒˆ๋กœ์šด ํœด๋Œ€์šฉ ๋‹จ์ˆœ ํ‘œ์ค€ tox ์ €์žฅ ํ˜•์‹ ๋งŒ๋“ค๊ธฐ

์— ๋งŒ๋“  2016๋…„ 10์›” 29์ผ  ยท  9์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: TokTok/c-toxcore

  • ์ด์‹์„ฑ: ์•„ํ‚คํ…์ฒ˜์™€ ์ปดํŒŒ์ผ๋Ÿฌ ํ”Œ๋ž˜๊ทธ์—์„œ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹จ์ˆœํ•จ: ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ‘œ์ค€: msgpack ๋˜๋Š” protobuf์™€ ๊ฐ™์€ ํ‘œ์ค€ ํ˜•์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ จ ํ† ๋ก ์€ #215๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

P2 enhancement

๋ชจ๋“  9 ๋Œ“๊ธ€

๋˜ ๋‹ค๋ฅธ ์™ธ๋ถ€ ์˜์กด์„ฑ? ์•ˆ ๋ผ! ์ œ๋ฐœ!
๊ฐ„๋‹จํ•œ json ์ž‘์„ฑ๊ธฐ/ํŒ๋…๊ธฐ๋ฅผ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค. ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ์ผ๋ถ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ „์†ก์—๋„ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊นŒ๋‹ค๋กœ์šด ์งˆ๋ฌธ: ๋‹ค๋ฅธ ๊ณ ๊ฐ์ด ์ด ์ธ์ฑˆํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ œ๊ฐ€ ์•Œ๊ธฐ๋กœ๋Š” ํ†กํ†ก์„ ์‚ฌ์šฉํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด ํ˜•์‹์ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉ์ž ์ด๋ฆ„, ์˜จ๋ผ์ธ ์ƒํƒœ, ์ƒํƒœ ๋ฉ”์‹œ์ง€ ๋ฐ ์นœ๊ตฌ ๋ณ„์นญ ๋ชฉ๋ก๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ํ‚ค-๊ฐ’ ์ €์žฅ์†Œ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์ฐธ์กฐ: #112). ๊ทธ๋Ÿฐ ๋‹ค์Œ ํด๋ผ์ด์–ธํŠธ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋ถ€ ํ‘œ์ค€ ํ‚ค๊ฐ€ TCS ์— ์˜ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

https://github.com/TokTok/c-toxcore/issues/112#issuecomment -257151226์„ ์ž…๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@isotoxin ๊ณต๊ฒฉ/๋ฒ„๊ทธ ํ‘œ๋ฉด์„ ๋„“ํžˆ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ ํ†ต์‹ ์„ ๋‹ด๋‹นํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ JSON ํŒŒ์„œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์€ ์ž˜๋ชป๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด JSON ๊ตฌ์„ฑ์„ ์›ํ–ˆ๋‹ค๋ฉด JSON์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ(๊ทธ๋ฆฌ๊ณ  _only_ JSON์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ) ์ž˜ ๊ด€๋ฆฌ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ด๋ฅผ ์—ฐ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. https://github.com/akheron/jansson/ ์€ JSON ์‚ฌ๋ก€์— ์ด์ƒ์ ์ธ ํ›„๋ณด์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. toxcore๋งŒํผ ์ด์‹์„ฑ์ด ๋›ฐ์–ด๋‚˜๋ฉฐ ์ž„๋ฒ ๋””๋“œ ํ”Œ๋žซํผ์—๋„ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ๋ฅผ ์ฝ์€ ํ›„ ํ˜„์žฌ ํ˜•์‹์ด ๋”์ฐํ•˜๊ณ  ์ฃฝ์–ด์•ผ ํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

์ตœ์†Œํ•œ์˜ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ•ญ๋ชฉ์„ ์ตœ์†Œํ™”ํ•˜๋ ค๋ฉด ํŒŒ์ผ์„ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋ถ„ํ• ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ ๋ถ€๋ถ„
  • ์„ ํƒ ๋ถ€ํ’ˆ

๊ธฐ๋ณธ ๋ถ€๋ถ„์€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์— ์นœ๊ตฌ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜ ๋ฐ์ดํ„ฐ(๋ฏธ์ •)๋ฅผ ๊ฐ„๋‹จํ•œ ํ˜•์‹(๋ฐ”์ด๋„ˆ๋ฆฌ์ผ ์ˆ˜๋„ ์žˆ์Œ)์œผ๋กœ ํฌํ•จํ•˜๋ฉฐ ๊ตฌ๋ฌธ ๋ถ„์„์„ ์œ„ํ•ด ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ ํƒ์  ๋ถ€๋ถ„์€ ๊ธฐ๋ณธ ๋ถ€๋ถ„์— ์ถ”๊ฐ€๋˜๋ฉฐ JSON(๋˜๋Š” ๋ฌด์—‡์ด๋“ )์œผ๋กœ ์ธ์ฝ”๋”ฉ๋ฉ๋‹ˆ๋‹ค. ๋ณ„์นญ, ์ง€๋‚œ๋ฒˆ ์˜จ๋ผ์ธ ๋“ฑ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์— ํ•„์š”ํ•œ ๋ช‡ ๊ฐ€์ง€ ํ‚ค...

๋…ผ์˜ํ•˜๋‹ค.

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

๋‚˜๋Š” tox ์ €์žฅ ํ˜•์‹์ด ๋‘ ๋ถ€๋ถ„์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด6์˜ ์•„์ด๋””์–ด๋ฅผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ๋ถ€๋ถ„ - ๊ณ„์ •์ด ์ž‘๋™ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ๋ชจ๋“  ์ ˆ๋Œ€์ ์œผ๋กœ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ๋ถ€๋ถ„์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค(toxcore์—์„œ ์‹ค์ œ๋กœ ํ•ด์„ํ•˜๋Š” ๋ถ€๋ถ„๋งŒ). ์ด ๊ธฐ๋ณธ ๋ถ€๋ถ„์€ ์ตœ์‹  ๋ฒ„์ „์˜ toxcore๊ฐ€ ์ด์ „ ๋ฒ„์ „์—์„œ ์ œ๊ฑฐ๋˜์ง€ ์•Š๋Š” ์†์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ๋ฒ„์ „๋„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์—†์ด.

์„ ํƒ์  ๋ถ€๋ถ„ - ํด๋ผ์ด์–ธํŠธ ํŠน์ • ์ •๋ณด ๋˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ธฐํƒ€ ์ •๋ณด๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š”

JSON ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์ €์žฅ ํŒŒ์ผ์„ ์•”ํ˜ธํ™”ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. Toxcore๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ์•”ํ˜ธ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€์นญ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ ํŒŒ์ผ์„ ์•”ํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ์ €์žฅ ํŒŒ์ผ์„ ์•”ํ˜ธํ™”ํ•˜์ง€ ์•Š์œผ๋ ค๋Š” ๊ฒฝ์šฐ ์•”ํ˜ธํ™”๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ด ๊ฒฝ์šฐ toxcore๋Š” ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™” ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘ ๋ถ€๋ถ„ ์•„์ด๋””์–ด์˜ ๋ณด์•ˆ์— ๋Œ€ํ•ด. ๊ตฌ์„ฑ์— ๋‘ ๊ฐœ์˜ ๊ฐœ๋ณ„ ๋ถ€๋ถ„์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ๊ธฐ๋ณธ ๋ถ€๋ถ„๋งŒ toxcore์—์„œ ์‹ค์ œ๋กœ ํ•ด์„๋˜๋Š” ์œ ์ผํ•œ ๋ถ€๋ถ„์ด ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์—์„œ toxcore๋Š” ๋‚ด๋ถ€ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๋ชจ๋“  ์†์„ฑ์„ ์ฝ๊ณ  ์ด ๋ถ€๋ถ„์€ toxcore๊ฐ€ ์ €์žฅ ํŒŒ์ผ์„ ์ €์žฅํ•  ๋•Œ ๋‹ค์‹œ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ €์žฅ ํŒŒ์ผ์˜ ์„ ํƒ์  ๋ถ€๋ถ„์— ๋Œ€ํ•ด toxcore๋Š” ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•ด์„œ๋งŒ get ๋ฐ put ๊ธฐ๋Šฅ์„ ๋„์ž…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ ํƒ์  ๊ตฌ์„ฑ ๋ถ€๋ถ„์„ ๊ฐ€์ ธ์˜ค๊ณ  ์ œ๊ณตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Toxcore๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ JSON ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ๊ณต๊ฐœํ•˜๊ฑฐ๋‚˜ ์„ ํƒ์  ๋ถ€๋ถ„์„ ํ•ด์„ํ•˜๋ ค๊ณ  ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ toxcore๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž˜๋ชป๋œ ๊ตฌ์„ฑ ์„น์…˜์„ ํฌํ•จํ•˜๋ ค๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์„ ํƒ์  ๋ถ€๋ถ„์˜ JSON ๊ตฌ๋ฌธ์„ ๊ฒ€์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์˜ณ๋‹ค๋ฉด JSON์˜ ์œ ํšจํ•˜์ง€ ์•Š์€ ์„น์…˜์€ ์ „์ฒด JSON ๊ตฌ์กฐ๋ฅผ ๋ฌดํšจํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ toxcore์— ์˜ํ•ด ๊ฐ์ง€๋˜์–ด์•ผ ํ•˜๋ฉฐ ์ž˜๋ชป๋œ ํฌํ•จ์ด ํ—ˆ์šฉ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. JSON์˜ ๊ตฌ๋ฌธ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ณ  ์•ˆ์ „ํ•˜๋ฉฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ด๋ฏธ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๋ฐ ์„ ํƒ์  ์„น์…˜์ด ์žˆ๋Š” JSON ๊ตฌ์„ฑ ํŒŒ์ผ์˜ ์žฅ๋‹จ์ ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
์žฅ์ 

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

๋‹จ์ 

  • ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•„์š”
  • ๊ธฐ๋ณธ ๋ฐ ์„ ํƒ์  ๋ถ„ํ• ๋กœ ์ธํ•ด ๋ณด์•ˆ ๋ฌธ์ œ ๋ฐœ์ƒ
  • ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ์— ๋น„ํšจ์œจ์ (์นœ๊ตฌ ์•„๋ฐ”ํƒ€?)
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ตฌ์„ฑ ์ €์žฅ ํŒŒ์ผ์˜ ์„ ํƒ์  ๋ถ€๋ถ„์— ์›ํ•˜๋Š” ๊ฒƒ์„ ์ž์œ ๋กญ๊ฒŒ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์—„์ฒญ๋‚œ ํƒ„์ˆ˜ํ™”๋ฌผ ๋”๋ฏธ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์žฅ์  ์ฐธ์กฐ -> ๋‹จ์ˆœ ๋ฒ„์ „ ์ €์žฅ).
  • toxcore๋Š” ๊ตฌ๋ฌธ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•ด์•ผ ํ•˜์ง€๋งŒ ์„ ํƒ์  ๋ถ€๋ถ„์„ ํ•ด์„ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ, ๋‚˜๋Š” tox ์„ธ์ด๋ธŒ ํŒŒ์ผ์— ๋Œ€ํ•œ JSON ํ˜•์‹์˜ ์•„์ด๋””์–ด๋ฅผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ตฌํ˜„์€ ์‹ ์ค‘ํ•˜๊ฒŒ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค! ๋” ๋งŽ์€ ๋…ผ์˜ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค...

๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ์— ๋น„ํšจ์œจ์ (์นœ๊ตฌ ์•„๋ฐ”ํƒ€?)

IIRC ์•„๋ฐ”ํƒ€๋Š” ํ˜„์žฌ *.tox ํŒŒ์ผ์— ์ €์žฅ๋˜์–ด ์žˆ์ง€ ์•Š๊ณ  ๊ตฌ์„ฑ ํŒŒ์ผ์— ๊ทธ๋ ‡๊ฒŒ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์€ ์ •๋ง ๋‚˜์œ ์ƒ๊ฐ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๋ฐ ์„ ํƒ์  ๋ถ„ํ• ๋กœ ์ธํ•ด ๋ณด์•ˆ ๋ฌธ์ œ ๋ฐœ์ƒ

์™œ์š”?

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ตฌ์„ฑ ์ €์žฅ ํŒŒ์ผ์˜ ์„ ํƒ์  ๋ถ€๋ถ„์— ์›ํ•˜๋Š” ๊ฒƒ์„ ์ž์œ ๋กญ๊ฒŒ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์—„์ฒญ๋‚œ ํƒ„์ˆ˜ํ™”๋ฌผ ๋”๋ฏธ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์žฅ์  ์ฐธ์กฐ -> ๋‹จ์ˆœ ๋ฒ„์ „ ์ €์žฅ).

์˜ˆ, ๊ทธ๊ฒƒ์€ ํฐ ๋ฌธ์ œ๋กœ ์ปค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

toxcore๋Š” ๊ตฌ๋ฌธ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•ด์•ผ ํ•˜์ง€๋งŒ ์„ ํƒ์  ๋ถ€๋ถ„์„ ํ•ด์„ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ฐ€๋Šฅํ•œ ์†”๋ฃจ์…˜์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ ํƒ์— ๋”ฐ๋ผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ JSON ๊ตฌ๋ฌธ ๋ถ„์„์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜๊ณ  ์ ์ ˆํ•œ ๊ตฌ์„ฑ ๊ตฌ์กฐ/ํ•จ์ˆ˜๋กœ toxcore๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ถœ๋ ฅ ํŒŒ์ผ์ด ํ˜ธํ™˜๋œ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ์ข‹์€ ๋ฐฉ๋ฒ•์ธ์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ์•„์ด๋””์–ด๋Š” "Tox ์ €์žฅ ํŒŒ์ผ"์˜ ๊ฐœ๋…์„ ํ๊ธฐํ•˜๊ณ  "Tox ๋‚ด๋ณด๋‚ด๊ธฐ ํŒŒ์ผ"์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‹œ์ž‘ํ•  ๋•Œ๋งˆ๋‹ค ์ €์žฅ ํŒŒ์ผ์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ์ €์žฅ/๋กœ๋“œํ•˜๋Š” ๋Œ€์‹  ํด๋ผ์ด์–ธํŠธ๋Š” ์ž์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค/์ €์žฅ ํŒŒ์ผ์—์„œ toxcore ์ž‘์—…์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์ง€์ •๋œ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•๋งŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ.
์žฅ์ 

  • ๋” ์ ์€ ๊ตฌ์„ฑ ํŒŒ์ผ
  • ํŒŒ์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ํ•˜๋“œ ์ข…์†์„ฑ ์—†์Œ

๋‹จ์ 

  • ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ€์ ธ์˜ค๊ธฐ/๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค๋Š” ๋ณด์žฅ์€ ์—†์Šต๋‹ˆ๋‹ค.

์ „๋ฐ˜์ ์œผ๋กœ ๋‚ด์šฉ์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ• ์„ ๋‹ค๋ฃจ๊ธฐ ์ „์— ๋จผ์ € ์ด ํŒŒ์ผ์— ๋ฌด์—‡ ์„ ์ €์žฅํ• ์ง€ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@master-passeli

JSON ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์ €์žฅ ํŒŒ์ผ์„ ์•”ํ˜ธํ™”ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹์— ๊ด€๊ณ„์—†์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.


@sudden6

๋˜ํ•œ ๊ฐ€๋Šฅํ•œ ์†”๋ฃจ์…˜์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ ํƒ์— ๋”ฐ๋ผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ JSON ๊ตฌ๋ฌธ ๋ถ„์„์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜๊ณ  ์ ์ ˆํ•œ ๊ตฌ์„ฑ ๊ตฌ์กฐ/ํ•จ์ˆ˜๋กœ toxcore๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—, ์•„๋‹ˆ, ํ•ด๊ฒฐ์ฑ… ์ด ์•„๋‹ˆ๋ผ ์ž˜๋ชป๋œ ๋ฐฉ์‹์œผ๋กœ ์ผ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์•„๋ฐ”ํƒ€๋ฅผ tox ์„ธ์ด๋ธŒ ํŒŒ์ผ์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•˜์ง€๋งŒ ์•„๋ฐ”ํƒ€๋Š” ๋‹จ์ง€ ์˜ˆ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์„ธ์ด๋ธŒ ํŒŒ์ผ์— ์ €์žฅํ•˜๊ณ  ์‹ถ์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ๊ฐ๋‚˜์ง€ ์•Š์ง€๋งŒ ๋ฏธ๋ž˜์—๋Š” ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ๋ž˜๋Š” ์กฐ๊ธˆ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. :)

๊ธฐ๋ณธ ๋ฐ ์„ ํƒ ๋ถ€๋ถ„์€ ์„ ํƒ ๋ถ€๋ถ„์ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž์œ ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ช‡ ๊ฐ€์ง€ ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž˜ ์ œ์ž‘๋˜๊ฑฐ๋‚˜ ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜์—ฌ tox core๋ฅผ ์œ„ํ—˜์— ๋น ๋œจ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค. ๋‚˜๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ถ”๊ฐ€ํ•œ ๋ถ€๋ถ„์ด toxcore์— ์˜ํ•ด ํ•ด์„๋˜์ง€ ์•Š๊ณ  toxcore๊ฐ€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํฌํ•จํ•˜๋ ค๋Š” ๋ถ€๋ถ„์„ ๊ตฌ๋ฌธ์ ์œผ๋กœ ๊ฒ€์ฆํ•จ์œผ๋กœ์จ ์ด๋Ÿฌํ•œ ๊ฐ€๋Šฅ์„ฑ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

@sudden6

๋‚ด ๋ง์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ toxcore์— ์˜ํ•ด ํŒŒ์ผ์— ์ €์žฅ๋˜๊ณ  ๋กœ๋“œ๋˜๋Š” ๊ตฌ์„ฑ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์–ด๋–ค ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐฉ๋ฒ•์ด๋“  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Qt์—๋Š” ์ž์ฒด JSON ํŒŒ์„œ๊ฐ€ ์ด๋ฏธ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— qTox์—๋Š” ์™ธ๋ถ€ JSON ํŒŒ์„œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ JSON ํŒŒ์„œ๋ฅผ ์†Œ์œ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ C ํŒŒ์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ƒํ™ฉ์„ ๋” ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž์‹ ์˜ ๋‚ด๋ณด๋‚ด๊ธฐ ํŒŒ์ผ์„ ๊ตฌํ˜„ํ•˜๋Š” ์•„์ด๋””์–ด๊ฐ€ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๋งŽ์€ ์ˆ˜์˜ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋‚ด๋ณด๋‚ด๊ธฐ ํŒŒ์ผ๊ณผ ์—„์ฒญ๋‚œ ํ˜ผ๋ž€์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์„๊นŒ ๊ฑฑ์ •๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ toxcore์˜ ์ฑ…์ž„์ด์ž ๊ธฐ๋Šฅ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๊ธฐ๋ณธ ๋ฐ ์„ ํƒ์  ๋ถ€๋ถ„ ๋ถ„๋ฆฌ๊ฐ€ ์–ด๋–ค ๋ฌธ์ œ์—์„œ๋„ ๋„ˆ๋ฌด ์œ„ํ—˜ํ•œ ๊ฒฝ์šฐ JSON ํ˜•์‹์— ๋Œ€ํ•ด ์—ฌ์ „ํžˆ +1์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋งŽ์€ b *t XML ๊ตฌ์„ฑ ๋˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ * ๋”๋ฏธ๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰