๐ป..Tech..๐ป (4) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ Spring์ Jackson Custom Serialization ์ ์ฉ ์คํ๋ง๋ถํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก Jackson๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ์๋ฐ ๊ธฐ๋ณธ ์ปฌ๋ ์ ๊ฐ์ฒด๋ค์ Json์ผ๋ก Serialize๋ฅผ ์งํํด์ค๋ค. ํ์ง๋ง, ๊ธฐ์กด ๋ ๊ฑฐ์ ์ฝ๋์ ์๋ ์ฌ์ฉ์ ์ ์๊ฐ์ฒด๋ฅผ jsonํํ๋ก ๋ฐํํ ์ผ์ด ์๊ธฐ๋ฉด์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ์ฌ์ฉ์ ์ ์๊ฐ์ฒด๋ฅผ ์ด๋ป๊ฒ Serializeํด์ผํ ์ง ์ ์๋์ด ์์ง ์์์ ์๊ธฐ๋ ๋ฌธ์ ์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด serializtion์ ์ปค์คํฐ๋ง์ด์งํด์ objectMapper์ ์ถ๊ฐํ๊ณ ์ด๋ฅผ ์คํ๋ง์์ ์ฌ์ฉํ ์ ์๊ฒ ๋น ๋ฑ๋กํด์ฃผ๋ ๊ณผ์ ์ ์งํํ๋ค. ์๋ ์ฝ๋๋ HashMap์ ์์๋ฐ์ ์ฌ์ฉ์์ ์ DataSet๊ฐ์ฒด๋ฅผ ์ง๋ ฌํํ๋ ๊ณผ์ ์ด๋ค. writeObject()๋ฅผ ํตํด ์ฌ๊ท์ ์ผ๋ก ๊ด๋ จ๋ ์ง๋ ฌํ๋ฅผ ์งํํ์ฌ json ๋ฌธ์์ด์ ๋ง๋ค์ด ๋ฐํํ๊ฒ ๋๋ค. public class DataSe.. โก๏ธ Scale Out๋ ํ๊ฒฝ์์ ์ธ์ ๊ด๋ฆฌ๋ฐฉ๋ฒ โก๏ธ ๋จผ์ ๋ค์ค ์๋ฒ ํ๊ฒฝ์ด ์๊ธฐ๋ ์ด์ ์ ๋ํด ์์๋ณด์. ํธ๋ํฝ์ด ์ฆ๊ฐํ๋ฉด ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์๋ฒ์ ์ฑ๋ฅ์ ํฅ์น์์ผ์ผ ํ๋ค. ์ด๋ฅผ ์ํ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. Scale Up / Scale Out ์ค์ผ์ผ์ ์ ๋จ์ผ ์๋ฒ์ ์ฑ๋ฅ์ ์ฆ์นด์์ผ ๋ ๋ง์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ (CPU, ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ ์ ๊ทธ๋ ์ด๋) ์ฅ์ ์๋ฒ๊ฐ ํ๋์ด๋ฏ๋ก ๋ฐ์ดํฐ ์ ํฉ์ฑ ์ด์๊ฐ ๋ฐ์ํ์ง ์๋๋ค. (์ฅ์ ) ๋จ์ ์ผ์ ์์ค์ด์ ์ฑ๋ฅ์ด ํฌ๊ฒ ์ฆ๊ฐํ์ง ์์ (๋นํจ์จ) ์๋ฒ๊ฐ ์ฃฝ์ผ๋ฉด ๋ณต๊ตฌ์ ๊น์ง ๋ชจ๋ ์๋น์ค๊ฐ ์ค๋จ๋๋ค. ์ค์ผ์ผ์์์ ์๋ก์ด ์๋ฒ๋ฅผ ์ถ๊ฐํ์ฌ ํธ๋ํฝ์ ๊ฐ ์๋ฒ๊ฐ ๋๋ ๊ฐ์ ธ ๋ ๋ง์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ ์ฅ์ ์๋ฒ๊ฐ ์ฌ๋ฌ ๋์ด๋ฏ๋ก ํ๋๊ฐ ์ฃฝ์ด๋ ๋ค๋ฅธ ์๋ฒ์์ ์๋น์ค ์ ๊ณต ๊ฐ๋ฅํ์ฌ ‘๊ฐ์ฉ์ฑ’์ ๋์ผ ์ ์๋ค. ์์ฒญ๋์ ๋ฐ๋ผ ํ์์ ๋ฐ๋ผ ์๋ฒ.. ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ฉํด๋ณด๊ธฐ ์๋ฒ๋ฆฌ์ค๋? ๊ฐ๋ฐ์๊ฐ ์๋ฒ๋ฅผ ๊ด๋ฆฌํ ํ์ ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ํ๊ณ ์คํํ ์ ์๋๋ก ํ๋ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๊ฐ๋ฐ ๋ชจ๋ธ ์๋ฒ์์์ AWS์์ ์ ๊ณตํด์ฃผ๊ณ ๊ฐ๋ฐ์๋ ๋น์ฆ๋์ค๋ก์ง์ ์ง๋๋ฐ๋ง ์ง์คํ ์ ์๋ ๊ตฌ์กฐ ์จํ๋ ๋ฏธ์ค์์ ๋ฐ์ํ ์ ์๋ ์๋ฒ๊ตฌ์ฑ, ํดํธ, ํ์ฅ์ฑ ๋ฑ์ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋จ ๊ธฐ์กด์ ์๋ฒ์์ ์ฌ์ฉ์ ์๊ฐ ๊ฐ์๊ธฐ ์ฆ๊ฐํ๋ ์ํฉ์ด ๋ฐ์ํ๋ฉด? → ์จํ๋ ๋ฏธ์ค๋ ๊ฐ์๊ธฐ ์๋ฒ๋ฅผ ํ์ฅ์ํฌ ์ ์์ผ๋ฏ๋ก ์๋ฒ๊ฐ ํฐ์ง๊ณ ์ด๋ ๋น์ฆ๋์ค์ ์ธ ์ํด๋ก ์ด์ด์ง → ๋์ด๋ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๋ ์ธ๋ ฅ๋ ํ์ํจ.. → ํ์ง๋ง, ํญ์ ๋ง์ ์์ฒญ๊ณผ ์ธ๋ ฅ์ด ํ์ํ ๊ฒ์ ์๋.. → ์ ์ฐํ๊ฒ ์กฐ์ ์ ํ ์ ์์ผ๋ฉด ์ข๋ค! ์๋ฒ๋ฆฌ์ค๋ ์๋น์ค ์์ฒญ๋์ ๋ฐ๋ผ ๋ณํ์ง์๊ณ ํญ์ ๊ฐ์ ํ์ง์ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ฝ๋๋ก ํจ AWS ๊ฒฐ์ ์๋ ์ค์ ํ๊ธฐ .. [์ค๋ฅ] PRG(Post-Redirect-Get) ํจํด ์ ์ฉ ์ค๋ฅ ๐ค ๋ฌธ์ ๋ฅผ ๊ฒช๊ฒ ๋ ์ด์ ๐ค ์ฑ '์คํ๋ง ์ ๋ฌธ์ ์ํ ์๋ฐ ๊ฐ์ฒด์งํฅ์ ์๋ฆฌ์ ์ดํด'๋ฅผ ์ฐ์ ๋ถ๊ป์ ๋ถ๋ก ๋ถ๋ถ์ ์๋ ์ปจํธ๋กค๋ฌ์์ POST ์์ฒญ์ ์ฒ๋ฆฌํ ํ redirect ํ๋ ๊ฒ๊ณผ ๋ทฐ ํํธ๋ง ์ ๊ณตํ๋ ๊ฒ์ ์ฐจ์ด์ ๋ํด ์๋ํด๋ณด๋ผ๊ณ ํ์ จ๋ค. ๊ทธ๋์ ๋ด ํ๋ก์ ํธ์ ์ค์ ๋ก ์๋ํด๋ณด๊ธฐ๋ก ํ๋ค. 1. "/url" ๋ก ๋ฆฌํดํ๋ฉด ํ๋ฉด์ ์ ํ๋๋ ๋ธ๋ผ์ฐ์ ์ฃผ์๋ ๊ณ์ํด์ ์ด์ url์ ๊ฐ๋ฅดํค๊ณ ์์๋ค. 2. "redirect:/url"๋ก ๋ฐํํ๋๋ ํ๋ฉด์ด ์ ํ๋๋ฉด์ ๋ธ๋ผ์ฐ์ ์ฃผ์๋ ํจ๊ป ๋ณ๊ฒฝ๋์๋ค. 1๋ฒ ๋ฐฉ๋ฒ์ ๋ธ๋ผ์ฐ์ ์ฃผ์๊ฐ ๋ณ๊ฒฝ๋์ง ์์ผ๋ฏ๋ก ํ๋ฉด์ ์๋ก๊ณ ์นจํ ๋๋ง๋ค POST์์ฒญ์ด ๋ ๋ผ๊ฐ ์ํ์ด ์กด์ฌํ๋ค. 2๋ฒ ๋ฐฉ๋ฒ์ ์ด๋ฏธ ๋ธ๋ผ์ฐ์ ์ ์ฃผ์๊ฐ ๋ณ๊ฒฝ๋์๊ธฐ ๋๋ฌธ์ ์๋ฒ์ ๋ถ์์ฉ์ ์ผ์ผํค์ง ์๋๋ค. โ ๏ธ ๋ฌธ์ ์ํฉ โ ๏ธ .. ์ด์ 1 ๋ค์