Today I Learn โ๐ผ
- ์ค๋ ํ๋ฃจ ๊ฐ์ฅ ์ธ์ ๊น์๋ ๋ฐฐ์์๋ ๋ญ๊ฐ ์์์ง?
- ๊ทธ ๋ฐฐ์๊น์ง ๋ค๊ฐ๊ฐ๋๋ฐ ์ด๋ค ์ด๋ ค์์ด ์์์ง?
- ๊ทธ ์ด๋ ค์์ ํด๊ฒฐํ๊ธฐ ์ํ ๋์ ์๋๋ค์ ๋ฌด์์ด ์์์ง?
- ๊ทธ ๊ณผ์ ์์ ๋๋ ๋ฌด์์ ๊นจ๋ฌ์๊ณ , ์ด๋ค ๊ฐ์ /์๊ฐ์ด ๋ค์์์ง?
- ์ด ์ํ์์ ์ดํ ๋ ๋์ ๋ด๊ฐ ๋๋ ค๋ฉด ๋ฌด์์ ๋ณด์ํ์ง?
์ฟ ํก ํ๋ก์ ํธ ์์ 1์ผ์ฐจ์ด๋ค.
MSA๋ก ์ค๊ณ๋ฅผ ํ๋ ค๋๋ฐ
์ด์ ์ ํ๋ ๋ฐฐ๋ฌ๋ฏผ์กฑ ํ๋ก์ ํธ์์ ๋ฉํ ๋์ด ํด์ฃผ์ ์ฝ๋ฉํธ๋ก ์ธํด
์ค๊ณ์์ ๊ณ ๋ฏผ ์ค์ด๋ค.
Gateway์๋ฒ์ Auth ์๋ฒ์ ์ญํ
1. **์ญํ ๋ถ๋ฆฌ**: Gateway๋ ์ธ์ฆ๊ณผ ๊ด๋ จ๋ ๋ก์ง์ ๋ชจ๋ ์ ๊ฑฐํ๊ณ , ์ธ์ฆ์ ์ค์ง Auth ์๋ฒ๋ก์ API ํธ์ถ์ ํตํด ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํจ์ผ๋ก์จ Gateway๋ ํธ๋ํฝ ๊ด๋ฆฌ์ ์์ฒญ ๋ถ๋ฐฐ ์ญํ ์ ์ง์คํ๊ณ , ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ๋ Auth ์๋ฒ์์ ์ ๋ดํ๋๋ก ๊ตฌ์กฐ๋ฅผ ๋ช ํํ ํ ์ ์์ต๋๋ค.
2. **Security Filter ํ์ฉ**: ์ธ์ฆ ์์ฒญ์ Auth ์๋ฒ๋ก ์ ๋ฌํ๋ ๋ก์ง์ Gateway์ Security Filter์์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ ์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด Gateway๋ ๋จ์ํ ์์ฒญ์ ํํฐ๋งํ๊ณ ์ธ์ฆ ๋ก์ง์ Auth ์๋ฒ๋ก ์์ํจ์ผ๋ก์จ ์ญํ ์ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค.
3. **ํต์ ๋น์ฉ ์ต์ ํ**: ๋ก์ปฌ์์ ์ํ๋๋ ์ธ์ฆ์ ์ธ๋ถ ํต์ (Auth ์๋ฒ)์ผ๋ก ์ ํํ๋ ๊ฒ์ ํต์ ๋น์ฉ์ด ์ฆ๊ฐํ ์ ์๋ ๋ถ๋ด์ด ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ Redis๋ ๋ก์ปฌ ์บ์๋ฅผ ํ์ฉํด ํต์ ๋น์ฉ์ ์ค์ด๊ณ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ธ์ฆ๋ ํ ํฐ ์ ๋ณด๋ฅผ Redis์ ์ ์ฅํด ๋ฐ๋ณต์ ์ธ ์ธ์ฆ ์์ฒญ ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ํฉ๋๋ค.
4. **์บ์ ์ฌ์ฉ ๊ธฐ์ค ๋ช ํํ**: Redis์ ๋ก์ปฌ ์บ์๋ฅผ ์ธ์ ์ฌ์ฉํ ์ง์ ๋ํ ๋ช ํํ ๊ธฐ์ค์ ์ธ์ฐ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก Redis๋ ์ฌ๋ฌ ์ธ์คํด์ค ๊ฐ์ ์ผ๊ด๋ ์บ์๊ฐ ํ์ํ ๊ฒฝ์ฐ๋, ์ธ์ ๊ด๋ฆฌ, ์ ์ฒด ๋ก๊ทธ์์ ๋ฑ์ ๊ธฐ๋ฅ์ ์ง์ํ ๋ ์ ํฉํฉ๋๋ค. ๋ฐ๋ฉด, ๋ก์ปฌ ์บ์๋ ์ธ์คํด์ค ๋ด๋ถ์์๋ง ์ ํจํ ์งง์ ์ฃผ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ ๋ ํจ๊ณผ์ ์ ๋๋ค. ๊ฐ ์บ์ ์ฌ์ฉ์ ์ฅ๋จ์ ์ ๊ณ ๋ คํ์ฌ ์ํฉ์ ๋ง๊ฒ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
==> ๊ฒ์ดํธ์จ์ด๋ ๊ทธ๋ผ ๋ผ์ฐํ ๋ง ํ๋ค
์ธ์ฆ, ์ธ๊ฐ, jwt ์์ฑ, jwt ๊ฒ์ฆ๋ ์ธ์ฆ์๋ฒ๊ฐ ํ๋ค๊ณ ์น์.
์ด์ฉ๋ user db๋ ํธ์ถํด์ผํจ.
๊ทธ๋ฌ๋ฉด ์ ์ ๊ด๋ จ CRUD๋ ์ธ์ฆ์๋ฒ์์ ๋ค ๋ค๋ฃจ๋๊ฒ ๋ง๋๊ฑธ๋ก ํ์ฌ ์์ ๊ฒฐ์ .
์๋ก ๋ค๋ฅธ ์๋ฒ๊ฐ ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ์ง ์๋๋ค.
Auth ์๋ฒ์ Mono ์๋ฒ๊ฐ ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ ์ฌ๋ฌ ์ ์ฌ์ ์ธ ์ํ์ด ์์ ์ ์์ต๋๋ค.
1. **๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ ์๋ฆผ ๋ถ์กฑ**: Mono ์๋ฒ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์ ์ด๋ ์คํค๋ง ๋ณ๊ฒฝ์ด ์์ ๊ฒฝ์ฐ, Auth ์๋ฒ๋ ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ์ฆ์ ์ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ๋ฐ์ดํฐ ๋ถ์ผ์น๋ ์์์น ๋ชปํ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฉฐ, Auth ์๋ฒ๊ฐ ์ ์ ํ ๋์ํ์ง ๋ชปํด ์๋น์ค ์ค๋จ์ด๋ ๋ณด์์์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ํ์ด ์์ต๋๋ค.
2. **๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ํ ๊ด๋ฆฌ ์ด๋ ค์**: ๋ ์๋ฒ๊ฐ ๋์ผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด, ์ปค๋ฅ์ ํ ๊ด๋ฆฌ๊ฐ ๋งค์ฐ ๋ณต์กํด์ง๋๋ค. ํนํ ํ ์๋ฒ(Mono ์๋ฒ)์ ๋ ํ๋ฆฌ์นด๊ฐ ๊ฐ์๊ธฐ ์ฆ๊ฐํ๋ฉด, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ํ์ด ํ๊ณ์ ๋๋ฌํ ์ ์๊ณ , ์ด๋ก ์ธํด ๋ค๋ฅธ ์๋ฒ(Auth ์๋ฒ)์ ์ฑ๋ฅ์๋ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ์ด ๋ถ์กฑํด์ง๊ณ , ์ ์ฒด ์์คํ ์ฑ๋ฅ์ด ์ ํ๋๊ฑฐ๋ ์๋น์ค ์ฅ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
3. **์ฑ๋ฅ ์ ํ์ ์ค์ผ์ผ๋ง ๋ฌธ์ **: Auth ์๋ฒ์ Mono ์๋ฒ๊ฐ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ณต์ ํ๋ฉด, ํ๋์ ์๋ฒ์์ ๋ฐ์ํ๋ ๊ณผ๋ถํ๊ฐ ๋ค๋ฅธ ์๋ฒ์ ์ฑ๋ฅ์๋ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, Mono ์๋ฒ์ ํธ๋ํฝ์ด ๊ธ์ฆํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๋ฉด, Auth ์๋ฒ์ ์ธ์ฆ ์์ฒญ ์ฒ๋ฆฌ ์๋๊ฐ ๋๋ ค์ง๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ด ์ ํ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ตฌ์กฐ์์๋ ๊ฐ ์๋ฒ์ ๋ ๋ฆฝ์ ์ธ ์ค์ผ์ผ๋ง์ด ์ด๋ ค์, ์ ์ฒด ์์คํ ์ ํ์ฅ์ฑ๊ณผ ์ฑ๋ฅ ๊ด๋ฆฌ๊ฐ ๋ณต์กํด์ง๋๋ค.
4. **๋ณด์ ์ทจ์ฝ์ ์ฆ๊ฐ**: ๋์ผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ณต์ ํ ๊ฒฝ์ฐ, ๋ณด์์ ์ธ ์ทจ์ฝ์ ๋ ์ฆ๊ฐํ ์ ์์ต๋๋ค. Mono ์๋ฒ์ ์ทจ์ฝ์ ์ด ์ ์ฉ๋๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์๋ ์ ์๊ณ , ์ด๋ ๊ณง Auth ์๋ฒ์ ๋ณด์์๋ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ํนํ ์ธ์ฆ ๊ด๋ จ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๊ฐ Mono ์๋ฒ์ ๊ณต์ ๋๋ ๊ตฌ์กฐ๋ ๋ณด์ ์ฌ๊ณ ์ ํผํด ๋ฒ์๋ฅผ ๋์ฑ ํ๋ํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ์ ๊ทผ์ ์ ํํ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ถ๋ฆฌํ์ฌ ๋ฏผ๊ฐ ์ ๋ณด๋ฅผ ๋ณดํธํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค.
์ด๋ฌํ ์ํ ์์๋ค์ ๊ณ ๋ คํ ๋, ๊ฐ ์๋ฒ๊ฐ ๋ ๋ฆฝ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, API๋ฅผ ํตํด ๊ฐ์ ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๋๋ก ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ๋ ๊ฒ์ด ๋ฐ๋์งํฉ๋๋ค. ์ด๋ฅผ ํตํด ์์คํ ์ ์์ ์ฑ๊ณผ ๋ณด์์ ๋์ผ ์ ์์ต๋๋ค.
์๋ ๊ทธ๋ฌ๋ฉด
๋ค๋ฅธ ์๋ฒ๋ก ์์ฒญ ๋์ง๋
์ ์ด์ ๊ถํ๋ณ๋ก ํ ์์๋์ง ์๋์ง ํ๋๊ฑด ์ด๋์ ํด์ผํ๋๊ฑฐ์ง?
๊ฒ์ดํธ์จ์ด? ์ธ์ฆ์๋ฒ? ๊ฐ์์ ์๋ฒ?
์๋ ๊ทธ๋ผ jwt ํ ํฐ์ ๊ฐ ์๋ฒ๋ณ๋ก ๊ฒ์ฆํด์ผํ๋ค๋ ์๋ฆฌ์ธ๋ฐ ์ด๊ฒ ๋ง๋?????????????
๋ด์ผ ํํฐ๋ ์ฐพ์๋ต์ผํ ๋ฏ
'Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
docker-compose.yml ๋คํธ์ํฌ ๋ง๋ ํ ์คํ ๋ฐฉ๋ฒ (0) | 2024.09.13 |
---|---|
๋ฉํฐ๋ชจ๋ ํ๋ก์ ํธ ์ค์ (0) | 2024.09.12 |
ํ๋ก์ ํธ ๋ฐํ (0) | 2024.09.03 |
ํ๋ก์ ํธ ์์ (0) | 2024.08.23 |
API ์ค๊ณ ์์น (0) | 2024.08.20 |