JSON ์๋ต์ ๋ชจ๋ธ ํด๋์ค๋ก ์ฎ๊ธฐ๊ธฐ
์ธ์ด๋ฅผ ๊ณ ๋ฅด๊ณ JSON ์ ๋ถ์ฌ ๋ฃ์ผ๋ฉด TypeScript interface, Python dataclass, Java record ์ค ํ๋๋ก ๋ชจ๋ธ ์ฝ๋๊ฐ ๋ง๋ค์ด์ง๋ค. ์ค์ฒฉ๋ ๊ฐ์ฒด๋ ๋ณ๋ ํ์ ์ผ๋ก ๋ผ์ด ๋ด๊ณ , ๊ฐ์ฒด ๋ฐฐ์ด์ ๋ชจ๋ ์์์ ํ๋๋ฅผ ํฉ์ณ์ ์ถ๋ก ํ๋ฏ๋ก ์ด๋ค ์์์๋ง ์๋ ํ๋๋ ๋น ์ง์ง ์๋๋ค.
์ธ์ด๋ง๋ค ๊ฑธ๋ฆฌ๋ ์ง์ ์ด ๋ค๋ฅด๋ค. Python ์ ๊ธฐ๋ณธ๊ฐ์ด ์๋ ํ๋๊ฐ ์์ ์ค๋ฉด ํด๋์ค ์ ์ ์์ฒด๊ฐ ์คํจํ๋ฏ๋ก ์ ํ ํ๋๋ฅผ ๋ค๋ก ๋ชจ์ผ๊ณ , ํค๋ฅผ snake_case ๋ก ๋ฐ๊ฟ ๋ ์๋ ํค๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ธด๋ค. Java ๋ record ๋ก ๋ง๋ค๋ ํ ํ์ผ์ public ํ์ ์ด ํ๋๋ง ์ฌ ์ ์์ด ์ต์์๋ง public ์ผ๋ก ๋๋ค. TypeScript ๋ ์๋ณ์๋ก ์ธ ์ ์๋ ํค๋ฅผ ๋ฐ์ดํ๋ก ๊ฐ์ผ๋ค. 2026๋ 10์ ๊ธฐ์ค์ผ๋ก ์ธ ์ธ์ด์ ์ถ๋ ฅ์ ๊ฐ๊ฐ ์ปดํ์ผ๊ณผ ์คํ์ผ๋ก ํ์ธํ๋ค.
null ๊ณผ ๋น ๋ฐฐ์ด, ํ์ ์ด ์์ธ ๋ฐฐ์ด์ ๊ฐ๋ง ๋ณด๊ณ ํ์ ์ ์ ์ ์์ด ์ถ์ธกํ์ง ์๊ณ ๊ทธ ์๋ฆฌ๋ฅผ ๊ฒฝ๋ก๋ก ์๋ ค ์ค๋ค. ์ง์ ์ธ์ด๋ ์ ํ ๋ชฉ๋ก์ ์ธ ๊ฐ์ง๋ฟ์ด๊ณ Go ๊ตฌ์กฐ์ฒด๋ ๋ค๋ฃจ์ง ์๋๋ค. ์ญ์ง๋ ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์ ์ด๋ ๊ฒ์ฆ ์ฝ๋๋ ๋ฃ์ง ์๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ค์ ๋ก ๋ง๋ค์ด ์ปดํ์ผ๊ณผ ์คํ์ผ๋ก ํ์ธํ ์ถ๋ ฅ๋ง ์ฌ๋ ธ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ชฉ๋ก์ ์๋ ์ธ์ด๋ ์ด ๋๊ตฌ๊ฐ ๋ง๋ค์ง ์๋๋ค. Go ๊ตฌ์กฐ์ฒด๊ฐ ํ์ํ๋ฉด Go ์ ์ฉ ๋๊ตฌ๋ฅผ ์ฐ๋ฉด ๋๋ค.
dataclass ๋ ๊ธฐ๋ณธ๊ฐ์ด ์๋ ํ๋ ๋ค์ ๊ธฐ๋ณธ๊ฐ ์๋ ํ๋๊ฐ ์ค๋ฉด ์ ์ ๋จ๊ณ์์ ์ค๋ฅ๊ฐ ๋๋ค. ๊ทธ๋์ Optional ํ๋๋ฅผ ๋ชจ๋ ๋ค๋ก ๋ชจ์ ๋๋ค.
JSON ๊ฐ์ null ์ผ ์ ์๊ณ int ๋ long ๊ฐ์ ๊ธฐ๋ณธํ์ null ์ ๋ด์ง ๋ชปํ๋ค. ๋ฐ์ฑ ํ์ ์ ๋๋ฉด null ์ด ์ค๋ ์๊ฐ ์ญ์ง๋ ฌํ๊ฐ ์คํจํ๋ฏ๋ก ๊ธฐ๋ณธ์ ๋ฐ์ฑ์ผ๋ก ๋์๋ค.