๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ง€์‹œํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์ง„์ž…์  ์—ญํ• ์„ ํ•˜๋Š” ์ตœ์‹  ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜์˜ ํ•„์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ๋งฅ๋ฝ์—์„œ ์ด ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„ ์‰ฌ์šด ํ†ตํ•ฉ, ๊ฐ•๋ ฅํ•œ ๋ณด์•ˆ, ์œ ์—ฐํ•œ ํ™•์žฅ์„ฑ ๋ฐ ํšจ์œจ์ ์ธ ํ†ต์‹ ์„ ์ด‰์ง„ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…, ์•ก์„ธ์Šค ๋ณด์•ˆ, ๋ณต์›๋ ฅ ๋ณด์žฅ์„ ํ†ตํ•ด ๋ณต์žกํ•œ ์„œ๋น„์Šค ๋ฉ”์‹œ ๊ด€๋ฆฌ ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ด€๋ จ๋œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„์˜ ์š”์ฒญ ๋ฐ ์ƒํ˜ธ ์ž‘์šฉ์— ๋Œ€ํ•œ ์ค‘์•™ ์ง‘์ค‘์‹ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋ถ„์„์„ ์ง€์›ํ•˜๊ณ , ์„œ๋น„์Šค ์ƒํƒœ ๋ฐ ์„ฑ๋Šฅ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ์ „์ฒด ์‹œ์Šคํ…œ์ด ๋‚ด๊ฒฐํ•จ์„ฑ๊ณผ ๋ณต์›๋ ฅ์„ ์œ ์ง€ํ•˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฒŒ์ดํŠธ์›จ์ด์˜ ํ•ต์‹ฌ์—์„œ ์ฑ…์ž„์€ ๋ผ์šฐํŒ…, ์ธ์ฆ, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋ฐ ๋ณต์›๋ ฅ์ด๋ผ๋Š” ๋„ค ๊ฐ€์ง€ ์ฃผ์š” ์š”์†Œ๋กœ ์ถ”์ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ธก๋ฉด์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ผ์šฐํŒ…: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์—ฌ๋Ÿฌ ํ™˜๊ฒฝ๊ณผ ๋„คํŠธ์›Œํฌ์— ๋ฐฐํฌ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฒŒ์ดํŠธ์›จ์ด๋Š” API ๊ฒŒ์ดํŠธ์›จ์ด ์—ญํ• ์„ ํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค์˜ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค์—์„œ ํ†ต์‹ ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋Œ€๊ธฐ ์‹œ๊ฐ„, ์˜ค๋ฅ˜์œจ ๋˜๋Š” ๊ธฐํƒ€ ์‚ฌ์šฉ์ž ์ง€์ • ๊ธฐ์ค€๊ณผ ๊ฐ™์€ ์š”์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์ ์˜ ๋ผ์šฐํŒ…์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.

์ธ์ฆ: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์•ˆ์ „ํ•˜๊ฒŒ ํ†ต์‹ ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์ค‘์•™ ์ง‘์ค‘์‹ ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€ํ™”๋œ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์„ ์ œ๊ณตํ•˜์—ฌ JWT, OAuth2 ๋˜๋Š” OpenID Connect ํ† ํฐ ํ˜•์‹์œผ๋กœ ๋ณด์•ˆ ์•ก์„ธ์Šค๋ฅผ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค.

๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ: ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์—ฌ๋Ÿฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค์— ๊ฑธ์ณ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ์–ด ์ˆ˜์š”๊ฐ€ ๊ธ‰์ฆํ•˜๋Š” ๋™์•ˆ ์‹œ์Šคํ…œ์ด ์‘๋‹ต์„ฑ๊ณผ ๋‚ด๊ฒฐํ•จ์„ฑ์„ ์œ ์ง€ํ•˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋กœ๋“œ ๋ถ„์‚ฐ์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ผ์šด๋“œ ๋กœ๋นˆ, ์ตœ์†Œ ์—ฐ๊ฒฐ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๊ฐ™์€ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ณต์›๋ ฅ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ณ ๊ฐ€์šฉ์„ฑ, ๋‚ด๊ฒฐํ•จ์„ฑ ๋ฐ ์ค‘๋ณต์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฒŒ์ดํŠธ์›จ์ด์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์ƒํƒœ ํ™•์ธ, ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ ๋ฐ ์žฌ์‹œ๋„๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์˜ค๋ฅ˜๋‚˜ ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ์‹œ์Šคํ…œ ์ „์ฒด์— ์ „ํŒŒ๋˜์ง€ ์•Š๋„๋ก ํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ „๋ฐ˜์ ์ธ ์•ˆ์ •์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฒŒ์ดํŠธ์›จ์ด์˜ ์ฃผ์š” ์ฑ…์ž„์„ ์ดํ•ดํ–ˆ์œผ๋ฏ€๋กœ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์—์ฝ”์‹œ์Šคํ…œ์—์„œ ์ด ๋””์ž์ธ ํŒจํ„ด์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ๋”ฐ๋ฅธ ์ค‘์š”ํ•œ ์ด์ ์„ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

1. ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„ ๋„คํŠธ์›Œํ‚น์˜ ๋ณต์žก์„ฑ์„ ์ˆ˜๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์„œ๋น„์Šค ํ†ตํ•ฉ์ด ๋‹จ์ˆœํ™”๋ฉ๋‹ˆ๋‹ค.

2. ํ•˜๋‚˜์˜ ์ค‘์•™ ์ง€์ ์—์„œ ์ธ์ฆ๊ณผ ์Šน์ธ์„ ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋ฉ๋‹ˆ๋‹ค.

3. ์ค‘์•™ ์ง‘์ค‘์‹ ๋กœ๊น…, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋ถ„์„์„ ํ†ตํ•ด ์ „์ฒด ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์„ ๋ณด๋‹ค ์‰ฝ๊ฒŒ โ€‹โ€‹๊ฐ๋…ํ•˜๊ณ  ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์„ฑ ์š”์†Œ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•˜๋ฉด์„œ ์ƒˆ๋กœ์šด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋“ฑ ์›ํ™œํ•œ ํ™•์žฅ์„ฑ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•˜๊ณ  ํ”Œ๋žซํผ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ, ๋ณด์•ˆ ๋ฐ ๊ธฐํƒ€ ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ๊ฐ€ ๊ฐœ์„ ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด AppMasterno-code ํ”Œ๋žซํผ์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ Microservices Gateway๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ณ ๊ฐ์ด ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ํšจ์œจ์ ์ธ ํ†ต์‹  ๋ฐ ํ˜‘์—…์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์›ํ™œํ•œ ํ†ตํ•ฉ์„ ํ†ตํ•ด ์ด ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์˜ ๊ณผ์ œ์™€ ๋ณต์žก์„ฑ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•˜์ง€ ์•Š๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ์ƒ์„ฑ, ๊ด€๋ฆฌ ๋ฐ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ์ „๋ฐ˜์ ์ธ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ตฌํ˜„ํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๋Š” ๋Š์ž„์—†์ด ์ง„ํ™”ํ•˜๋Š” ๊ธฐ์ˆ  ํ™˜๊ฒฝ์˜ ์ฆ๊ฐ€ํ•˜๋Š” ์š”๊ตฌ๋ฅผ ์‰ฝ๊ฒŒ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ๋Š” ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ฐ•๋ ฅํ•˜๋ฉฐ ๋™์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.