Spring5 [Spring Data JPA] MariaDB์์์ ๋์์ฑ ์ด์๋ก ์ธํ ๊ฐฑ์ ์ด์ ๋ฌธ์ ์ ๊ทธ ํด๊ฒฐ๋ฒ(๋น๊ด์ ๋ฝ, ๋๊ด์ ๋ฝ) ๋์์ฑ ์ด์๋?๋ฉํฐ ์ค๋ ๋๋ก ๋์ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋์์ 2๊ฐ ์ด์์ ํธ๋์ญ์ ์ด ์คํ๋ผ์ ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ด ๋ง์ง ์๊ฒ ๋๋ ์ด์๋ฅผ ์๋ฏธํฉ๋๋ค. ๋์์ฑ ์ด์๋ฅผ ํ์ธํด๋ณด์MariaDB์์ ์ ๋ง ๋์์ฑ ์ด์๊ฐ ์๊ธฐ๋์ง๋ฅผ ํ์ธํด๋ณด๊ธฐ ์ํด Spring Boot ํ๋ก์ ํธ ํ๋๋ฅผ ๋ง๋ค์์ต๋๋ค. ์ฐ์ ์ด๋ ๊ฒ 2๊ฐ์ ์ํฐํฐ๋ฅผ ๋ง๋ค์ด์ฃผ์๋๋ฐ, ๊ฐ๊ฐ์ ์ฉ๋๋ ์ด๋ ์ต๋๋ค.TestEntity: ์ด๊ธฐ์ count๋ฅผ N๊ฐ๋ก ํ๊ณ , ์ด count๋ฅผ ๊ฐ์์ํค๋ฉฐ ๊ฐฑ์ ์ด์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋์ง ํ์ธRequestRecord: ์์ฒญ์ด ๋ค์ด์ฌ ๋๋ง๋ค ํ๋์ฉ ์์ฑํด์ ํด๋น ํธ๋์ญ์ ์ด ๋กค๋ฐฑ๋๊ฒ ์๋๋ผ๋ ๊ฒ์ ์ฆ๋ช ํ๊ธฐ ์ํด ์ฌ์ฉ ๊ทธ๋ฆฌ๊ณ count ๊ฐ์ API๋ฅผ ์ํ TestController์ TestService๋ ๋ง๋ค์ด์คฌ์ต๋๋ค. ์์ฒญ์ด ๋ค์ด์ค๋ฉด,.. 2024. 11. 20. [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. [Spring / Redis] @RedisHash ์ด๋ ธํ ์ด์ ์ ๋ถ์ธ ๊ฐ์ฒด๋ฅผ ๋ ๋์ค์ ์ ์ฅํ์๋, ๊ทธ ๊ฐ์ ํ์ธํ๋ ๋ฐฉ๋ฒ redis-cli์์ ๋ด๊ฐ ๋ฃ์ ๊ฐ์ ํ์ธํ๋ ๋ฐฉ๋ฒkey๋ @RedisHash ์ ์ค์ ํด๋์ value์ ๊ทธ ์ด๋ ธํ ์ด์ ์ด ๋ถ์ ํด๋์ค ์ค @Id ์ด๋ ธํ ์ด์ ์ด ๋ถ์ ํ๋๋ฅผ ์กฐํฉํ์ฌ value:Id๋ก ์ค์ ๋ฉ๋๋ค.์ฆ, ์๋์ ๊ฐ์ ํด๋์ค๊ฐ ์๊ณ , ๊ฐ์ฒด๋ฅผ ๋ง๋ค๋ Id์ธ accessToken ํ๋ ๊ฐ์ "hello"๋ก ์ค์ ํด๋จ๋ค๋ฉดpackage com.mewsinsa.auth.jwt.redis.dto;import com.mewsinsa.member.domain.Member;import org.springframework.data.annotation.Id;import org.springframework.data.redis.core.RedisHash;@RedisHash(value = "accessToken", time.. 2024. 5. 18. ์ด์ 1 ๋ค์