JSON Parser
JSON์ ๊ฒ์ฆํ๊ณ ๋ณด๊ธฐ ์ข๊ฒ ํฌ๋งทํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์๋ ํธ์ง ๋๊ตฌ์ ๋๋ค.
๋ถ์ฌ๋ฃ์ JSON์ ๋ฐ๋ก ์์ ํ๋ฉด์ ์ ํจ์ฑ ๊ฒ์ฌ, ํฌ๋งท, minify, copy๋ฅผ ํ ํ๋ฉด์์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์์ฃผ ์ฐ๋ ๊ณ์ฐ๊ธฐ์ ์น ๋๊ตฌ๋ฅผ ํ ๊ณณ์์ ๋น ๋ฅด๊ฒ ์ฐพ๊ณ ๋ฐ๋ก ์ฌ์ฉํ ์ ์๊ฒ ๊ตฌ์ฑํ์ต๋๋ค. ๋ณต์กํ ์ค๋ช ๋ณด๋ค, ํ์ํ ๋๊ตฌ๋ฅผ ๊ณง๋ฐ๋ก ์ฐ๊ธฐ ์ฌ์ด ํ๋ฉด๊ณผ ํต์ฌ ๊ธฐ์ค์ ํจ๊ป ํ์ธํ ์ ์๋ ๊ตฌ์กฐ๋ฅผ ์ฐ์ ํฉ๋๋ค.
๋ฌธ์์ด, ์ธ์ฝ๋ฉ, ํฌ๋งท ๋ณํ์ฒ๋ผ ์น ์์ ์ ์์ฃผ ์ฐ๋ ๋๊ตฌ๋ฅผ ๋ชจ์๋ ์์ญ์ ๋๋ค.
JSON์ ๊ฒ์ฆํ๊ณ ๋ณด๊ธฐ ์ข๊ฒ ํฌ๋งทํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์๋ ํธ์ง ๋๊ตฌ์ ๋๋ค.
๋ถ์ฌ๋ฃ์ JSON์ ๋ฐ๋ก ์์ ํ๋ฉด์ ์ ํจ์ฑ ๊ฒ์ฌ, ํฌ๋งท, minify, copy๋ฅผ ํ ํ๋ฉด์์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๋ฌธ์์ด์ URL-safe ํํ๋ก encode ํ๊ฑฐ๋ ๋ค์ decode ํ ์ ์๋ ํธ์ง ๋๊ตฌ์ ๋๋ค.
ํ๊ธ, ๊ณต๋ฐฑ, ์ฟผ๋ฆฌ ๋ฌธ์์ด ๊ฐ์ ๊ฐ์ ๋ฐ๋ก ์์ ํ๋ฉด์ encode/decode/copy๋ฅผ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๋ฌธ์์ด์ Base64๋ก ์ธ์ฝ๋ฉํ๊ฑฐ๋ ๋ค์ ๋์ฝ๋ฉํ ์ ์๋ ํธ์ง ๋๊ตฌ์ ๋๋ค.
ํ ์คํธ๋ฅผ ๋ฐ๋ก ์์ ํ๋ฉด์ Base64 encode/decode/copy๋ฅผ ํ ํ๋ฉด์์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
JWT๋ฅผ decodeํด์ header, payload, ์๊ฐ ํด๋ ์์ ์ฝ๊ธฐ ์ข๊ฒ ๋ณด์ฌ์ฃผ๋ ๋๊ตฌ์ ๋๋ค.
JWT ๋ฌธ์์ด์ ๋ถ์ฌ๋ฃ์ผ๋ฉด header์ payload๋ฅผ pretty JSON์ผ๋ก ๋ณด์ฌ์ฃผ๊ณ , exp/iat/nbf ๊ฐ์ ์๊ฐ์ ํจ๊ป ์ฝ์ ์ ์์ต๋๋ค.
Unix timestamp์ ๋ ์ง/์๊ฐ ๋ฌธ์์ด์ ์๋ก ์ฝ๊ธฐ ์ข๊ฒ ๋ณํํ๋ ๋๊ตฌ์ ๋๋ค.
์ด/๋ฐ๋ฆฌ์ด timestamp๋ฅผ ๋ ์ง๋ก ๋ฐ๊พธ๊ฑฐ๋, ๋ ์ง/์๊ฐ ๋ฌธ์์ด์ Unix timestamp๋ก ๋น ๋ฅด๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
์ ๊ท์ ํจํด๊ณผ flags๋ฅผ ๋ฃ์ด ๋งค์น ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ก ํ์ธํ ์ ์๋ ๋๊ตฌ์ ๋๋ค.
ํจํด, flags, ํ ์คํธ ๋ฌธ์์ด์ ์ ๋ ฅํ๋ฉด ๋งค์น ์ฌ๋ถ์ ์บก์ฒ ๊ทธ๋ฃน์ ํ ํ๋ฉด์์ ๋น ๋ฅด๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
๋ ํ ์คํธ๋ฅผ ์ค ๋จ์๋ก ๋น๊ตํด์ ์ถ๊ฐ/์ญ์ ์ฐจ์ด๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋๊ตฌ์ ๋๋ค.
์ข์ฐ ํ ์คํธ๋ฅผ ๋ฃ์ผ๋ฉด ์ค ๋จ์ ์ฐจ์ด์ ๋ณ๊ฒฝ ์์ฝ์ ํ ํ๋ฉด์์ ๋น ๋ฅด๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
UUID๋ฅผ ์์ฑํ๊ณ ์ ํจ์ฑ, ๋ฒ์ , variant๋ฅผ ํ์ธํ ์ ์๋ ๋๊ตฌ์ ๋๋ค.
UUID๋ฅผ ์๋ก ๋ง๋ค๊ฑฐ๋ ์ ๋ ฅํ UUID๊ฐ ์ ํจํ์ง ๋ฐ๋ก ๊ฒ์ฆํ ์ ์์ต๋๋ค.
ํ ์คํธ๋ฅผ ํด์๋ก ๋ณํํ๋ ๋๊ตฌ์ ๋๋ค. MD5, SHA-1, SHA-256, SHA-512๋ฅผ ์ง์ํฉ๋๋ค.
๋ฌธ์์ด์ ์ ๋ ฅํ๋ฉด ์ฌ๋ฌ ํด์ ์๊ณ ๋ฆฌ์ฆ ๊ธฐ์ค์ผ๋ก ์ฆ์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๊ณ ๋ณต์ฌํ ์ ์์ต๋๋ค.
๊ธ์ก, ์ธ๊ธ, ๊ธ์ต, ์ํ ์์น์ฒ๋ผ ๋ฐ๋ก ๊ณ์ฐ์ด ํ์ํ ๋๊ตฌ๋ฅผ ๋ชจ์์ต๋๋ค.
๊ธฐ์ค๊ฐ ๋๋น ํผ์ผํธ ๊ฐ์ ๋น ๋ฅด๊ฒ ๊ณ์ฐํฉ๋๋ค.
ํ ์ธ์จ, ์ฆ๊ฐ์จ, ์ธ์๋ฅ ๊ฐ์ ํผ์ผํธ ๊ณ์ฐ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ณธ ๊ณ์ฐ๊ธฐ์ ๋๋ค.
์ด์ก ๊ธฐ์ค ๊ณต๊ธ๊ฐ์ก๊ณผ ๋ถ๊ฐ์ธ๋ฅผ ๋ถ๋ฆฌ ๊ณ์ฐํฉ๋๋ค.
๋ถ๊ฐ์ธ ํฌํจ ์ด์ก์์ ๊ณต๊ธ๊ฐ์ก๊ณผ VAT๋ฅผ ๋๋๊ฑฐ๋, ์ค๋ฌด ๊ธฐ์ค ๊ธ์ก ๊ฐ์ ๋น ๋ฅด๊ฒ ํ์ธํ ๋ ์ฐ๋ ๊ณ์ฐ๊ธฐ์ ๋๋ค.
4๋๋ณดํ ์ค์ฌ ์ถ์ ์ผ๋ก ์ ์ค์๋ น ๊ฐ์ ๊ณ์ฐํฉ๋๋ค.
์ฐ๋ด๊ณผ ๋ถ์๊ฐ์กฑ ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์ธ์ ๊ธ์ฌ, 4๋๋ณดํ, ๊ทผ๋ก์๋๊ณต์ ยท์ธ์ ๊ณต์ ๋ฐ์ ์ถ์ ์ธ์ก์ ๊ณ์ฐํฉ๋๋ค.
์๋ฆฌ๊ธ๊ท ๋ฑ ์ํ ๊ธฐ์ค ์ ์ํ์ก์ ๊ณ์ฐํฉ๋๋ค.
๋์ถ ์๊ธ, ๊ธ๋ฆฌ, ๊ธฐ๊ฐ์ ๋ฃ์ด ์ ์ํ์ก๊ณผ ์ด ์ด์๋ฅผ ๋น ๋ฅด๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
์ ๋ฉ์ ํ ์ ๊ธ์ ๋ง๊ธฐ ์์์ก์ ๊ณ์ฐํฉ๋๋ค.
์ ๋ฉ์ ์ก, ๊ธ๋ฆฌ, ๊ธฐ๊ฐ์ ๋ฃ์ผ๋ฉด ์ ๊ธ ๋ง๊ธฐ ์์์ก๊ณผ ์ด์ ์ถ์ ์น๋ฅผ ๋น ๋ฅด๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
BMI์ BMR์ ๋์์ ๊ณ์ฐํฉ๋๋ค.
ํค, ๋ชธ๋ฌด๊ฒ, ๋์ด, ์ฑ๋ณ์ ์ ๋ ฅํ๋ฉด BMI์ ๊ธฐ์ด๋์ฌ๋์ ํจ๊ป ํ์ธํ ์ ์์ต๋๋ค.
๋ ๋ ์ง ์ฌ์ด์ ์ฐจ์ด๋ฅผ ์ผ์๋ก ๊ณ์ฐํฉ๋๋ค.
D-day ๊ณ์ฐ, ๊ณ์ฝ ๊ธฐ๊ฐ ํ์ธ, ํ๋ก์ ํธ ์ผ์ ์ฐจ์ด ๊ณ์ฐ์ฒ๋ผ ๋ ์ง ๊ฐ๊ฒฉ ํ์ธ์ด ํ์ํ ๋ ์ฐ๋ ๋๊ตฌ์ ๋๋ค.
ํ์์ ์ ๊ณฑ๋ฏธํฐ๋ฅผ ์๋ก ๋ณํํฉ๋๋ค.
๋ถ๋์ฐ ๋ฉด์ ์ ๋ณผ ๋ ์์ฃผ ์ฐ๋ ํ๊ณผ ์ ๊ณฑ๋ฏธํฐ๋ฅผ ์๋ก ๋ณํํ๋ ๊ณ์ฐ๊ธฐ์ ๋๋ค.
์ต๊ทผ 3๊ฐ์ ์๊ธ๊ณผ ๊ธฐ๊ฐ์ ๊ธฐ์ค์ผ๋ก ํ๊ท ์๊ธ ๋ฐฉ์์ ๊ฐ๊น๊ฒ ๊ณ์ฐํฉ๋๋ค.
์ต๊ทผ 3๊ฐ์ ์๊ธ๊ณผ ์์ฌ๊ธยท์ฐ์ฐจ์๋น ๋ฐ์๋ถ, ๊ทผ์๊ธฐ๊ฐ์ ๊ธฐ์ค์ผ๋ก ํ๊ท ์๊ธ ๋ฐฉ์์ ๋ ๊ฐ๊น๊ฒ ์์ ํด์ง๊ธ์ ๊ณ์ฐํฉ๋๋ค.
์ ์ฉ ํ์จ์ ๊ธฐ์ค์ผ๋ก ํตํ๋ฅผ ๋ณํํฉ๋๋ค.
์ต์ ํ์จ์ ๋ถ๋ฌ์ค๊ฑฐ๋ ์ง์ ์ ๋ ฅํ ํ์จ์ ๊ธฐ์ค์ผ๋ก ์ธํ ๊ธ์ก์ ๊ณ์ฐํ ์ ์์ต๋๋ค.