๋‹ค๋“ค ์•Œ๋‹ค์‹œํ”ผ ํšŒ์‚ฌ์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์‹œ๋ฆฌ์–ผ๋ผ์ด์ €๋‹ค.

ํŠนํžˆ protobuf, message pack์„ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค.

์–˜๋„ค๋“ค์€ ํŒจํ‚ท ์ „์†ก์— ์“ฐ์ธ๋‹ค.


๊ตฌ๊ธ€ protobuf๋Š” ๋Œ€๊ฒŒ ์„œ๋ฒ„๊ฐ€ c++, ์—”์ง„์ด ์œ ๋‹ˆํ‹ฐ์ผ ๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

์ค‘๊ฒฌ/๋Œ€๊ธฐ์—…์—์„œ ๋งŽ์ด ์“ด๋‹ค.

message pack์€ ์„œ๋ฒ„์™€ ์—”์ง„์ด ๋‘˜ ๋‹ค c#์ผ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

๋น„๊ต์  ์ž‘์€ ๊ธฐ์—…์—์„œ ๋งŽ์ด ์“ด๋‹ค.(์ง„์งœ ์ธ์›์ˆ˜ ๊ฐœ์ ๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ๋ ฅ ํ›„๋‹ฌ๋ฆฌ๋Š” ์ข†์†Œ๋ง๊ณ )

์˜ˆ๋ฅผ ๋“ค์–ด ๋ธ”๋ž™์„œ๋ฐ”์ด๋ฒŒ:์ดํ„ฐ๋„ ๋ฆฌํ„ด๋„ ๋ฉ”์‹œ์ง€ ํŒฉ์„ ์‚ฌ์šฉํ•œ๋‹ค.


message pack์˜ ๊ฒฝ์šฐ protobuf์ฒ˜๋Ÿผ .proto ํŒŒ์ผ์„ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์ง€๋งŒ dynamic resolver๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์–ด ์ฝ”๋“œ ์ƒ์„ฑ๊ธฐ๋ฅผ ํ†ตํ•ด ๋ฉ”ํƒ€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ด์•ผํ•œ๋‹ค.

(๋ฌผ๋ก  IL2CPP ๋นŒ๋“œ์˜ ๊ฒฝ์šฐ)


ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์—์„œ ์—‘์…€์„ ์ฝ์–ด์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ๋งŒ๋“  ํ›„ AWS ์ธ์Šคํ„ด์Šค์— ์˜ฌ๋ ค๋†“์œผ๋ฉด byte array๋ฅผ ๊ฒŒ์ž„ ๋กœ๋”ฉ์‹œ ์„œ๋ฒ„์—์„œ ๋ณด๋‚ด์ฃผ๋Š” ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๊ณ  ์žˆ๋‹ค.


์ž์ฃผ ๋ณ€๊ฒฝ๊ฐ€๋Šฅํ•˜๊ฑฐ๋‚˜ ๊ธด๊ธ‰ํ•˜๊ฒŒ ๋Œ€์‘ํ•ด์•ผํ•˜๋Š” ๋ฐ์ดํ„ฐ -> ์„œ๋ฒ„์—์„œ byte array๋กœ ๋“ค๊ณ ์žˆ๋‹ค๊ณ  ์ด์ฃผ๋Š” ํ˜•์‹.

์—‘์…€ ๋ณ€๊ฒฝ ํ›„ ํ˜•์ƒ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์— ์ปค๋ฐ‹์‹œ ์„œ๋ฒ„ watcher์—์„œ ๊ฐ์ง€ ํ›„ byte array ์ƒ์„ฑ. ์ƒ์„ฑํ™•์ธ ํ›„ ํด๋ผ์ด์–ธํŠธ์— ๋ฐ์ดํ„ฐ ์žฌ๋กœ๋”ฉ ํŒจํ‚ท ๋ณด๋‚ธ๋‹ค.

๋ฃธ ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„์ผ ๊ฒฝ์šฐ, ๊ฒŒ์ž„์ด ๋๋‚œ ํ›„. ์‹ค์‹œ๊ฐ„์ผ ๊ฒฝ์šฐ ๊ทธ ์ƒํƒœ๋กœ ๋ฐ”๋กœ ๋น„๋™๊ธฐ ๋กœ๋”ฉ.

์„œ๋ฒ„์—์„œ ๋น„๋™๊ธฐ ๋กœ๋”ฉ ์ค‘์—๋Š” ๋ชจ๋“  ์„œ๋ฒ„๋กœ ํŒจํ‚ท์„ ๋ณด๋‚ด๋Š” ํ–‰๋™์— ๋ฝ์„ ๊ฑธ์–ด ๋กœ๋”ฉ์ด ๋๋‚œ ํ›„ ํŒจํ‚ท ํ’€์—์„œ ๋‹ค์‹œ ํŒจํ‚ท ๋ณด๋‚ด๋„๋ก ํ•œ๋‹ค.


์ž์ฃผ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๊ณ  ์šฉ๋Ÿ‰์ด ํฐ ํ…์Šค์ฒ˜, ๋ชจ๋ธ๋ง ๋“ฑ ํŒŒ์ผ์€ aab๋กœ ๋ฒˆ๋“ค๋งํ•œ๋‹ค.