๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Today I Learned

์ฟ ํŒก ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค๊ณ„ํ•˜๋ฉด์„œ..

 

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 ํ† ํฐ์„ ๊ฐ ์„œ๋ฒ„๋ณ„๋กœ ๊ฒ€์ฆํ•ด์•ผํ•œ๋‹ค๋Š” ์†Œ๋ฆฌ์ธ๋ฐ ์ด๊ฒŒ ๋งž๋‚˜?????????????


๋‚ด์ผ ํŠœํ„ฐ๋‹˜ ์ฐพ์•„๋ตˆ์•ผํ• ๋“ฏ