
ํด๋ฌ์คํฐ๋ ์๊ณ , ๋ก๋๋ฐธ๋ฐ์๋ ์๊ณ , Nginx๋ ์๊ณ , ๋๋ ์๋๋ฐ ๋ฌด์ค๋จ์ ํ๊ณ ์ถ๋? ๊ทธ๋ผ ๋ Docker Swarm ์ด์ผ

โ๋ด ์์ ํ์ฅํจ์๊ฐ ๊ฟํ๊ฑฐ๋ฆฐ๋คโฆ!"

Spring์์ Redis ์ฝ๊ฒ ํ์ฉํ๊ณ ํต์ ์ ๋ง๋ ๊ฟํ ๊ณต์ ํ๋ค.

ํจ๊ปํด์ ์ฆ๊ฑฐ์ ๊ณ ๋ค์ ๋ง๋์ง ๋ง์ (๋ฉํฐ๋ชจ๋ ์ด์ผ๊ธฐ)
์ฝํ๋ฆฐ + ์คํ๋ง ์กฐํฉ์ ์ฌ์ฉํ๋ฉด์ ๋๋์ ์๋๋ก์ด๋๋ ์ฝํ๋ฆฐ์ด ์ด๋ฏธ ๋์ธ๋ก ์๋ฆฌ์ก์์ง ๊ฝค ๋์์ง๋ง.. ๋ฐฑ์๋๋ ์์ง ์๋ฐ+์คํ๋ง ์กฐํฉ์ด ํจ์ฌ ๋ง์ด ์ฌ์ฉ๋๋ ๊ฒ ๊ฐ๋ค.์ต๊ทผ ์ ๋์ฝ ๊ธฐ์ ๋ค์ด ์ ๊ท ํ๋ก์ ํธ๋ฅผ ์ฝํ๋ฆฐ+์คํ๋ง ์กฐํฉ์ผ๋ก ์งํํ๋ ๊ฒ์ ๋ณด๊ณ ๋ฐ๋ผ์จ๋ดค๋ค.์ฌ์ค ์์ ์๋

DB์์ ๊ฐ์ ์กฐํํ ๋ ์กฐํ ์กฐ๊ฑด์ด ๋์ ์ผ๋ก ๋ฐ๋์ด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์๋ค.SQL ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํด ์กฐํํ ๋ ์ฃผ๋ก when/case ๋ฑ์ ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ.. ๊ฐ์ธ์ ์ผ๋ก when/case ๋ฌธ์ ์ํฐํจํด์ด๋ผ๊ณ ์๊ฐํ๋ค.. (SQL์ ๋๋ฌด ๋ณต์กํ๊ฒ
try/catch ๋ธ๋ก์ ์๋ ์ถํ๋ค. ์ฝ๋ ๊ตฌ์กฐ์ ํผ๋์ ์ผ์ผํค๋ฉฐ, ์ ์ ๋์๊ณผ ์ค๋ฅ ์ฒ๋ฆฌ ๋์์ ๋ค์๋๋ค. (ํด๋ฆฐ์ฝ๋)์์ ๊ฐ์ด try-catch๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ด ์๊ฐ๋ฝ๋ ์ํ๊ณ .. ๊ฐ๋ ์ฑ๋ ๋จ์ด์ง๋ค.. ์คํ๋ง์ @ControllerAdvise ๋ฅผ ์ด

์ค๋ฌด์์ ์ํฐํฐ๋ฅผ ์์ฑํ๋ค๋ณด๋ฉด auddit(๊ฐ์ฌ) ๋ชฉ์ ์ผ๋ก ๊ฑฐ์ ๋ชจ๋ ์ํฐํฐ์ ๋ค์ด๊ฐ๋ ํ๋(์ปฌ๋ผ)๋ค์ด ์๋ค. ์ผ์ผ์ด ์์ฑํ๊ธฐ ๋งค์ฐ ๊ท์ฐฎ์๋ฐ.. Spring Data Auddit ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๊ท์ฐฎ์ ์ผ์ ์ค์ผ ์ ์์ต๋๋ค..Spring Audit ๊ธฐ๋ฅ์ ํ์ฉํ๊ธฐ ์
์ํฐํฐ๋ฅผ ์์ฑํ ๋ ์ ๊ฐ ์๊ฐํ๋ ๋ช๊ฐ์ง ์์น์ด ์์ต๋๋ค.๊ทธ์ค ์ํฐํฐ(๊ฐ์ฒด)์ Setter ์ฌ์ฉ ๊ธ์ง ์์น(?) ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.์ํฐํฐ๋ฅผ ์์ฑํ ๋ ์ต๊ด์ ์ผ๋ก ๋ชจ๋ ํ๋์ setter๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.ํ์ง๋ง Setter๋ฅผ ๋ฌด๋ถ๋ณํ๊ฒ ๋จ์ฉํ๋ค ๋ณด๋ฉด ์ฌ๊ธฐ