3~4์ฃผ์ฐจ Troble & Troubleshooting

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

ํ”„๋กœ์ ํŠธ

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

๐Ÿš€ ๊ฐœ๋ฐœ & devops ๋‹จ๊ณ„


๐Ÿ“Œ์‚ผ์„ฑ ํ—ฌ์Šค ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ๋ชจ๋ฐ”์ผ๊ณผ ๋งด๋ฒ„ ์ •๋ณด๋ฅผ ๊ฐ€์ง„ ์Šค๋งˆํŠธ ๋ฏธ๋Ÿฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋‚˜?

โœ… ๋ฆฌ์•กํŠธ์—์„œ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์ˆซ์ž์™€ ๋ฌธ์ž๊ฐ€ ์„ž์ธ ์ž„์˜์˜ 6์ž๋ฆฌ ์ธ์ฆ๋ฒˆํ˜ธ๋ฅผ ๋ณด๋‚ด๊ณ  ์ด๋ฅผ ์Šค๋งˆํŠธ๋ฏธ๋Ÿฌ์— ๋›ฐ์šฐ๊ฒŒ ํ•œ๋‹ค. ๋ชจ๋ฐ”์ผ ํšŒ์›์€ ์•ฑ์—์„œ ํšŒ์ธ์ฆ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น accesstoken ๊ณผ refreshtoken์„ ๋ฐœ๊ธ‰ํ•˜์—ฌ ๊ธฐ์กด ์Šค๋งˆํŠธ ๋ฏธ๋Ÿฌ ํšŒ์›๊ณผ ๋ชจ๋ฐ”์ผ ํšŒ์›์„ ์—ฐ๋™์‹œํ‚ค๋Š” ๋ฐฉ์‹์„ ์ฑ„ํƒํ•˜์˜€๋‹ค.


๐Ÿ“Œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์–ด๋–ป๊ฒŒ ์ ์šฉํ•  ๊ฒƒ์ธ๊ฐ€?

์ตœ์ข…์ ์œผ๋กœ ์ด๋ ‡๊ฒŒ ์„ค๊ณ„ํ–ˆ๋‹ค.

Ingress Controller๋กœ๋Š” NGINX Ingres Controller๋กœ ์ •ํ•˜์˜€๊ณ , ๋ฆฌ๋ฒ„์Šคํ”„๋ก์‹œ๋ฅผ ์œ„ํ•ด์„œ Certbot๊ณผ Let's Encrypt๋ฅผ ์ด์šฉํ•  ์˜ˆ์ •์ด๋ฉฐ Helm์„ ์ด์šฉํ•  ์˜ˆ์ •์ด๋‹ค.

3๊ฐœ์˜ ์ธ์Šคํ„ด์Šค ์ค‘ ํ•˜๋‚˜๋ฅผ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋กœ ์ง€์ •ํ•˜์—ฌ Gateway์™€ Redis, MySQL, Mongo DB (DB ๋„์ปค ์ปจํ…Œ์ด๋„ˆ) ๋ฅผ ์„ค์น˜ํ•  ์˜ˆ์ •์ด๋ฉฐ ๋‚˜๋จธ์ง€ 2๊ฐœ์˜ ์›Œํฌ๋…ธ๋“œ์— ๊ฐ๊ฐ MSA ์Šคํ”„๋ง ์„œ๋ฒ„๋“ค๊ณผ ๋จธ์‹ ๋Ÿฌ๋‹ ์„œ๋ฒ„๋ฅผ ๋ ˆํ”Œ๋ฆฌ์นด ๋ณต์ œํ•ด์„œ ํ•˜๋‚˜์”ฉ ๋ฐฐํฌํ•˜๊ณ  CNI๋กœ ์—ฐ๊ฒฐํ•  ์˜ˆ์ •์ด๋‹ค. ๋˜ ๊ฒŒ์ดํŠธ ์›จ์ด์—์„œ ์ตœ์†Œ ์—ฐ๊ฒฐ ์‘๋‹ต ์‹œ๊ฐ„ ๋ฐฉ์‹์œผ๋กœ (Haproxy ๋‚˜ ์•„๋‹ˆ๋ฉด ๋ผ์šด๋“œ๋กœ๋นˆํ˜•ํƒœ๋กœ ๋จธ์‹ ๋Ÿฌ๋‹ ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ ํ•œ๊ณ„๋‘๊ธฐ) ๋กœ๋“œ๋ฐธ๋Ÿฌ์‹ฑ์„ ํ†ตํ•ด ๊ฐ๊ฐ์˜ ์„œ๋ฒ„์— ํ†ต์‹ ์„ ๋ณด๋‚ผ๊ฒƒ์ด๋‹ค.

๋˜ํ•œ, Argo CD, ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค, ๊ทธ๋ผํŒŒ๋‚˜๋„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด๋‹ค.

์ด๋ฒˆ์— ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์„ค๊ณ„ํ•˜๋ฉด์„œ ๋งŽ์€ ๊ถ๊ธˆ์ฆ์ด ์ƒ๊ฒจ์„œ ์งˆ๋ฌธํ˜•ํƒœ๋กœ ์ •๋ฆฌํ•ด๋‘์—ˆ๋‹ค.

  1. Jasypt, MySQL๊ฐ™์€ ๋น„๋ฐ€๋ฒˆํ˜ธ ymlํŒŒ์ผ์ด๋‚˜ ์  ํ‚จ์Šค ํŒŒ์ดํ”„๋ผ์ธ ์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ secret๋กœ ๊ผญ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋‚˜์š”?

  2. ๊ทธ์ „์—๋Š” Eureka๋ผ๋Š” ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ๋ฅผ ์ผ๋Š”๋ฐ ๋ณ„๋„์˜ ์„ค์น˜์—†์ด ๋งค๋‹ˆํŽ˜์ŠคํŠธ(yaml)ํŒŒ์ผ์— service ํ•ญ๋ชฉ๋งŒ ์ž‘์„ฑํ•˜๋ฉด ๋˜๋‚˜์š”??

  3. Spring Cloud Gateway๋ฅผ ๊ทธ์ „์— ์ผ๋Š”๋ฐ Eureka ๋ถ€๋ถ„๋งŒ ์ˆ˜์ •ํ•ด์„œ ์“ฐ๋ฉด๋˜๋‚˜์š”?? ์ด๋•Œ ์ €ํฌ ํŒŒ์ด์ฌ ์„œ๋ฒ„๊ฐ€ Fast Api๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์Šคํ”„๋ง ์„œ๋ฒ„๋ž‘ ๋˜‘๊ฐ™์ด url๋งŒ ๊ด€๋ฆฌํ•˜๋ฉด ๋˜๋Š”๊ฑด๊ฐ€์š”?? ๋˜ Config Map์ด๋‚˜ Secret๋Š” ๊ผญ ์ž‘์„ฑํ•ด์•ผํ•˜๋‚˜์š”??

  4. Certbot ๊ณผ Let's Encrypt๋ฅผ NGINX์—์„œ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ NGINC INGRESS CONTROLLER๋ฅผ ์—”์ง„์—‘์Šค๋Œ€์‹ ์“ด๋‹ค๋ฉด ๋˜‘๊ฐ™์€๋ฐฉ์‹์œผ๋กœ ํ•˜๋ฉด ๋˜๋Š”๊ฑด๊ฐ€์š”??

  5. ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๋กœ๋“œ๋ฐธ๋Ÿฌ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ๋˜๋ฉด yaml ํŒŒ์ผ์—์„œ ๊ด€๋ฆฌ๊ฐ€๋Šฅํ•˜๋‹ค๋Š”๋ฐ ๋ผ์šด๋“œ๋กœ๋นˆ ํ˜•ํƒœ๋งŒ ์ง€์›ํ•˜๋Š”๊ฑธ๋กœ ์•Œ๊ณ ์žˆ์Šต๋‹ˆ๋‹ค! ์ €ํฌํ”„๋กœ์ ํŠธ ํŠน์„ฑ์ƒ ๋จธ์‹ ๋Ÿฌ๋‹ ์„œ๋ฒ„์ชฝ์— ๋ถ€ํ•˜๋‚˜ ์‹œ๊ฐ„์ด ๋งŽ์ด ์†Œ์š”๋˜๋Š”๋ฐ ๋”ฐ๋ผ์„œ ์ตœ์†Œ์—ฐ๊ฒฐ์ด๋‚˜ ์ตœ์†Œ์‘๋‹ต์‹œ๊ฐ„ํ˜•ํƒœ๋กœ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„์œ„ํ•ด Ha proxy๊ฐ™์€๊ฑธ ์จ์•ผํ•˜๋Š”์ง€ ์•„๋‹ˆ๋ฉด ํŒŒ์ด์ฌ ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•œ๊ณ„๋ฅผ ๋‘์–ด์„œ ๋ผ์šด๋“œ๋กœ๋นˆํ˜•ํƒœ๋„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š”๊ฒŒ ์ข‹์€์ง€

  6. ์„œ๋กœ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค์˜ ๋ชจ๋“  ํŒŒ๋“œ๊ฐ€ ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ฐ–๊ธฐ์œ„ํ•ด ํ•˜๋Š” ๋„์ปค ๋„คํŠธ์›Œํฌ๊ฐ€ ๋ญ”์ง€ ์•„์‹ค๊นŒ์š”?? ์ด๊ฒŒ CNI ์ธ๊ฐ€์š”?? ๋„๊ตฌ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค!

  7. ์ง€๊ธˆ๊ตฌ์ƒ์€ ingress controller, certbot, Let's encrypt, Helm, Argo cd, ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค, ๊ทธ๋ผํŒŒ๋‚˜ ์ด๋Ÿฐ ๋„๊ตฌ๋“ฑ์„ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ธ๋ฐ ๊ฐ€์žฅ ์‰ฌ์šด๋ฐฉ๋ฒ•์œผ๋กœ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋บ„๊ป˜ ์žˆ์„๊นŒ์š”?? ์•„๋‹ˆ๋ฉด ์ตœ์†Œํ•œ์˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ธฐ๋Šฅ์„ ์œ„ํ•ด ๋”ํ•ด์•ผํ•˜๋Š”๊ฒŒ ์žˆ์„๊นŒ์š”??

  8. ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด(green,blue ์ •์ฑ… ๋˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋“ค) ์ง€๊ธˆ์˜ ์ธ์Šคํ„ด์Šค ๊ฐฏ์ˆ˜๊ฐ€ ์ถฉ๋ถ„ํ•œ๊ฐ€์š”?? ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ์œ„ํ•ด 2๋Œ€์˜ ์ธ์Šคํ„ด์Šค์— ๋ณต์ œํ•ด์„œ ์‚ฌ์šฉ์ค‘์ธ๋ฐ ๋งŒ์•ฝ ํž˜๋“ค๋‹ค๋ฉด ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ํฌ๊ธฐํ•˜๊ณ  ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ๊ฐ€์š”??

์ •๋ง ๋งŽ์€ ์‚ฌ๋žŒ๋“ค๊ณผ ์ด์—๋Œ€ํ•ด ํ† ๋ก ํ•ด๋ณด์•˜๋‹ค ๋Œ€๋ถ€๋ถ„ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๋ฐฉ์‹์ด ๋งž์•˜๋‹ค. ๋”ฐ๋ผ์„œ ๊ทธ๋ƒฅ ์ฒ˜์Œ ์„ค๊ณ„ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

๐Ÿ‘‰ ์ž์„ธํ•œ ์‚ฌํ•ญ์€ [ All about ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ] ์ด ๊ฒŒ์‹œ๊ธ€ ์—์„œ ํ™•์ธํ•˜์ž!

โœ… ์•„์‰ฝ๊ฒŒ๋„ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„ค์ •ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ๋งŽ์ด ๋ถ€์กฑํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋” ๊ฐ„ํŽธํ•œ ๋„์ปค์Šค์›œ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜์˜€๋‹ค.


๐Ÿ“Œ ๋งค๋ฒˆ ํ—ฌ์Šค ๋ฐ์ดํ„ฐ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๋‚ ์งœ๋ณ„ ์ตœ์ข… ํ—ฌ์Šค ๋ฐ์ดํ„ฐ ๊ฐ’(ํ•˜๋ฃจ๊ธฐ์ค€) ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์–ด๋–ค์‹์œผ๋กœ DB๋ฅผ ๊ตฌ์„ฑํ•ด์•ผํ• ๊นŒ?

๋งค๋ฒˆ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ํ—ฌ์Šค ๋ฐ์ดํ„ฐ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋กœ๊น…ํ˜•ํƒœ์˜ ๊ฒฝ์šฐ ์Šคํ‚ค๋งˆ๋ฆฌ์Šค ๋ฐ Document ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์šฉ์ดํ•œ Mongo DB๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ•˜์˜€๊ณ 

ํ•˜๋ฃจ๊ฐ€ ๋๋‚˜๋ฉด Scheduled๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค๋‹จ์—์„œ ๊ฐ’์„ ์ €์žฅํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜์„ ์ง€์›ํ•˜๋Š” (๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ๊ณผ ์ผ๊ด€์„ฑ์ด ์ค‘์š”ํ•˜๋ฏ€๋กœ ๊ทธ๋ฆฌ๊ณ  ์ด ๋ฐ–์—๋„ ๋ฐ์ดํ„ฐ์˜ ์•ˆ์ •์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ, ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋“ฑ) MySQL์— ์ €์žฅํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

๐Ÿ‘‰ ๊ด€๋ จ ๋‚ด์šฉ์€ [ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ ์ดํ•ดํ•˜๊ธฐ: MySQL, MongoDB, PostgreSQL, Redis ]


๐Ÿ“Œ ๋ฐค 12์‹œ ๊ฐ€ ๋˜๋ฉด ๊ทธ ์ „๋‚  Mongo DB์— ์ €์žฅ๋œ ๋งˆ์ง€๋ง‰ ๊ฐ’์„ ๋ถˆ๋Ÿฌ์™€ MySQL์— ์ €์žฅํ•˜๋Š” ํ˜•ํƒœ๋กœ ํ•˜๋Š”๋ฐ ์ €์žฅ์ด ์•ˆ๋œ๋‹ค.

์•„๋งˆ๋„ ๋™์‹œ์„ฑ ์ด์Šˆ ๋˜๋Š” ๋„คํŠธ์›Œํฌ ์ง€์—ฐ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™๋‹ค.
mongodb ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š” ๋งค๋‹ˆ์ €๋…ธ๋“œ์— ์ž‡๊ณ  ํ—ฌ์Šค ์„œ๋น„์Šค๋Š” 2๊ฐœ์˜ ์›Œํฌ๋…ธ๋“œ์— ๋ ˆํ”Œ๋ฆฌ์นด๋กœ ๋ณต์ œํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

๐Ÿ‘‰ MongoDB Reactive๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

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

๐Ÿ“Œ 3๊ฐœ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋กœ ์—ฐ๊ฒฐ์„ ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ๊ฐ€?

๋„์ปค์Šค์›œ์„ ํ™œ์š”ํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ํ•œ๊ฐœ์˜ ๋งค๋‹ˆ์ € ๋…ธ๋“œ์™€ 2๊ฐœ์˜ ์›Œํฌ๋…ธ๋“œ๋กœ ํ•˜๋‚˜์˜ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๊ตฌ์„ฑํ•˜๊ณ  ์˜ค๋ฒ„๋ ˆ์ด ๋„คํŠธ์›Œํฌ(Overlay network)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

๐Ÿ‘‰๊ด€๋ จ ๋‚ด์šฉ์€ [ Docker Swarm Network ์ข…๋ฅ˜ ] ์—์„œ ํ™•์ธํ•˜์ž!


๐Ÿ“Œ์ง€๊ธ‰๋ฐ›์€ 2๊ฐœ์˜ ์ธ์Šคํ„ด์Šค IP์™€ ๊ฐœ์ธ ์ธ์Šคํ„ด์Šค IP์˜ VPC๊ฐ€ ๋‹ค๋ฅธ๋ฐ ์–ด๋–ป๊ฒŒ ํ•œ๊ฐœ์˜ ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

๋งค๋‹ˆ์ € ๋…ธ๋“œ์˜ ํผ๋ธ”๋ฆญ IP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์—ฐ๊ฒฐํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ๋งŒ์•ฝ 3๊ฐœ๋‹ค ๊ฐ™์€ VPC๋ผ๋ฉด ํ”„๋ผ์ด๋น— IP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ๋„ ๋ฌด๊ด€ํ•˜๋‹ค.
๐Ÿ‘‰ ๊ด€๋ จ ๊ฒŒ์‹œ๊ธ€ [ Public IP ์™€ Private IP ]์„ ์ฐธ๊ณ ํ•˜์ž!


๐Ÿ“ŒCORS ์—๋Ÿฌ!

๐Ÿ‘‰ ๊ฐ‘์ž๊ธฐ ํ”„๋ก ํŠธ์—์„œ CORS์—๋Ÿฌ๊ฐ€ ์ž๊พธ ๋‚œ๋‹ค๊ณ  ํ•œ๋‹ค. Swagger์™€ ํฌ์ŠคํŠธ๋งจ์—์„œ๋Š” ์•„๋ฌด ๋ฌธ์ œ๊ฐ€ ์—†๋Š”๋ฐ ํŠน์ • controller URL ๋งคํ•‘์—์„œ๋งŒ ๋ฌธ์ œ๊ฐ€ ์ผ์–ด๋‚œ๋‹ค๊ณ  ํ•œ๋‹ค. ์ญ‰ ๊ฒ€์‚ฌํ•ด๋ณด๋‹ˆ AuthenticationFilter(ํ† ํฐ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ํ†ต๊ณผํ•ด์•ผ ํ•˜๋Š” ํ•„ํ„ฐ)๋ฅผ ๊ฑธ์–ด์ค€ ๊ฒƒ์ค‘์—

predicates:
            - Path=/health/**
            - Method=GET,POST,PUT,DELETE

์—ฌ๊ธฐ ๊ฒƒ๋งŒ ์ž๊พธ ์•ˆ๋˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.

โœ… ์ •๋ง ๋งŽ์€ ์‚ฌ๋žŒ๊ณผ ์ด์•ผ๊ธฐ ํ•ด๋ณธ ๊ฒฐ๊ณผ ์›์ธ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ๋ผ๋Š” ์š”์ฒญ์„ ๋จผ์ € ๋ณด๋‚ธ๋‹ค๊ณ  ํ•œ๋‹ค. (accesstoken์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•ด๋ณด๊ธฐ ์œ„ํ•ด) ๊ทธ๋Ÿฐ๋ฐ ์ด ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ์š”์ฒญ์ด ํ•˜ํ•„์ด๋ฉด method๊ฐ€ options๋ž€๋‹ค! ๊ทธ๋ž˜์„œ CORS๊ฐ€ ์ผ์–ด๋‚˜๋Š” ๊ฑฐ์˜€๋‹ค.
๋”ฐ๋ผ์„œ, ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

predicates:
            - Path=/health/**
            - Method=GET,POST,PUT,DELETE,OPTIONS 

ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ์— ๋Œ€ํ•ด์„œ๋Š” [ CORS ์™€ preflight ] ์ด ๋ธ”๋กœ๊ทธ์—์„œ ์ž์„ธํžˆ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

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