๐ ๊ฐ์๋งํฌ : https://www.inflearn.com/course/์คํ๋ง๋ถํธ-๊ฐ๋ ์ ๋ฆฌ/dashboard
์๋ฅผ ๋ค์ด ์์ด๊ถ์ ์ฌ๋๊ณผ ํ๊ตญ์ฌ๋์ด ๋ํ๋ฅผ ํ ๋ ๋ค๋ฅธ ์ธ์ด๋ก ๋ํ ์ ๋ณด๋ด๋ ์ฌ๋์ด ๋ฒ์ญ์ ํด์ ๋ณด๋ด๊ฑฐ๋ ๋ฐ๋ ์ฌ๋์ด ๋ฒ์ญ์ ํด์ผํ๋ค. ์ด๋ ๊ฒ ๋๋ฉด ๋ถํธํ๋ค.
๊ทธ๋์ ํ๊ตญ๋ ์์ด์ฌ๋๋ ์ดํดํ ์ ์๋ ์ค๊ฐ์ธ์ด๋ฅผ ๋ง๋ค๊ฒ ๋๋๋ฐ.. ์ด๊ฒ์ฒ๋ผ ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค๊ฒ ๋๋ค. ์ค๊ฐ ๋ฐ์ดํฐ๋ ์๋ ์ด๊ธฐ์๋ xml์ ๋ง์ด ์ฌ์ฉํ์ง๋ง ์ด์ ๋ JSON์ ๋ง์ด ์ฐ๋ ์ถ์ธ์ด๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์๋ฅผ ๋ค์๋ฉด ์๋ฐ object๋ฅผ ๋์ง๊ฒ ๋๋ฉด ํ์ด์ฌ object๋ ์ดํดํ ์ ์๋ค. ์๋ํ๋ฉด ์๋ฐ์ object์ ํ์ด์ฌ์ object๋ ์๋ก ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๋ฐ object ์ ์ก๋๊ธฐ ์ ์ ์ค๊ฐ ์ธ์ด์ธ JSON์ผ๋ก ๋ฐ๊ฟ์ ธ์ ํ์ด์ฌ์ด ๋ฐ๊ฒ ๋ ํ ๋ค์ ํ์ด์ฌ object๋ก ๋ฐ๊พผ๋ค.. JSON์ ๋ชจ๋ ์ธ์ด๊ฐ ์ดํดํ ์ ์๋ ์ค๊ฐ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ฐ
class Animal{
int num = 10;
String name = "์ฌ์";
}Json
{"num":10, "name":"์ฌ์"}์๋ฐ object๋ฅผ JSON ํํ๋ก ๊ฐ๋ฐ์๊ฐ ๋ฐ๊ฟ ํ์ ์์ด ๋ฐ๊ฟ์ฃผ๋ ๊ฒ์ MessageConverter์ด๋ผ๊ณ ํ๋ค.\
์์ฒญ ์์ ์๋ต ์ ๋ชจ๋ MessageConvertor๊ฐ ๋ฐ๊ฟ์ฃผ๋ ๊ฒ์ผ๋ก MessageConvertor์ spring์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์กด์ฌํ๋ฉฐ jackson์ด๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
ํต์ ์ ๊ฒฝ์ฐ ์ ๊ธฐ์ (์ ๋ฅ) ์ฒ๋ผ ์ฃผ๋ฅด๋ฅต ํ๋ฅด๊ฒ ๋์ด ์์ผ๋ฉฐ, bit ๋จ์๋ก 0, 1, 0, 1, 1, 1, 0 ์ด๋ฐ์์ผ๋ก ํํํ๊ฒ ๋์ด ์๋ค.
ํต์ ์ ๊ฒฝ์ฐ ์์ด๊ถ์์ ๋จผ์ ๋ฐ์ ํ๊ฒ ๋์๋๋ฐ.. bit ๋จ์๋ก ํ ๋ ค๋ ๋ถํธํด์ ์์ด ํ๋ฌธ์๋ก ์ด๋ป๊ฒ ํํํ์ง? ๐ค ๋ผ๊ณ ์๊ฐํด๋ณด๋ ์ด 8bit =
๊ทธ๋์ 8bit์ฉ ๋์ด ์ฝ์ด ๊ทธ๋ ๋ค๋ฉด ํ ๋ฌธ์์ฉ ๋ฐ์ ์ ์์ ๊ฑฐ์ผ๋ผ๊ณ ํด์ 8bit = 1byte๋ผ๊ณ ํ๋ค. 1byte๋ ํต์ ์ ์ต์๋จ์๋ก ๋ณธ๋ค.
1byte = ํ๋์ ๋ฌธ์
ํ๊ตญ์ 2Byte๋ก ์ธ์ฝ๋ฉํ๊ณ ์์ด๊ถ์ 1Byte๋ก ํต์ ํ๊ฒ ๋๋ฉด.. ๋ฐ์ดํฐ ํต์ ์ด ๋ถ๊ฐ๋ฅ ํ๊ฒ ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ทธ๋์ ์ ๋์ฝ๋์์ ์ ํด๋ ๊ฒ์ด UTF-8์ด๋ผ๋ ์ธ์ฝ๋ฉ์ ์ ๊ณตํด์ฃผ๋ ๋ฐ 3Byte ํต์ ๋ฐฉ์์ด๋ค.
์๋ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๋ InputStream์ผ๋ก ์ฝ๋ ๋ฐ ๋ฐ์ดํธ๋ก ์ฝ๋๋ค. ๋ฐ์ดํธ๋ ๋ฌธ์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ฒ๋ฆฌํ ๋ ๋ณต์กํด์ง๋ค. ๋ฌธ์๋ก (char) ์บ์คํ
ํด์ ์ฒ๋ฆฌํด์ผ ํ๋ค๋๋ฐ.. ๋ณต์กํ๋ค.
๊ทธ๋์ ์ฒซ ๋์์ด InputStramReader๋ ๋ฌธ์ ํ๋๋ฅผ ๋ฐ๋๋ค. ๊ทผ๋ฐ ์ด๊ฑฐ ๋ํ ๋ฐฐ์ด์ ๊ฒฝ์ฐ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์๋ฅผ ์จ์ ๋ฐ์์ผ ํด์ ์ต๋ ํฌ๊ธฐ๋ฅผ ์ ํด๋ฌ์ผ ํ๋๋ฐ.. ์ด๋ ๊ฒ ๋๋ฉด ์์ ํฌ๊ธฐ๋ฅผ ๋ฐ์ ๋ ๋ญ๋น๊ฐ ์ฌํด์ ์ฌ์ฉํ์ง ์๋๋ค.
BufferedReader๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๊ฐ๋ณ๊ธธ์ด์ ๋ฌธ์๋ฅผ ๋ฐ์ ์ ์๋ค. request.getReader()
๋ฐ์ดํฐ๋ฅผ ์ธ ๋๋ BufferedWriter๋ฅผ ์จ์ผ ํ๋๋ฐ ๋ด๋ ค์ฐ๊ธฐ ๊ธฐ๋ฅ์ด ์์ด์ PrintWriter๋ฅผ ์ฐ๋ฉฐ, ํจ์์ ๊ฒฝ์ฐ print(), println() ์ ๊ณต ํด์ค๋ค.
์ฆ,
BufferedWriter๋ Byte Stream์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ์ ์ก ๋จ์๊ฐ ๋ฌธ์์ด๋ก ๊ฐ๋ณ ๊ธธ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒ ํด์ฃผ๋ ํด๋์ค์ด๋ค.
์ด๊ฒ๋ค์ ์ง์ ๊ตฌํํ ํ์์๊ณ ์ด๋
ธํ
์ด์
์ ์ ๊ณต @ResponseBadyโ BufferedWrite๊ฐ ๋์, ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋๋ @RequestBody โ BufferedReader






