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

์ „์ฒด ๊ธ€77

[MSA / Spring Cloud] Spring Cloud MSA ํ”„๋กœ์ ํŠธ์—์„œ CORS ์„ค์ •์— ๋Œ€ํ•ด (feat. 403 error) ๋ถ€ํŠธ์บ ํ”„ ํ”„๋กœ์ ํŠธ์˜ "๋™์ƒ์ด๋†"์—์„œ Spring Cloud ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์šฉํ•˜์—ฌ MSA ํ”„๋กœ์ ํŠธ ์„ธํŒ…์„ ๋งก์•˜๋Š”๋ฐ์š”์ œ๊ฐ€ MSA ์„ธํŒ…์„ ํ•˜๋ฉฐ CORS ์„ค์ •์— ๋Œ€ํ•ด ๋†“์ณค๋˜ ๋ถ€๋ถ„๊ณผ ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋œ ๊ฒƒ์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋™์ƒ์ด๋†์˜ MSA ์•„ํ‚คํ…์ฒ˜๋™์ƒ์ด๋† ํ”„๋กœ์ ํŠธ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ MSA ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.8081 ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” vue ํ”„๋กœ์ ํŠธ๊ฐ€ 8080 ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” API Gateway์—๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉดAPI Gateway๋Š” ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ ์—ญํ• ์„ ํ•˜๋Š” Eureka ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๊ฐ ๋ชจ๋“ˆ์˜ IP, Port ์ •๋ณด๋ฅผ ์•Œ์•„๋‚ด๊ณ  ์ ์ ˆํ•œ ๊ณณ์œผ๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ๊ฒƒ์ด์ฃ .(API gateway์™€ Eureka๋ฅผ ์ œ์™ธํ•œ ์„œ๋ฒ„๋“ค์€ ์œ ๋™ํฌํŠธ๋ฅผ ์“ฐ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, Eureka๋ฅผ ํ†ตํ•ด IP, Port๋ฅผ ์•Œ์•„๋‚ด๋Š” .. 2024. 10. 3.
[Spring Cloud] MSA ๊ตฌ์กฐ์—์„œ ์š”์ฒญ์ด ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ (Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException) ๋™์ƒ์ด๋† ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ด ์‹œ์ž‘๋์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ axios ์ธํ„ฐ์…‰ํ„ฐ ์„ธํŒ…์„ ๋งก์•˜๋Š”๋ฐ์š”.์ธํ„ฐ์…‰ํ„ฐ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ๋ณด๊ธฐ ์œ„ํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์„œ๋ฒ„์— ๊ฐ„๋‹จํ•œ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋Š”๋ฐ ์‘๋‹ต์ด ์˜ค์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค..  API Gateway์˜ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ด๋ณด๋‹ˆ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๋ฉ”์‹œ์ง€๊ฐ€ ์ฐํ˜€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 2024-09-28T12:02:38.403+09:00 ERROR 80418 --- [api-gateway] [ctor-http-nio-2] a.w.r.e.AbstractErrorWebExceptionHandler : [d48b9c9b-243] 500 Server Error for HTTP GET "/member-service/member/healthcheck"io.netty.channel.ConnectTimeoutE.. 2024. 9. 28.
[Spring / FCM] FCM ์›น ํ‘ธ์‹œ ์•Œ๋ฆผ ๊ตฌํ˜„๊ธฐ (์„œ๋ฒ„ ํŽธ) ๋ถ€ํŠธ์บ ํ”„์—์„œ ์ตœ์ข… ํ”„๋กœ์ ํŠธ "๋™์ƒ์ด๋†"์„ ์ง„ํ–‰ํ•˜๋ฉฐ FCM์„ ์ด์šฉํ•œ ์•Œ๋ฆผ ๊ธฐ๋Šฅ์„ ๋งก๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ๊ณผ์ •์„ ๊ธฐ๋กํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. 1. ๋น„๊ณต๊ฐœ ํ‚ค ์ƒ์„ฑํ”„๋กœ์ ํŠธ ์„ค์ • > ์„œ๋น„์Šค ๊ณ„์ • > ์ž๋ฐ”๋กœ ๋“ค์–ด๊ฐ„ ํ›„, ํ•˜๋‹จ์— ์žˆ๋Š” "์ƒˆ ๋น„๊ณต๊ฐœ ํ‚ค ์ƒ์„ฑ" ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋น„๊ณต๊ฐœํ‚ค๋ฅผ ๋‹ค์šด ๋ฐ›์•„์ค๋‹ˆ๋‹ค. ๋‹ค์šด ๋ฐ›์€ ๋น„๊ณต๊ฐœ ํ‚ค๋Š” resources๋กœ ์˜ฎ๊ฒจ์ค๋‹ˆ๋‹ค!๋™์ƒ์ด๋†์˜ ์„œ๋ฒ„๋Š” MSA ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ๋Š”๋ฐ, ๋ฉค๋ฒ„ ๋ชจ๋“ˆ์—์„œ FCM ์•Œ๋ฆผ์„ ์ฒ˜๋ฆฌํ•  ์˜ˆ์ •์ด๋ฏ€๋กœ, ๋ฉค๋ฒ„ ๋ชจ๋“ˆ์˜ resources์— ๋„ฃ์–ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. 2. ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ์— firebase ์˜์กด์„ฑ ์ถ”๊ฐ€build.gradle์— ํ•ด๋‹น ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹คdependencies { implementation 'com.google.firebase:firebase-admin:9... 2024. 9. 22.
Beyond SW ์บ ํ”„ 17์ฃผ์ฐจ ํšŒ๊ณ  ์ด๋ฒˆ ์ฃผ๋ง์—๋Š” ์˜ค๋žœ๋งŒ์— ๋ธ”๋กœ๊ทธ์— ํฌ์ŠคํŒ…์„ ํ–ˆ์Šต๋‹ˆ๋‹ค!https://onfonf.tistory.com/85 [Spring / Redis] ์ด์ค‘ํ™” ์„œ๋ฒ„์—์„œ์˜ ์›น ์†Œ์ผ“ ์ฑ„ํŒ… + SSE ์•Œ๋ฆผ ๊ตฌํ˜„๊ธฐ์žŠ๊ธฐ ์ „์— ๊ธฐ๋กํ•˜์ž, Redis Pub/Sub์„ ํ™œ์šฉํ•œ STOMP ์ฑ„ํŒ… + SSE ์•Œ๋ฆผ ์•ฝ ํ•œ๋‹ฌ๊ฐ„์˜ ์‚ฌ์ด๋””(Si-D) ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.   ์‚ฌ์ด๋”” ํ”„๋กœ์ ํŠธ์—์„œ๋Š” STOMP๋ฅผ ํ™œ์šฉํ•œ 1๋Œ€1 ์ฑ„ํŒ… ๊ธฐ๋Šฅ์ด ์žˆ์—ˆ๋Š”๋ฐ, ์ฑ„ํŒ…์ด ์˜คonfonf.tistory.com  ์ด๋ฒˆ์ฃผ๋Š” PMI๋ผ๋Š” ํ…œํ”Œ๋ฆฟ์œผ๋กœ ํšŒ๊ณ ๋ฅผ ์ง„ํ–‰ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 2024. 9. 9.
[Spring / Redis] ์ด์ค‘ํ™” ์„œ๋ฒ„์—์„œ์˜ ์›น ์†Œ์ผ“ ์ฑ„ํŒ… + SSE ์•Œ๋ฆผ ๊ตฌํ˜„๊ธฐ ์žŠ๊ธฐ ์ „์— ๊ธฐ๋กํ•˜์ž, Redis Pub/Sub์„ ํ™œ์šฉํ•œ STOMP ์ฑ„ํŒ… + SSE ์•Œ๋ฆผ ์•ฝ ํ•œ๋‹ฌ๊ฐ„์˜ ์‚ฌ์ด๋””(Si-D) ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.   ์‚ฌ์ด๋”” ํ”„๋กœ์ ํŠธ์—์„œ๋Š” STOMP๋ฅผ ํ™œ์šฉํ•œ 1๋Œ€1 ์ฑ„ํŒ… ๊ธฐ๋Šฅ์ด ์žˆ์—ˆ๋Š”๋ฐ, ์ฑ„ํŒ…์ด ์˜ค๋ฉด Server Sent Event ๊ธฐ๋Šฅ์œผ๋กœ ์ฆ‰์‹œ ์•Œ๋ฆผ์„ ์ด์ค„ ์ˆ˜ ์žˆ๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.์˜ค๋Š˜์€ ๊ทธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ตฌํ˜„ํ•˜๋ฉฐ ๋ ˆ๋””์Šค์— ๋Œ€ํ•ด ์•Œ๊ฒŒ๋œ ์‚ฌ์‹ค์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.  ์ด์ค‘ํ™” ์„œ๋ฒ„์—์„œ์˜ ์›น ์†Œ์ผ“ ํ†ต์‹ ๊ณผ SSE ์•Œ๋ฆผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•  ์ผ๋‹จ ๋ƒ…๋‹ค ์•„ํ‚คํ…์ฒ˜ ์‚ฌ์ง„์„ ๋ณด์—ฌ๋“œ๋ฆฐ ์ด์œ ๋Š”...์‚ฌ์ด๋””์˜ ์šด์˜ ์„œ๋ฒ„๋Š”  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ํŒŒ๋“œ๋ฅผ 2๊ฐœ ๋„์›Œ์„œ ๋‘ ๋Œ€์˜ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๊ตฌ์กฐ๋กœ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ Web Socket๊ณผ SSE ๋ชจ๋‘ ํด๋ผ์ด์–ธํŠธ์— ๋ฐ์ด.. 2024. 9. 7.
Beyond SW 7๊ธฐ 16์ฃผ์ฐจ ํšŒ๊ณ ๋ก ์ผ์š”์ผ ๋ฐค ์ž๊ธฐ ์ „์— ์จ๋†“๊ณ  ์ž” ํšŒ๊ณ  ์›”์š”์ผ ์•„์นจ์— ์˜ฌ๋ฆฌ๊ธฐ๋ ˆ์ด์–ด๊ฐ€ ์›น๊ณผ ios ์•ฑ์ด ์ถœ์‹œ ๋˜์—ˆ์–ด์š”๐ŸŽ ios ์•ฑ     ‎Layer - ์„ฑ์žฅ ์ถ”๊ตฌํ˜• ํšŒ๊ณ  ์„œ๋น„์Šค‎ํšŒ๊ณ  ์ž‘์„ฑ๋ถ€ํ„ฐ AI ๋ถ„์„๊นŒ์ง€ ์„ฑ์žฅํ•˜๋Š” ๋‹น์‹ ์„ ์œ„ํ•œ ํšŒ๊ณ  ์„œ๋น„์Šค, ๋ ˆ์ด์–ด! ๋ ˆ์ด์–ด๋Š” ํšŒ๊ณ  ์ž‘์„ฑ์˜ ์–ด๋ ค์›€๊ณผ ๋ถ€๋‹ด๊ฐ์„ ๋œ์–ด์ฃผ๋ฉฐ, ํšŒ๊ณ ๋ฅผ ํ†ตํ•ด ์„ฑ์žฅ์„ ์œ„ํ•œ ๊ฐœ์„ ์ ์„ ์„ค์ •ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ํšŒ๊ณ ๋ฅผapps.apple.com  ๐ŸŒ ์›น ์„ฑ์žฅํ•˜๋Š” ๋‹น์‹ ์„ ์œ„ํ•œ ํšŒ๊ณ  ์„œ๋น„์Šค, LayerํŽธ๋ฆฌํ•œ ํšŒ๊ณ  ์ž‘์„ฑ๋ถ€ํ„ฐ AI ๋ถ„์„๊นŒ์ง€ Layer์—์„œ ํ•จ๊ป˜ํ•ด์š”!www.layerapp.io    ์จ์ฃผ์„ธ์š”..ใ…Žใ…Ž  ์ด๋ฒˆ์ฃผ๋„ ๋ ˆ์ด์–ด๋กœ ํšŒ๊ณ ๋ฅผ ํ•œ๋ฒˆ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.์ด๋ฒˆ์ฃผ๋Š” "SSC"๋ผ๋Š” ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•ด๋ดค์Šต๋‹ˆ๋‹ค!  ๋ถ„์„๋„ ์ž˜๋ฉ๋‹ˆ๋‹ค! ํ™•์‹คํžˆ ๋ ˆ์ด์–ด๋ฅผ ์“ฐ๋‹ˆ๊นŒ ํšŒ๊ณ ํ•˜๋Š” ์‹œ๊ฐ„์ด ์ค„์–ด ๋“œ๋Š” ๊ฒƒ ๊ฐ™์•„์š”์ธ„.. 2024. 9. 2.