25-02-20
๐ Daily Reportโ
๐ ํ๋ก์ ํธ ์ํฉโ
์ด์ ๋จ์ ๊ธฐ๊ฐ์ด ์ผ๋ง ์๋ค. ํ๋ ์ ํ ์ด์ ๋ ์ต๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ๋๋ ค์ผ ํ๋๋ฐ ๊ธฐํ์ CRUD๊ฐ ๋ค ์์ด์(ํนํ DELETE) ์ด๊ฒ ์ฌ์ฌ ํญ๋ชฉ ์ ๋ฌธ์ ๊ฐ ๋์ง ์์์ง ๊ฑฑ์ ์ด๋ค.
๋ชจ๋ํฐ๋ง์ด๋ ํผํฌ๋จผ์ค ๋ถ๋ถ๋ค์ ๋ด๊ฐ ํ๊ณ ์ถ์ ๋ถ๋ถ์ธ๋ฐ ๋ญ๋๊น, 'ํ๊ณ ์ถ๋ค' ๋ ๋ฒจ์ ๋์ด์ฐ๋ค.
'ํ๋ค', '์ํ๋ ๋ฏธ๋๋ ์๋ค'๋ผ๋ ์๊ฐ์ด ๋ ์ง๋ฐฐ์ ์ด๋ค.
์์งํ ์ง์ค์ ์ํด ์ง์์ ์๋ฌด์๋ ์ํธ์์ฉ ์์ด ์์ ํ๊ณ ์ถ๋ค. (์ํธ์์ฉ์ด ์์ผ๋ฉด ํ์ฌ ์์ค์ ๋ชฐ์ ์ด ์ข ํํธ๋ฌ์ง๋ค.)
๊ทผ๋ฐ ๋ฐ์์ ์ด๋ฌํ ๋ชฐ์ ์ ์ ์งํ๋๋ก ์ฐ์ตํ๋ ๋น์ฅ์ ํ๊ฒฝ์ด ์ข์ ๊ฒฝํ์ด๋ผ๊ณ ์๊ฐ์ ํ๋ค.
๐ ER Diagramโ
๋ค์์ ๋๋ฉ์ธ์ drop ํ๋ค.
- ๊ฒฐ์ : ์ํ, ์ฅ๋ฐ๊ตฌ๋, ์ฃผ๋ฌธ, ๊ฒฐ์
- ์ฑํ : ์ฑ๋ด, ์ ๊ณ
- ๊ถํ: ํ์ ์คํ ์ด ์ด์์(MANAGER)
์๋ํ๋ฉด ์ด์ ํฌํธํด๋ฆฌ์ค๋ค์ PR์ ํตํด ํด๋น ๋๋ฉ์ธ์ ์ด๋ฏธ ํ ์ ์๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค ์ ์์ ๊ฒ ๊ฐ์๋ค.
๊ถํ ๋ถ๋ถ์ ์์ด์ ์ด์์๊ฐ ๋ ๋ผ๊ฐ๋ฏ๋ก ํ๋ซํผ ๊ด๋ฆฌ์๊ฐ ๋ฌธ์ ์์ ํ์ ์คํ ์ด ์ ๋ณด๋ฅผ ์ง์ ๋ฑ๋กํด์ฃผ๋ ๊ฒ์ผ๋ก ๊ธฐํ ๋ณ๊ฒฝ.
์ด์์๊ฐ ๋ ๋ผ๊ฐ๋ฉด์ ํ์๊ณ์ <-> ํ์ ์คํ ์ด ์ฌ์ด์ M:N ๊ด๊ณ ์ค๊ณํ๋ ํ ์ด๋ธ๋ ใ ใ ํ๋๋ฐ, ์ค๊ณ ์์ฒด๋ฅผ ๋ฒ๋ฆฌ๊ธด ์ซ์ด์ ์ด๋ฅผ ํ์ ์คํ ์ด <-> ์นดํ ๊ณ ๋ฆฌ ๊ด๊ณ์ ์ ์ฉํ๋ค.
๋ถ๋์ด์ฉ์ ์ ์ฌ๋ ์๋ ์ฑํ ์์์ ๋ถ๋์ด์ฉ์๋ฅผ ์๋ฏธํ๋๋ฐ, ํน์ ์ฌ์ ์๊ฐ ์๊ธฐ๋ฉด ์์ฝ์์์ ๋น์ ์ ํธ๋ํฝ ํ์ง ๋ฐ ์ ์ฌ๋ก ์๊ทธ๋ ์ด๋ ํ ์ ์์ ๊ฒ ๊ฐ์์ ํ ์ด๋ธ์ ๋จ๊ฒจ๋๋ค.
๋ ๊ทธ๋์๋๋ฐ, ์ ๋ํ automation + toleranceํ ์์คํ ์ ์ฌ๋ฏธ๊ฐ ๋๊ปด์ง๋ค.
๊ทธ๋งํผ ์ ๊ตํ๊ฒ ๋ง๋ค๊ณ ์ถ์๋ฐ ์ด๊ฒ๊น์ง๋ ์์ฌ ๊ฐ์... ๊ธฐ๊ฐ์ด ๋๋ฌด............ ์์ด๋ ๋๋ฌด ์์........
๊ฒฐ์ ๋ PG ์ข ๋ถ์ฌ๋ณด๊ณ ์ถ์๋๋ฐ ์์ฉ์ง๋ง ๋ค์์ ํ๋ฉด ๋์ง. ์ ์ ์๋ ~
๐ ํ์๊ฐ์ /๋ก๊ทธ์ธโ
๊ธฐ์กด ์ํคํ ์ณ์์ ํฐ ๋ณ๋์ฌํญ์ ์์ ๊ฒ ๊ฐ๋ค. auth๋ ๋ณ๋์ micro service๋ก ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธด ํ๋ฐ, ๊ธฐ๊ฐ ๊ณ ๋ คํ๋ฉด ์ง๊ธ ๊ทธ๊ฑฐ ๋ถ๋ฆฌํ ๋๊ฐ ์๋๋ค.
๋ถ๋ฆฌํ๋ฉด ํ ์๋ก service ๊ฐ์ ํต์ ์์ ์ค๋ ์ค๋ฒํค๋๋, cross-cutting concerns ๋ถ๋ถ์ ๊ณ ๋ คํ๊ฒ ๋ผ์, ๊ฑ ์ด ๊ธฐ๊ฐ์ ์ ๊ทธ๋ฌ๋ ๊ฒ์ด ๋ง๋ค๊ณ ์๊ฐํ๋ค.
MSA ์ํคํ ์ณ์ ๋น์์ฑ์ ๋ฉ๋์ํค๋ ค๋ฉด ํด๋น ๋ถ๋ถ์ ๋ํ ๊ณ ๋ฏผ์ด ๋ง์์ผ ํ๋๋ฐ, ์ง๊ธ ๊ตฌํ์ด 0์์๋ผ ์ด์ฉ ์๊ฐ ์์.
๊ทธ๋์ ๊ธฐ์กด์ ๊ณํ์, PT๋ ๊ธฐ๊ฐ ์์ ํ๊ณ๋ฅผ ๋ค๋ฉฐ ์ด ๋ถ๋ถ์ ์ ์ธํ๋ ค๊ณ ํ๋ค. ๋๊ฐ ๋ด๋ MSA๋ผ๋๋ฐ ์๋น์ค ๋ถ๋ฆฌ ๋ฑ 2๊ฐ ํด๋์ผ๋ฉด '???' ์ถ๊ธฐ ๋๋ฌธ์ ใ ใ
์ฐธ๊ณ ๋ ํผ๋ฐ์คโ
https://pixx.tistory.com/287 https://pixx.tistory.com/275 -> ์๊ฑฐ ๋ด์ฉ ์ข์. ๋ฐฅ๋จน์ผ๋ฉด์ ์ฌ๋ฌ๋ฒ ๋ณด์
์ด๋ฅผ ํตํด flow๋ฅผ ์ ๋ฆฌํ์๋ฉด,
- G/W๋ filter๋ฅผ ๊ตฌํํด์ ๋ผ์๋ฃ์ผ๋ฉด ์ด๊ฑธ๋ก JWT validation์ ์ํ.
- sign up, sign in, sign out ๊ด๋ จ ๋น์ฆ๋์ค ๋ก์ง์ controller, service ๊ตฌํํด์ common service๋ก ใฑใฑ
- ๊ทธ๋ฆฌ๊ณ ๊ฒธ์ฌ๊ฒธ์ฌ G/W์ routing ๋ฃ์ด์ผ ํ๋๋ฐ ์ด์ ๋ถ๋ฆฌํ๊ณ ์ถ์ง๋ง ๋ฐ์๋ ํํํจ. (๋ฐ๋น ์ ํ๋ ํํ์ ๋ ๊ธฐ๋ถ์ด ๋ณ๋ก๋ค.)
๐ JwtUtil, ์ด๋๋ก ๊ฐ์ผํ๋โ
validation ๋ถ๋ถ์์ DB๋ฅผ ํ ๋ฒ ๊ฐ๋ค์์ผ ํ๋๋ฐ, G/W์์ ๊ทธ๋ด ์ ์๊ณ
common service ์ชฝ์ ์ฌ์ฉ์ ์กฐํ api๋ฅผ ๊ตฌํํ๊ณ OpenFeign ์จ์ผ ํ ๋ฏ! ... ์ด๋ผ๊ณ ์๊ฐํ์ผ๋?
๊ทธ๋ผ JwtUtil
์ด์ฉ๊ฑฐ์. G/W๋ common service์ ์์๋๋ ๊ฐ์ ์ฌ์ฉ์ ์ ๋ณด ํผ์ค๋ ๋ฐฉ์์ด ๋ค๋ฅด์๋ ? (๋ด๋ถ API ํธ์ถ vs. JPA ์ง๋นต ์กฐํ)
ํด๊ฒฐ๋ฐฉ์ ํ๋ณดโ
- ๊ฐ๊ฐ์ ๋ง๋๋ก
JwtUtil
์ ๋ณต๋ถํด์ ์์ฑํ๊ธฐ -> ์ ์ด๊ฑด ์ข; - common service์
JwtUtil
๋๊ณ G/W์๋ ์ ํธ๋ฐ์ ์์ ใ ใ ๊ทธ๋ฅ ๋ชจ๋ JWT ๊ด๋ จ์ common service์ ๋งก๊ธฐ๊ธฐ
...๋น์ฐํ 2์์ ์ ํํ๋ค.
๐ AT ์ฌ๋ฐ๊ธ์ ์ต์ ์ฑ ์?โ
ํ์ฌ์ ๊ธฐํ์ผ๋ก๋, AT์ RT๋ ๋ชจ๋ ์ฟ ํค์ ๋ค์ด๊ฐ๋ค.
๊ทธ๋ผ ์ง์ ํ path์ ๋ํด์ ๋ ๋ค ์๋์ผ๋ก ์์์ง๊ณ , ์๋ฒ๋ ํด๋น ์ ๋ณด๋ฅผ ์๋ค๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์, ์ด์ฉ์๊ฐ ํ๋ซํผ์ ์ผ๋๊ณ ์ ๊น ์ ์ฌ ๋จน๊ณ ์๋ค๊ณ ๊ฐ์ ํ์.
๋ค์ ๋์์์ ๋ AT๋ ๋ง๋ฃ๋์์ ๊ฒ์ด๋ค. ์ด ์ํ๋ก ์๋ฒ์ request๋ฅผ ๋ณด๋ด๋ฉด, ์๋ฒ๊ฐ ๊ฒ์ฆ๋จ์์ ๋ง๋ฃ๋ ํ ํฐ์์ ์ธ์งํ๋ค.
๊ทธ๋. ๊ทผ๋ฐ ๊ทธ ๋ค์์? ์ถ๊ฐ๋ก ์๊ฐ์ ๋ ๋์ดํด๋ณด์.
- ์๋ฒ: 401 ๋์ง -> ํด๋ผ: ์ฌ๋ฐ๊ธ api ํธ์ถ -> ์๋ฒ: AT ์ฌ๋ฐ๊ธํ๊ณ ์ฟ ํค ์ธํ -> ํด๋ผ: AT ์ฟ ํค ๊ฐฑ์ ๋จ -> ํด๋ผ: ๋น์ฆ๋์ค api ์ฌํธ์ถ
- ์๋ฒ: Redis์์ RT ์กฐํ -> ์๋ฒ: RT ์ ํจํ๋ฉด AT ์ฌ๋ฐ๊ธํ๊ณ ์ฟ ํค ์ธํ + ๋น์ฆ๋์ค ๋ก์ง์ ๋ํ ๊ฒฐ๊ณผ ๋ฐํ -> ํด๋ผ: AT ์ฟ ํค ๊ฐฑ์ ๋จ
1๊ณผ 2์ค์์ ์ด๋ ๋ฐฉ์์ผ๋ก ํ ์ง ๋ด์ฌ ๊ณ ๋ฏผ์ด ์์๋ค. ๊ทผ๋ฐ ๋ฉํ ๋ถ๊ป์ ๋ณดํต์ ์๋ฒ๊ฐ ๋ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก ๊ฐ๋ค๊ณ ํ์ ์ 1์์ ์ ํํ๋ค.
๋ฐ๋ผ์ JWT flow๋ ํ๋จ๊ณผ ๋น์ทํ๊ฒ ๋ ๊ฒ ๊ฐ๋ค.