๐ก JSON ๋ณด๋ค ๋ ๋น ๋ฅธ ๋์๋ค
JSON ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๋ ํฌ๋งท์ค ํ๋๋ก ์น ์๋น์ค์์ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ์ ํต์ ์ ๋ง์ด ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ์ ๊ฐ ์ ์ ์ผ๋๊น์ง๋ง ํด๋ XML ์ด๋ Plain Text ํ์์ผ๋ก ํต์ ํ๋ API ๋ค๋ ์ฌ๋ฟ ์์์ง๋ง, ์๊ฐ์ด ํ๋ฌ ์ด๋ฌํ API ๋ค์ deprecated ๋์๊ณ ํ์ฌ ์๋น์ค ๋๊ณ ์๋ OPEN API ๋ค์ ๋ฌธ์๋ฅผ ๋ด๋ JSON ์ผ๋ก ํต์ ํ์ง ์๋ API ๋ ์ฐพ์๋ณด๊ธฐ๊ฐ ํ๋ญ๋๋ค. JSON ์ด ์ด๋ ๊ฒ ์ธ๊ธฐ๊ฐ ๋ง์์ง ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๐ ์ฌ๋์ด ์ฝ์ ์ ์๋ ํ์ ๐ ์ธ์ด์ ๊ตฌ์ ๋ฐ์ง ์์ ๐ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ผ๊ด์ฑ ๐ ๋ธ๋ผ์ฐ์ ์ง์ ๐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ JSON API ์ง์ ๊ทธ๋ ์ง๋ง ์ด๋ฌํ JSON ๋ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ์ฑ๋ฅ ์ ํ๋ฅผ ๋ฐ์์ํฌ ์ ์์ต๋๋ค. ๐ ๊ด๋ฒ์ํ๊ฑฐ๋ ์ค์ฒฉ์ด ๊น์ ๋ฐ์ดํฐ์ผ ๊ฒฝ์ฐ Parsing ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค ๐ ๋ฐ์ดํฐ ์ก์์ ์ ๋ฐ๋์ ํด์ผํ๋ ์ง๋ ฌํ ๋ฐ ์ญ์ง๋ ฌํ ๊ณผ์ ์ด ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค ๐ JSON ์ ํ ์คํธ ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์์ด ์ฒ๋ฆฌ๋ฅผ ํ๊ฒ ๋๋๋ฐ ์ด๋ ์ด์ง ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๋นํด ๋๋ฆด ์ ๋ฐ์ ์์ต๋๋ค ๐ JSON ์์ ์ ๊ณตํ๋ ๋ฐ์ดํฐ Type ์ด ์ ํ๋๊ธฐ ๋๋ฌธ์ ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ถ๊ฐ์ ์ธ ์ฅ์น๋ ํํ์ด ํ์ํ๊ฒ ๋์ด ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค ๐ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ์ ๋ํ ์ง์์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ํํํ ๊ฒฝ์ฐ ํ ์คํธ ์ธ์ฝ๋ฉ, ๋์ฝ๋ฉ์ ํ๊ฒ ๋์ด ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค ์ด๋ฌํ JSON ์ ๋จ์ ์ ๋์ฒดํ ์ ์๋ ๊ฒ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์๋ฃจ์ ์ด ์์ต๋๋ค. ๐ Protocol Buffers Protobuf ๋ผ๊ณ ๋ ์๋ ค์ง ํ๋กํ ์ฝ ๋ฒํผ๋ Google ์์ ๊ฐ๋ฐํ ๋ฐ์ด๋๋ฆฌ ์ง๋ ฌํ ํ์์ ๋๋ค. JSON ์ ๋นํด ์ธ์ฝ๋ฉ ๋ฐ ๋์ฝ๋ฉ์ด ๋ ๊ฐ๋จํ๊ณ ๋น ๋ฅธ ๋ฐ์ด๋๋ฆฌ ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ๊ณ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ๋ฐ์ดํธํ ์ ์๋ Schema Evolution ์ ์ง์ํฉ๋๋ค. ๐ MessagePack MessagePack ์ ํจ์จ์ฑ๊ณผ ์๋๋ฅผ ์ํด ์ค๊ณ๋ ๋ ๋ค๋ฅธ ์ด์ง ์ง๋ ฌํ ํ์์ ๋๋ค. ๋งค์ฐ ์ปดํฉํธํ ๋ฐ์ดํฐ ํํ์ ์์ฑํ์ฌ ๋ฐ์ดํฐ ์ ์ก ํฌ๊ธฐ๋ฅผ ์ค์ผ ์ ์๊ณ , Protocol Buffers ์ ๋์ผํ๊ฒ ๋ฐ์ด๋๋ฆฌ ํน์ฑ์ผ๋ก ๋น ๋ฅธ ์ธ์ฝ๋ฉ ๋ฐ ๋์ฝ๋ฉ์ด ๊ฐ๋ฅํฉ๋๋ค. ๐ BSON MongoDB ์์ ์ฌ์ฉํ๋๊ฒ์ผ๋ก ์ ๋ช ํ BSON ์ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ์ ํ์ด ์ถ๊ฐ๋ JSON๊ณผ ์ ์ฌํ ๊ตฌ์กฐ๋ฅผ ์ ์งํ์ฌ ํจ์จ์ฑ๊ณผ ๊ฐ๋ ์ฑ ๊ฐ์ ๊ท ํ์ ์ ๊ณตํฉ๋๋ค. ๋ํ ์ด๋ฏธ์ง๋ ๋ฉํฐ๋ฏธ๋์ด์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์ ์ฉํ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ์ ํ์ ๋ํ ๊ธฐ๋ณธ ์ง์์ ์ ๊ณตํฉ๋๋ค. ๐ Avro Avro๋ Apache Hadoop ํ๋ก์ ํธ ๋ด์์ ๊ฐ๋ฐ๋ ๋ฐ์ดํฐ ์ง๋ ฌํ ํ๋ ์์ํฌ๋ก ์คํค๋ง ํธํ์ฑ๊ณผ ์ฑ๋ฅ์ ๊ฐ์ ์ ๋๊ณ ์์ต๋๋ค. ์ปดํฉํธ ๋ฐ์ด๋๋ฆฌ ์ธ์ฝ๋ฉ ํ์์ ์ฌ์ฉํ๋ฏ๋ก ํ์ด๋ก๋๋ฅผ ์ค์ผ ์ ์๊ณ ์ฌ๋ฌ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ง์ํ๋ฏ๋ก ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ํ๊ณ์ ์ ํฉํฉ๋๋ค. ๊ณต์ ๋๋ฆฐ ์๋ฌธ์ ์ด์ ๋ํ ์์ธํ ๋ด์ฉ๊ณผ JSON ์ ๊ณ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ฑ๋ฅ์ ์ต์ ํ ํ ์ ์๋ ํ๋ค์ด ์ ๋ฆฌ๋์ด์์ผ๋ ๊ด์ฌ์์ผ์ ๋ถ๋ค์ ์๋ฌธ ๋ด์ฉ์ ์ฐธ๊ณ ํด์ฃผ์ธ์. ๐ ์๋ฌธ https://dev.to/nikl/json-is-slower-here-are-its-4-faster-alternatives-2g30?utm_source=oneoneone