์ ์ฒด ๊ธ60 ์ผ๊ธ ์ปฌ๋ ์ (First Class Collection)์ ๋ํด ์ฝ ๋๋ฌ์ ํ๋ก์ ํธ๋ฅผ ํ๋ฉฐ ์๋์ ๊ฐ์ ๋ณต์กํ ์ ๋ ฌ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์ด ์์์ต๋๋ค. // ์ก์ ์์ดํ ๋ชจ๋ ๋ฝ์์ค๊ธฐ List idList = doneRetrospects.stream().map(Retrospect::getId).toList(); List actionItemList = actionItemRepository.findAllByRetrospectIdIn(idList).stream() .sorted((a, b) -> { if(a.getIsPinned() && b.getIsPinned() && a.getActionItemStatus().equals(b.g.. 2024. 10. 9. [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. ์ด์ 1 2 3 4 ยทยทยท 10 ๋ค์