์ต๊ทผ ์น์ ๊ฐ๋ฐํ๋ ์ค ๋ฐฑ์๋ ์์ฒญ ์์ ํ์ผ๊ณผ JSON ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ๋ณด๋ด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์๋ค.
ํ์์ JSON ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋๋ Application/json
Content Type, ํ์ผ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋๋ Multipart/form-data
Content Type์ ์ฌ์ฉํ๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ์ ์กํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น?
์กฐ๊ธ ์๊ฐํด๋ณด๋ฉด ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ ์ฌ๋ฆด ์ ์๋ค.
1. ๋ ๋ฐ์ดํฐ ๋ชจ๋ Application/json
์ผ๋ก ๋ณด๋ด๊ธฐ
2. ๋ ๋ฐ์ดํฐ ๋ชจ๋ Multipart/form-data
๋ก ๋ณด๋ด๊ธฐ
๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ Application/json
์ผ๋ก ๋ณด๋ด๋ฉด ์ ๋ ๊น?
์ด ์ง๋ฌธ์ ๋ํ ๋ต์ ์ด์งธ์ ํ์ผ์ Multipart/form-data
Content-Type์ ์จ์ผ ํ๋ ์ง์ ๋ํ ์ด์ ์ ์ฐ๊ฒฐ๋๋ค.
์ฌ๋ฌ๊ฐ์ง ์ด์ ๊ฐ ์๊ฒ ์ง๋ง ๋จผ์ limit size, ์ฆ ์ต๋ ํ์ผ ํฌ๊ธฐ๋ฅผ ๊ด์ ์ผ๋ก ์๊ฐํด๋ณด๊ฒ ๋ค.
JSON ๊ท๊ฒฉ ์์ฒด์์ ์ต๋ ์ฌ์ด์ฆ์ ๋ํ ๋ช
์ธ๊ฐ ์ ํด์ ธ ์๊ธฐ ๋ณด๋ค๋, Json Parser
์์ limit size๊ฐ ์ง์ ๋์ด ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
IBM์ ๋ช
์ธ๋์ด ์๋ JSON parser default limit size (https://www.ibm.com/docs/en/datapower-gateway/10.0.1?topic=20-json-parser-limits)
MS์ ๋ช
์ธ๋์ด ์๋ .Net ํ๋ ์์ํฌ์ JavaScriptSerializer (https://docs.microsoft.com/ko-kr/dotnet/api/system.web.script.serialization.javascriptserializer.maxjsonlength?view=netframework-4.8)
์์ ์ฐธ์กฐํ ๋ด์ฉ๋ค์ฒ๋ผ Json ์์ฒด๊ฐ ์๋ Json Parser์ ๊ธฐ๋ณธ์ ์ผ๋ก 4MB ์ ๋์ size limit์ด ๊ฑธ๋ ค์๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
ํ์ผ์ ๊ฒฝ์ฐ์๋ 4MB๋ฅผ ๋์ด๊ฐ๋ ํ์ผ๋ค์ด ์ถฉ๋ถํ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ JSON ๊ท๊ฒฉ์ ์ฌ์ฉํ๊ธฐ ํ๋ค๋ค.
๋ฌผ๋ก Json Parser์ limit size๋ง์ด file ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด Multipart/form-data
๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ ์ผํ ์ด์ ๋ ์๋๋ค.
์ข ๋ ์ฐ๋ฆฌ์๊ฒ ์ง๊ด์ ์ธ ์ด์ ๊ฐ ์๋ค.
ํ์ผ์ ์ฃผ๋ก HTML์ form
ํ๊ทธ๋ฅผ ํตํด ์ฌ์ฉ๋๋ค. ๊ธฐ์กด์ form
์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ์ฌ์ฉํ๋ ๊ท๊ฒฉ์ธ Application/x-www-form-urlencoded
๊ฐ ์กด์ฌํ๋ค. ๊ทธ๋ฐ๋ฐ ์ด ๊ท๊ฒฉ์๋ ํ์ผ์ ์ ์กํ๊ธฐ์๋ ๋ฌธ์ ๊ฐ ์์๋ค.
์ด ๊ท๊ฒฉ์ Body๊ฐ ํค์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋๋๋ฐ, ํค์ ๊ฐ์ =
์ผ๋ก ์ฐ๊ฒฐ๋๊ณ , ๊ฐ ํญ๋ชฉ์ด &
๋ก ์ฐ๊ฒฐ๋๋ค.
name=huewilliams&age=21
๊ทธ๋ฐ๋ฐ ์ฐ๋ฆฌ๊ฐ ํ์ผ์ ์
๋ก๋ ํ ๋๋ ๋ฌธ์์ด ๊ฐ์ด ์๋ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ธ๋ค. ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ง์ ํ์ธํด๋ณด๋ฉด
์์ฒ๋ผ ์์ธกํ ์ ์๋ ๋ฌธ์๋ค์ ์กฐํฉ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. Ctrl+F
๋ก ๋ฌธ์๋ฅผ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ &
๋ ์ผ๋ถ ํฌํจ๋์ด ์์๋ค. ์์์ Application/x-www-form-urlencoded
๋ &
๋ก ๊ฐ ํญ๋ชฉ์ ๊ตฌ๋ถํ๋ค๊ณ ํ๋๋ฐ, ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ์ ์ด๋ฐ ๊ตฌ๋ถ์๋ค์ด ํฌํจ๋์ด ์์ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ตญ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒฐ๋ก ์ด ๋์ค๊ฒ ๋๋ค.
์์์๋ ๋ค๋ฅธ Content-Type
๋ค์ ํ๊ณ๋ฅผ ์ด์ ๋ก ๋ค์์ง๋ง, ์ฌ์ค Multipart/form-data
๊ฐ ํ์ํ ๊ฐ์ฅ ๊ทผ๋ณธ์ ์ธ ์ด์ ๋ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ฐ์ type์ ๊ตฌ๋ถํ์ฌ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด์ ํ์ํ๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฒ์์ผ๋ก ๋์๊ฐ์ ์๋ ๋ชฉํ์๋ JSON ๋ฐ์ดํฐ์ File ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ๋ณด๋ด๊ธฐ ์ํด์ Multipart/form-data
๋ฅผ ์ด์ฉํ๋ฉด ๋ ๊ฒ์ด๋ค!
๊ทธ ๋ฐฉ๋ฒ์ ๋ํ ์์ธ ๊ตฌํ์ ํ์ผ๊ณผ JSON ๋ฐ์ดํฐ๋ฅผ ๋์์ ๋ณด๋ด๊ธฐ! 2ํธ ํฌ์คํ ์ผ๋ก ๋์์ค๊ฒ ๋ค.
https://intrepidgeeks.com/tutorial/html-what-is-multipartform-data-for-file-transfer
๊ฐ์ฌํฉ๋๋ค.