์ค๋์ Redis๋ฅผ ์ฌ์ฉํด์ ์บ์๋ฅผ ์ ์ฉํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ฌ์ค ์ด๋ฒ์ด Redis๋ฅผ ์ฒ์ ์ฌ์ฉํ๋ ๊ฑฐ๋ผ... ์ด์ง์ ๊ณต๋ถ์ฉ์ผ๋ก ์์ฑํ๊ฑฐ๋ผ ๋ง์ด ์ด์ํ ์๋ ์์ต๋๋ค. ์ถ๊ฐ๋ก... ์ง๊ธ ๋ ๋์ค๋ฅผ ์ด๊ณณ์ ๊ณณ์ ์ ์ฉํด ๋ณด๋ ค ํ์์ผ๋.. ์ ๊ฐ ์ฝ๋๋ฅผ ๋๋ฌด ์๋ง์ผ๋ก ์ง์ ๊ทธ๋ฐ์ง... ์ ์ฉํ๋ ค๋ฉด ๋ฌด์ธ๊ฐ ๋๋์ ์ธ ์์ ์์
์ด ํ์ํด ๋ณด์ด๋๊ตฐ์... ๊ทธ๋์ ์ผ๋จ์... ๋ค.. ๋ญ ๋ก๊ทธ์ธ ์์๋ง ์ ์ฉํ๋๋ก ํด๋ณด์์ต๋๋ค..^^ ๊ฒ๋ค๊ฐ ํ
์คํธ์ฝ๋๋... ์บ์๋ฅผ ์ ์ฉํ๋ ์๊ฐ ๋ฉธ๋งํด ๋ฒ๋ ธ๋๋ฐ, ํ
์คํธ ํ๊ฒฝ์์ ๋ ๋์ค๋ฅผ ์ ์ฉํ์ง ์์ผ๋ ค๊ณ ์จ๊ฐ ๋ฐฉ๋ฒ์ ๋ค ์จ๋ดค์ผ๋ ์คํจํ์ต๋๋ค... ํน์ ์ฌ๊ธฐ์ ์ ์ ๊ฐ์ด ๋ ๋์ค๋ก ์บ์ ์์ฑํ๋ ๊ฒ์ ๋ฐ๋ผํ์ ๋ค๋ฉด... ํ
์คํธ์ฝ๋ ๋๋ฆด ๋๋ ๋นผ๊ณ ๋๋ฆฌ๋ ๊ฒ์ผ๋ก...ใ
ใ
ใ
๋์ค์ ๊ผญ ๊ณ ์ณ๋ณด๊ฒ ์ต๋๋ค..ใ
..
์ด์ฐ ๋๊ฒ ์ค๋๋ง์ ๊ธ ์ฐ๋ค์..ใ
ใ
AOP ๊ณต๋ถํ๋ค๊ฐ ๋ฆ์์ต๋๋ค... ์๋ง ์ด๋ฒ ํฌ์คํ
์ดํ๋ก ํ๋์ ํฌ์คํ
์ ๋ชป ํ ๊ฑฐ ๊ฐ๋ค์... ํ๊ต๋ ๋ณตํํ๊ณ , ํ์ฅ์ด ๋๋ฒ๋ ค์ ์ข ์ด๊ฒ์ ๊ฒ ๋ฐ์ฉ๋๋ค.. ๊ทธ๋ฆฌ๊ณ ํ ๋น์ ์คํ๋ง๋ ์ฝ๊ณ , ์ด๊ฒ์ ๊ฒ ๊ณต๋ถํ ๊ฒ ๋ง์์์..ใ
ใ
์ค๋์ AOP๋ฅผ ์ ์ฉํ์ฌ Controller, Service, Repository ๊ณ์ธต์ ๋ํด ๋ฉ์๋๊ฐ ์ํ๋๋ฉด ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ๊ณ , ์ด๋ฅผ ํ์ผ๋ก ์ ์ฅํ๋๋ก ๋ฐ๊ฟ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ํ๊ฒฝ๋ณ ๋ก๊ทธ ์์ค์ ๋ค๋ฅด๊ฒ ๋จ๊ธฐ๋ ๊ฒ๋ ํด๋ณด๊ฒ ์ต๋๋ค! ์ํ๋ฆฌํฐ๋ฅผ ์ด์ฉํ JSON ๋ฐ์ดํฐ๋ก ๋ก๊ทธ์ธ (์๋ฃ) JWT๋ฅผ ์ด์ฉํ ์ธ์ฆ (์๋ฃ) ๋๋ฉ์ธ, ํ
์ด๋ธ ์ค๊ณ, ์ํฐํฐ ์์ฑ (์๋ฃ) ๋๊ธ ์ญ์ ๋ก์ง ๊ตฌํ (์๋ฃ) ํ์๊ฐ์
+ ์ ๋ณด์์ ๋ฑ ํ์ ์๋น์ค ๊ตฌํ (์๋ฃ) ๊ฒ์ํ ์..
์ด๋ฒ์๋ ๋๊ธ์ ์ ์ฅ, ์์ ,์ญ์ ํ๋ ์ปจํธ๋กค๋ฌ๋ฅผ ๋ง๋ค์ด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ด๊ฒ๋ง ๋ง๋ค๋ฉด ๊ทธ๋๋ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ ๊ฐ์ง ๊ฒ์ํ ์๋น์ค๋ฅผ ์์ฑํ๋ค์. ์ํ๋ฆฌํฐ๋ฅผ ์ด์ฉํ JSON ๋ฐ์ดํฐ๋ก ๋ก๊ทธ์ธ (์๋ฃ) JWT๋ฅผ ์ด์ฉํ ์ธ์ฆ (์๋ฃ) ๋๋ฉ์ธ, ํ
์ด๋ธ ์ค๊ณ, ์ํฐํฐ ์์ฑ (์๋ฃ) ๋๊ธ ์ญ์ ๋ก์ง ๊ตฌํ (์๋ฃ) ํ์๊ฐ์
+ ์ ๋ณด์์ ๋ฑ ํ์ ์๋น์ค ๊ตฌํ (์๋ฃ) ๊ฒ์ํ ์๋น์ค ๊ตฌํ (์งํ ์ค) ๋๊ธ ์๋น์ค ๊ตฌํ (1๋๊ธ -> *(๋ฌดํ) ๋๋๊ธ ๊ตฌ์กฐ) (์๋ฃ) ์์ธ ์ฒ๋ฆฌ (์๋ฃ) ์์ธ ๋ฉ์ธ์ง ๊ตญ์ ํ ์นดํ
๊ณ ๋ฆฌ๋ณ ๊ฒ์ํ ๋ถ๋ฅ ๊ฒ์๊ธ ํ์ด์ง (์๋ฃ) ๋์ ์ธ ๊ฒ์ ์กฐ๊ฑด์ ์ฌ์ฉํ ๊ฒ์ (์๋ฃ) ์ฌ์ฉ์ ๊ฐ ์ชฝ์ง ๊ธฐ๋ฅ ๋ฌดํ ์ชฝ์ง ์คํฌ๋กค ๊ฒ์๋ฌผ & ๋๊ธ์ ๋ํ ์๋ ์ชฝ์ง์ ๋ํ ์๋ ์ ์ํ ์ฌ์ฉ์ ๊ฐ ์ค์๊ฐ ์ฑํ
ํ์๊ฐ์
์ ..
์ ๋ฒ ํฌ์คํ
์ ์ด์ด์ ์ด๋ฒ์๋ QueryDSL์ ์ฌ์ฉํด์ ๊ฒ์ํ ๊ฒ์(์กฐ๊ฑด์ ๋ฐ๋ฅธ ๋์ ๊ฒ์), ํ์ด์ง ๊ธฐ๋ฅ์ ๊ตฌํํ์ฌ ๊ธฐ๋ณธ์ ์ธ ๊ฒ์ํ์ ์์ฑ์์ผ ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค! ์ํ๋ฆฌํฐ๋ฅผ ์ด์ฉํ JSON ๋ฐ์ดํฐ๋ก ๋ก๊ทธ์ธ (์๋ฃ) JWT๋ฅผ ์ด์ฉํ ์ธ์ฆ (์๋ฃ) ๋๋ฉ์ธ, ํ
์ด๋ธ ์ค๊ณ, ์ํฐํฐ ์์ฑ (์๋ฃ) ๋๊ธ ์ญ์ ๋ก์ง ๊ตฌํ (์๋ฃ) ํ์๊ฐ์
+ ์ ๋ณด์์ ๋ฑ ํ์ ์๋น์ค ๊ตฌํ (์๋ฃ) ๊ฒ์ํ ์๋น์ค ๊ตฌํ (์งํ ์ค) ๋๊ธ ์๋น์ค ๊ตฌํ (1๋๊ธ -> *(๋ฌดํ) ๋๋๊ธ ๊ตฌ์กฐ) (์๋ฃ) ์์ธ ์ฒ๋ฆฌ (์๋ฃ) ์์ธ ๋ฉ์ธ์ง ๊ตญ์ ํ ์นดํ
๊ณ ๋ฆฌ๋ณ ๊ฒ์ํ ๋ถ๋ฅ ๊ฒ์๊ธ ํ์ด์ง (์งํ ์ค) ๋์ ์ธ ๊ฒ์ ์กฐ๊ฑด์ ์ฌ์ฉํ ๊ฒ์ (์งํ ์ค) ์ฌ์ฉ์ ๊ฐ ์ชฝ์ง ๊ธฐ๋ฅ ๋ฌดํ ์ชฝ์ง ์คํฌ๋กค ๊ฒ์๋ฌผ & ๋๊ธ์ ๋ํ ์๋ ์ชฝ์ง์ ๋ํ ์๋ ์ ์ํ ์ฌ์ฉ์ ๊ฐ ..
์ค๋๋ง์ ๊ธ์ ์ฐ๋ ๊ฑฐ ๊ฐ๋ค์.. ๋ฆฌ๋
์ค๋ ๋ญ ์ด๊ฒ์ ๊ฒ ๊ณต๋ถํ๋ค๊ณ ๋ฐ๋ป์...ใ
ใ
์ค๋์ QueryDSL์ ์ฌ์ฉํด์ ๊ฒ์ํ ๊ฒ์(์กฐ๊ฑด์ ๋ฐ๋ฅธ ๋์ ๊ฒ์), ํ์ด์ง, ์กฐํ ๊ธฐ๋ฅ์ ๊ตฌํํ์ฌ ๊ธฐ๋ณธ์ ์ธ ๊ฒ์ํ์ ์์ฑ์์ผ ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค! ์ํ๋ฆฌํฐ๋ฅผ ์ด์ฉํ JSON ๋ฐ์ดํฐ๋ก ๋ก๊ทธ์ธ (์๋ฃ) JWT๋ฅผ ์ด์ฉํ ์ธ์ฆ (์๋ฃ) ๋๋ฉ์ธ, ํ
์ด๋ธ ์ค๊ณ, ์ํฐํฐ ์์ฑ (์๋ฃ) ๋๊ธ ์ญ์ ๋ก์ง ๊ตฌํ (์๋ฃ) ํ์๊ฐ์
+ ์ ๋ณด์์ ๋ฑ ํ์ ์๋น์ค ๊ตฌํ (์๋ฃ) ๊ฒ์ํ ์๋น์ค ๊ตฌํ (์งํ ์ค) ๋๊ธ ์๋น์ค ๊ตฌํ (1๋๊ธ -> *(๋ฌดํ) ๋๋๊ธ ๊ตฌ์กฐ) (์๋ฃ) ์์ธ ์ฒ๋ฆฌ (์๋ฃ) ์์ธ ๋ฉ์ธ์ง ๊ตญ์ ํ ์นดํ
๊ณ ๋ฆฌ๋ณ ๊ฒ์ํ ๋ถ๋ฅ ๊ฒ์๊ธ ํ์ด์ง (์งํ ์ค) ๋์ ์ธ ๊ฒ์ ์กฐ๊ฑด์ ์ฌ์ฉํ ๊ฒ์ (์งํ ์ค) ์ฌ์ฉ์ ๊ฐ ์ชฝ์ง ๊ธฐ๋ฅ ๋ฌดํ ์ชฝ์ง ์คํฌ๋กค..
ํ์ธํด๋ณด๋๊น, ์ ๋ฒ์ ๋๊ธ์ด๋ ๋๋๊ธ ์๋น์ค๋ ๋๋ถ๋ถ ๊ตฌํ์ ํด๋์์๋ค์...ใ
ใ
;; ์ด๋ฒ์๋ ์ ๋ฒ์ ๊ตฌํํ๋ ์ฝ๋๋ฅผ ์กฐ๊ธ๋ง ์์ ํ๊ณ , ๊ทธ์ ๋ฐ๋ผ ํ
์คํธ์ฝ๋๋ฅผ ์์ ํ๋๋ก ํ๊ฒ ์ต๋๋ค ์ํ๋ฆฌํฐ๋ฅผ ์ด์ฉํ JSON ๋ฐ์ดํฐ๋ก ๋ก๊ทธ์ธ (์๋ฃ) JWT๋ฅผ ์ด์ฉํ ์ธ์ฆ (์๋ฃ) ๋๋ฉ์ธ, ํ
์ด๋ธ ์ค๊ณ, ์ํฐํฐ ์์ฑ (์๋ฃ) ๋๊ธ ์ญ์ ๋ก์ง ๊ตฌํ (์๋ฃ) ํ์๊ฐ์
+ ์ ๋ณด์์ ๋ฑ ํ์ ์๋น์ค ๊ตฌํ (์๋ฃ) ๊ฒ์ํ ์๋น์ค ๊ตฌํ (์งํ ์ค) ๋๊ธ ์๋น์ค ๊ตฌํ (1๋๊ธ -> *(๋ฌดํ) ๋๋๊ธ ๊ตฌ์กฐ) (์งํ ์ค) ์์ธ ์ฒ๋ฆฌ (์๋ฃ) ์์ธ ๋ฉ์ธ์ง ๊ตญ์ ํ ์นดํ
๊ณ ๋ฆฌ๋ณ ๊ฒ์ํ ๋ถ๋ฅ ๊ฒ์๊ธ ํ์ด์ง ๋์ ์ธ ๊ฒ์ ์กฐ๊ฑด์ ์ฌ์ฉํ ๊ฒ์ ์ฌ์ฉ์ ๊ฐ ์ชฝ์ง ๊ธฐ๋ฅ ๋ฌดํ ์ชฝ์ง ์คํฌ๋กค ๊ฒ์๋ฌผ & ๋๊ธ์ ๋ํ ์๋ ์ชฝ์ง์ ๋ํ ์๋ ์ ์ํ ์ฌ์ฉ์ ๊ฐ ์ค์๊ฐ ..
์ด๋ฒ ๊ธ์์๋ Post์ ๋ํ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๊ณ , ํ์ผ์ ์ ์ฅํ๋ File Service๊น์ง ์์ฑํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ค๋์ ์ ๊ฐ ๋ถ์คํฐ์ท์ ๋ง์ ๋ชธ์ํ๊ฐ ์ข์ง ์์ ๊ด๊ณ๋ก ํ
์คํธ์ฝ๋๊น์ง ์์ฑํ ํ์ ์์ด์, ํ
์คํธ์ฝ๋๋ ์ดํ ํฌ์คํ
์์ ์์ฑํ๋๋ก ํ๊ฒ ์ต๋๋ค. ์ํ๋ฆฌํฐ๋ฅผ ์ด์ฉํ JSON ๋ฐ์ดํฐ๋ก ๋ก๊ทธ์ธ (์๋ฃ) JWT๋ฅผ ์ด์ฉํ ์ธ์ฆ (์๋ฃ) ๋๋ฉ์ธ, ํ
์ด๋ธ ์ค๊ณ, ์ํฐํฐ ์์ฑ (์๋ฃ) ๋๊ธ ์ญ์ ๋ก์ง ๊ตฌํ (์๋ฃ) ํ์๊ฐ์
+ ์ ๋ณด์์ ๋ฑ ํ์ ์๋น์ค ๊ตฌํ (์๋ฃ) ๊ฒ์ํ ์๋น์ค ๊ตฌํ (์งํ ์ค) ๋๊ธ ์๋น์ค ๊ตฌํ (1๋๊ธ -> *(๋ฌดํ) ๋๋๊ธ ๊ตฌ์กฐ) ์์ธ ์ฒ๋ฆฌ (์๋ฃ) ์์ธ ๋ฉ์ธ์ง ๊ตญ์ ํ ์นดํ
๊ณ ๋ฆฌ๋ณ ๊ฒ์ํ ๋ถ๋ฅ ๊ฒ์๊ธ ํ์ด์ง ๋์ ์ธ ๊ฒ์ ์กฐ๊ฑด์ ์ฌ์ฉํ ๊ฒ์ ์ฌ์ฉ์ ๊ฐ ์ชฝ์ง ๊ธฐ๋ฅ ๋ฌดํ ์ชฝ์ง ์คํฌ๋กค ๊ฒ์..
์ด๋ฒ ๊ธ์์๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์์ฑํ๊ธฐ ์ ์, ๊ธฐ์กด ์ฝ๋๋ฅผ ๋ฐ๊พธ๋ ์๊ฐ์ ๊ฐ๊ฒ ์ต๋๋ค. ์ง๊ธ๊น์ง ์์ธ๊ฐ ๋ฐ์ํด๋ ํญ์ ์ํ์ฝ๋๋ฅผ 200์ผ๋ก ๋ฐ์์์ผฐ์๋๋ฐ, ์ด๋ฅผ ๋ค์ ์์ธ ์ผ์ด์ค์ ๋ง๊ฒ ์ํ์ฝ๋๋ฅผ ๋ฐํํด๋ณด๋ ค ํฉ๋๋ค. ๊ทธ๋ ๊ฒ ์ค์ํ ๋ถ๋ถ์ ์๋๊ธฐ์ ๊ฑด๋๋ฐ์
๋ ๋ฉ๋๋ค. ๋จ์ง ์ดํ ์ ์ ์ฝ๋๊ฐ ์ผ๋ถ ๋ค๋ฅผ ์ ์์ผ๋, ๊ทธ๋ถ๋ถ๋ง ์ฃผ์ํด์ฃผ์๋ฉด ๋ฉ๋๋น. ์ํ๋ฆฌํฐ๋ฅผ ์ด์ฉํ JSON ๋ฐ์ดํฐ๋ก ๋ก๊ทธ์ธ (์๋ฃ) JWT๋ฅผ ์ด์ฉํ ์ธ์ฆ (์๋ฃ) ๋๋ฉ์ธ, ํ
์ด๋ธ ์ค๊ณ, ์ํฐํฐ ์์ฑ (์๋ฃ) ๋๊ธ ์ญ์ ๋ก์ง ๊ตฌํ (์๋ฃ) ํ์๊ฐ์
+ ์ ๋ณด์์ ๋ฑ ํ์ ์๋น์ค ๊ตฌํ (์๋ฃ) ๊ฒ์ํ ์๋น์ค ๊ตฌํ ๋๊ธ ์๋น์ค ๊ตฌํ (1๋๊ธ -> *(๋ฌดํ) ๋๋๊ธ ๊ตฌ์กฐ) ์์ธ ์ฒ๋ฆฌ (์งํ ์ค) ์์ธ ๋ฉ์ธ์ง ๊ตญ์ ํ ์นดํ
๊ณ ๋ฆฌ๋ณ ๊ฒ์ํ ๋ถ๋ฅ ๊ฒ์๊ธ ํ์ด์ง ๋์ ์ธ..