1~2์ฃผ์ฐจ Troble & Troubleshooting

sun1ยท2023๋…„ 10์›” 23์ผ
0

ํ”„๋กœ์ ํŠธ

๋ชฉ๋ก ๋ณด๊ธฐ
5/7
post-thumbnail

๐Ÿš€ ๊ธฐํš & ๊ฐœ๋ฐœ ๋‹จ๊ณ„


๐Ÿ“Œ์‚ผ์„ฑ ํ—ฌ์Šค ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์–ด๋–ป๊ฒŒ ๊ฑฐ์šธ์— ๋ณด์—ฌ์ค˜์•ผ ํ•˜๋‚˜?

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

โœ… ์ฆ‰, ๋ฆฌ์•กํŠธ -> urlํ˜ธ์ถœ(ํ—ฌ์ŠคํŽ˜์ด์ง€ ๋„๋‹ฌ url) -> ์„œ๋ฒ„ ์›น์†Œ์ผ“์œผ๋กœ ๋ชจ๋ฐ”์ผ์— ์‹ ํ˜ธ -> ์•ˆ๋“œ๋กœ์ด๋“œ ํ—ฌ์Šค์ปค๋„ฅํŠธ ๊ฐ’ ํ˜ธ์ถœ -> urlํ˜ธ์ถœ(ํ—ฌ์Šค๋ฐ์ดํ„ฐ๊ฐ’ ์ „๋‹ฌ url) -> ์„œ๋ฒ„์—์„œ ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์›น์†Œ์ผ“์œผ๋กœ ๋ฆฌ์•กํŠธ์—๋‹ค๊ฐ€ ํ—ฌ์Šค๋ฐ์ดํ„ฐ๊ฐ’ ์ „๋‹ฌ -> ๋ฆฌ์•กํŠธ์—์„œ ์ตœ์ข…์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ’์„ ๋ฐ›์•˜์„ ๊ฒฝ์šฐ์—๋งŒ ํ™”๋ฉด์— ๋›ฐ์šฐ๊ธฐ(๊ทธ์ „์—๋Š” ๋กœ๋”ฉํ™”๋ฉด)

์ด๋•Œ, ๋ชจ๋ฐ”์ผ์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ or ํฌ๊ทธ๋ผ์šด๋“œ ํ˜•ํƒœ๋กœ ๋™์ž‘ํ•˜๊ณ  ์žˆ์–ด์•ผ ์•ฑ์ด ์•ˆ ์ผœ์ ธ์žˆ์–ด๋„ ํ—ฌ์Šค์ปค๋„ฅํŠธ์™€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ, ๋‹ค๋ฅธ ๊ธฐ๋Šฅ ์—†๋Š” ์•ฑ์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ˜•ํƒœ๋กœ ๋ฐฐํฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ๊ฒƒ์œผ๋กœ ์•Œ๊ณ  ์žˆ๋‹ค.
์ผ๋‹จ ํ˜•ํƒœ๋Š” ์ด๋ ‡๊ฒŒ ์žก์•˜์ง€๋งŒ ๊ตฌํ˜„์ด ๋ถˆ๊ฐ€๋Šฅํ•  ๊ฒฝ์šฐ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€ ๊ณ ๋ คํ•˜์ž!


๐Ÿ“Œ ๊ธฐ๋ณธ ์„œ๋ฒ„๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ๋กœ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ฐ AI๋Š” ํŒŒ์ด์ฌ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ์–ด๋–ค์‹์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์—์„œ ํ˜ธ์ถœํ•  ๊ฒƒ์ธ๊ฐ€?

๐Ÿ‘‰ MSA์™€ k8s๋ฅผ ๋„์ž…ํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด์— ์„ค์น˜๋œ react ํด๋ผ์ด์–ธํŠธ์—์„œ ์—ฌ๋Ÿฌ ํ˜•ํƒœ์˜ ์„œ๋ฒ„์— ํ˜ธ์ถœ์„ ํ•  ๋•Œ, ์ด๋ฅผ ์–ด๋–ค์‹์œผ๋กœ ํŒ๋‹จํ•  ์ง€ ๊ณ ๋ฏผ์ด ๋˜์—ˆ๋‹ค.

๐Ÿ‘‰ ์ด ๊ณผ์ •์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ง์ ‘ ์—ฌ๋Ÿฌ ํ˜•ํƒœ์˜ ์„œ๋ฒ„์™€ ์†Œํ†ตํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค๋ฉด gateway๋ฅผ kong์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ์„œ ๊ด€๋ฆฌ ํ•ด์•ผ๋˜๋Š”์ง€ ๊ณ ๋ คํ•ด๋ณด์•˜๋‹ค. spring cloud์˜ ๊ฒฝ์šฐ๋Š” java๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋” ์ž์„ธํ•œ ์‚ฌํ•ญ์€ [ ์˜คํ”ˆ์†Œ์Šค Gateway ๋น„๊ต ] ์„ ์ฐธ๊ณ ํ•˜์ž!
๋‹ค๋งŒ, kong์€ Nginx, Lua ๊ธฐ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •์— ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆด ๊ฒƒ ๊ฐ™๋‹ค. ์šฐ๋ฆฌ ์„œ๋น„์Šค๋‹จ์ด ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ คํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

๐Ÿ‘‰ ๋‹ค์Œ์œผ๋กœ ์ƒ๊ฐํ•œ๊ฒƒ์€ ์„œ๋ฒ„๋‹จ์„ ์ผ๋‹จ java๋กœ ํ†ต์ผํ•˜๊ณ  java ๋‹จ์—์„œ python์„ ๋ถ€๋ฅด๋Š” ํ˜•ํƒœ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด java์—์„œ python์€ ์–ด๋–ป๊ฒŒ ํ˜ธ์ถœํ•  ๊ฒƒ์ธ๊ฐ€?

๐Ÿ‘‰ ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ๋ฅผ netflix ๋กœ ๋„์ž…ํ•œ๋‹ค๋ฉด ๋ชจ๋“  ์„œ๋ฒ„๋ฅผ ์ž๋ฐ”๋กœ ํ†ต์ผํ•˜๋ฉฐ ์ž๋ฐ” <-> ํŒŒ์ด์ฌ : WebClient ๋กœ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ… ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ ๊ฒŒ์ดํŠธ์›จ์ด์—์„œ๋„ ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ ๋Œ€์‹ ์— ์ง์ ‘ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ํŒŒ์ด์ฌ์—์„œ Fast API๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค! ํŠนํžˆ, ๋„์ปค์Šค์›œ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์œผ๋‹ˆ ๋„์ปค์Šค์›œ ์„œ๋น„์Šค ๋„ค์ž„์œผ๋กœ ์ฐพ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ์™€ ๋‹ฌ๋ฆฌ ๋„์ปค์Šค์›œ ์„œ๋น„์Šค ๋„ค์ž„์œผ๋กœ ๋ผ์šฐํŒ… ํ•  ๊ฒฝ์šฐ ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ์ ์–ด์ค˜์•ผ ํ•œ๋‹ค.


๐Ÿ“Œ ์นด๋ฉ”๋ผ ๋ชจ๋“ˆ๊ณผ ๋ฆฌ์•กํŠธ๊ฐ€ ์„œ๋ฒ„์™€ ์—ฐ๋™์—†์ด ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด์˜ ์นด๋ฉ”๋ผ ๋ชจ๋“ˆ์€ ๊ณ„์† ๋Œ์•„๊ฐ€๊ณ  ํŽ˜์ด์Šค ๋กœ๊ทธ์ธ์ด ์„ฑ๊ณตํ•œ ๊ฒฝ์šฐ์—๋งŒ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ์ƒํ™ฉ์—์„œ ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ์„ ์–ด๋–ค์‹์œผ๋กœ ๊ตฌ์„ฑํ•ด์•ผํ• ๊นŒ?

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

โœ… ์นด๋ฉ”๋ผ ๋ชจ๋“ˆ ํŒŒ์ด์ฌ์ฝ”๋“œ์™€ ๋ฆฌ์•กํŠธ ์‚ฌ์ด์—์„œ๋Š” WebSocket์„ ํ™œ์šฉํ•œ ํ†ต์‹ ์„ ์ทจํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ์ „์ฒด์ ์ธ ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜์˜€๋‹ค.

โ— ์ฐธ๊ณ ๋กœ ์†Œํ†ต๋ฐฉ์‹์„ ์›น์†Œ์ผ“๊ณผ ์›นRTC์ค‘์— ๊ณ ๋ฏผํ–ˆ๋Š”๋ฐ ์›น์†Œ์ผ“์„ ํ™œ์šฉํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ์ด์œ ๋Š” [ WebSocket ๊ณผ WebRTC ] ๊ฒŒ์‹œ๊ธ€์„ ํ†ตํ•ด ์„ค๋ช…ํ•ด๋‘์—ˆ๋‹ค.


๐Ÿ“Œ MSA๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ์™€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ• ์ง€?

์ผ๋‹จ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ๋„์ž…ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด NGINX Ingress Controller๋ฅผ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด๊ณ  ๋งŒ์•ฝ ๋„์ž…ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด Eureka๋ฅผ ๊ณ ๋ คํ•ด๋ณด์ž

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

0๊ฐœ์˜ ๋Œ“๊ธ€