๐ Java & Kotlin & Spring/- spring framework +39 Spring Cloud Config ์์ ๋ณ๊ฒฝ๋ ์ ๋ณด๋ฅผ ๋ง์ดํฌ๋ก์๋น์ค ์ธ์คํด์ค์์ Spring Boot Actuator ๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ํ๊ธฐ ํด๋น ๊ธ์ Spring Cloud Config์ name, profiles ๊ทธ๋ฆฌ๊ณ Github ๋ฅผ ์ฐ๋ํด์ ์ค์ ํ์ผ ๊ด๋ฆฌํ๊ธฐ์ ์์กดํ๋ ๊ธ์ ๋๋ค. ์ค์ต ํ๊ฒฝ์ ๋ฐ๋ผํ์๋ ค๋ฉด ์ด์ ๊ธ์ ๋์จ ์ค์ต์ ๋ฐ๋ผํ์๊ธธ ๊ถ๊ณ ๋๋ฆฝ๋๋ค. ๋ชฉ์ฐจ ์ค์ ์ ๋ณด๋ฅผ ๋ฐ์ํ๋ ์ด์ Spring Boot Actuator๋? Spring Boot Actuator ์ ๊ธฐ๋ฅ๊ณผ Endpoints Config Refresh Spring Boot Actuator ๋ฅผ ์ด์ฉํด์ ๋ณ๊ฒฝ ์ ๋ณด ๊ฐฑ์ ํ๊ธฐ User-Service์ Actuator ์์กด์ฑ ์ถ๊ฐํ๊ธฐ refresh Endpoints ํ์ฑํ ์๊ฒฉ ์ ์ฅ์์ ์๋ yml ์ค์ ์ ๋ณด ๋ณ๊ฒฝํ๊ธฐ refresh ํ๊ธฐ ์ค์ ์ ๋ณด๋ฅผ ๋ฐ์ํ๋ ์ด์ ์ง๊ธ๊น์ง Spring Cloud Config ์ ๋ง์ ๊ธฐ๋ฅ๋ค์ ์.. 2021. 4. 28. Spring Cloud Config ์์ ๋์นญํค๋ฅผ ์ด์ฉํ application.yml ์ ๋ฏผ๊ฐ ์ ๋ณด ์ํธํ ํ๊ธฐ ํด๋น ๊ธ์ Spring Cloud Config์ name, profiles ๊ทธ๋ฆฌ๊ณ Github ๋ฅผ ์ฐ๋ํด์ ์ค์ ํ์ผ ๊ด๋ฆฌํ๊ธฐ์ ์์กดํ๋ ๊ธ์ ๋๋ค. ์ค์ต ํ๊ฒฝ์ ๋ฐ๋ผํ์๋ ค๋ฉด ์ด์ ๊ธ์ ๋์จ ์ค์ต์ ๋ฐ๋ผํ์๊ธธ ๊ถ๊ณ ๋๋ฆฝ๋๋ค. ๋ชฉ์ฐจ ๊ธฐ์กด Config Server์ ๋ฌธ์ ์ ์ํธํ๋ฅผ ํ์ง ์์ ์ ๋ณด์ ํ์ทจ ๊ฐ๋ฅ์ฑ ์ํธํ ์ข ๋ฅ ๋์นญํค ๋น๋์นญํค Spring Cloud Config ์ encrypt, decrypt encrypt decrypt ์ค์ตํ๊ธฐ ๋์นญํค ์ด์ฉํ๊ธฐ ๊ธฐ์กด Config Server์ ๋ฌธ์ ์ ์ง๋ ์๊ฐ ์ฐ๋ฆฌ๋ github๋ฅผ ์ด์ฉํด์ ์๊ฒฉ ์ ์ฅ์์ ์ค์ ํ์ผ๋ค์ ์ ์ฅํด๋๊ณ Config ์๋ฒ์์ ๊ฐ์ ธ๋ค๊ฐ ๋ค๋ฅธ ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋ฟ๋ ค์ฃผ๋ ๊ณผ์ ์ ์์๋ณด๊ณ ์ด๋ฅผ ๊ตฌํํ์์๋ค. ์ฐ๋ฆฌ์ ์๊ฒฉ ๋ ํฌ์งํ ๋ฆฌ๋ก ๋ค์ ๋ค์ด๊ฐ๋ณด.. 2021. 4. 27. Spring Cloud Config์ name, profiles ๊ทธ๋ฆฌ๊ณ Github ๋ฅผ ์ฐ๋ํด์ ์ค์ ํ์ผ ๊ด๋ฆฌํ๊ธฐ ํด๋น ๊ธ์ Spring Cloud Config ๋ก Application์ ์ค์ ์ ๋ณด๋ฅผ ์ค์์์ ๊ด๋ฆฌํ๊ธฐ์ ์์กดํ๋ ๊ธ์ ๋๋ค. ์ค์ต ํ๊ฒฝ์ ๋ฐ๋ผํ์๋ ค๋ฉด ์ด์ ๊ธ์ ๋์จ ์ค์ต์ ๋ฐ๋ผํ์๊ธธ ๊ถ๊ณ ๋๋ฆฝ๋๋ค. ๋ชฉ์ฐจ ์ธ๋ถ ์ค์ ๊ด๋ฆฌ ๋ฐฉ๋ฒ ๊ธฐ๋ณธ ๋ง์ฝ ์ค์ ํ์ผ์ด ์ฌ๋ฌ ๊ฐ๋ผ๋ฉด? ๊ฒ๋ค๊ฐ ๊ฐ๊ฐ ๋จ๊ณ๋ณ๋ก ๊ตฌ์ฑํด์ผ ํ๋ ํ์ผ์ด ๋ค๋ฅด๋ค๋ฉด? ์ด๋ด ๋ profiles ๊ฐ ๋ฑ์ฅ profiles Spring boot ์์ profiles ์ ๋ฐ๋ฅธ ์ค์ ๊ฐ๊ธฐ ๋ค๋ฅธ ์ค์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ naming ์ ๋ต config ์๋ฒ url ์ ๋ฐ๋ฅธ ์ค์ profile Config ์๋ฒ์ Git Remote Repository ์ฐ๋ํ์ฌ ์ค์ ํ์ผ ๊ด๋ฆฌํ๊ธฐ Git Repository ์์ฑ Git ์ ์ฅ์ ์์ฑ Config ์๋ฒ์์ git url ์ฐ๊ฒฐ Use.. 2021. 4. 27. [Spring Cloud Config] Application์ ์ค์ ์ ๋ณด (application.yml) ๋ฅผ ์ค์์์ ๊ด๋ฆฌํ๊ธฐ (by native repository) ํด๋น ๊ธ์ Spring Cloud Netflix Eureka ์ Spring Cloud Gateway ์ Built-in Route๋ก Predicates์ Filter ์กฐ์ํ๊ธฐ)์ ์์กดํ๋ ๊ธ์ ๋๋ค. ์ค์ต ํ๊ฒฝ์ ๋ฐ๋ผํ์๋ ค๋ฉด Eureka์ Gateway ๊ธ์ ๋์จ ์ค์ต์ ๋ฐ๋ผํ์๊ธธ ๊ถ๊ณ ๋๋ฆฝ๋๋ค. ๋ชฉ์ฐจ Gartner ์์ ์ ์๋ MSA ํ์ค ๊ตฌ์ฑ ์์์ธ Config Store Server ์์ฃผ ๋ณ๊ฒฝ๋๋ ์ค์ ์ ๋ณด๋ ์ค์ ์ ๋ณด๋ง ๋ด๊ณ ์๋ ์๋ฒ์์ ๊ด๋ฆฌํ๊ณ ์ด๋ฅผ ํ์๋ก ํ๋ ์๋ฒ์๊ฒ ๊ฐ๊ฐ ๋ฟ๋ ค์ฃผ๋ ๋ฐฉ์ ์ฐ๋ฆฌ๊ฐ ๊ตฌ์ฑํ ์๋น์ค ๊ตฌ์กฐ ๊ฐ๊ฐ์ application.yml ์๋น์ค ๊ตฌ์กฐ์ ๋ฌธ์ ์ Spring Cloud Config ๋? ์ค์ต Spring Cloud Config ํ๋ก์ ํธ ์์ฑํ๊ธฐ @EnableConfig.. 2021. 4. 27. [Spring Boot] Profile.active ์ ์ด์ฉํ์ฌ ๋ค๋ฅธ ์ค์ ์ ๋ณด(application.properties) ๋ถ๋ฌ์ค๊ธฐ application.properties ํ์ผ ์ฐ๋ฆฌ๋ application.yml ์ด๋ application.properties ํ์ผ์ ์ด์ฉํด์ ์ค์ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๊ณค ํ๋ค. server: port: 56237 spring: application: name: user-service datasource: url: 232.221.123.33 driver: h2.Driver username: ffowidl123 password: "{cipher}ff01fjosdifj02034j5;jasdj5rq239y48f" ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฐํ๋ application์ ๋ค์ํ ํ๊ฒฝ์์ ๊ฐ๋ฐ๋์ด์ง๋ค. ์ด๋ฅผํ ๋ฉด ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์ํ dev ํ๊ฒฝ, ๊ธฐ๋ฅ ํ ์คํธ๋ฅผ ์ํ test ํ๊ฒฝ, ๊ธฐ๋ฅ ๋ฐฐํฌ๋ฅผ ์ํ production ํ๊ฒฝ ๋ฑ๋ฑ ๊ฐ๊ฐ์ ๋ง.. 2021. 4. 26. [Spring Cloud Gateway] Custom Filter ๋ก ๊ฐ๋จํ Authentiction ํํฐ ๋ง๋ค๊ณ ์ธ์ฆ ์ฒ๋ฆฌํ๊ธฐ ํด๋น ๊ธ์ Spring Cloud Gateway ์ Built-in Route๋ก Predicates์ Filter ์กฐ์ํ๊ธฐ) ์ ์์กดํ๋ ๊ธ์ ๋๋ค. ์ค์ต ํ๊ฒฝ์ ๋ฐ๋ผํ์๋ ค๋ฉด ์ด์ ๊ธ์ ํ์ธํ์๊ธธ ๋ฐ๋๋๋ค. ํ์ฌ ๊ธ์์๋ ๋ชจ๋ ์ธ์ฆ ๊ณผ์ (jwt ํ ํฐ์ ๋ฐ๊ธํ๊ณ payload ์ ๊ฐ์ ๋ฃ๋ ์ค์ ๊ตฌํ)์ ํ์ง ์์ต๋๋ค. ์ด๋ฒ ๊ธ์ ๋ชฉ์ ์ Gateway ์์ Custom Filter ๋ง๋ค์ด์ ํ ํฐ ๊ฒ์ฆ์ ์ํํ๋ ์ ์ฒด์ ์ธ ํฐ ๊ทธ๋ฆผ๋ง ๋ณด์ฌ์ฃผ๋ ค ํ๊ธฐ ๋๋ฌธ์ ์ค์ ์ธ์ฆ์ ๊ตฌํํ๋ ค ํ๋ค๋ฉด ์ฐธ๊ณ ๋ง ํ์๊ธธ ๋ฐ๋๋๋ค. ๋ชฉ์ฐจ Custom Filter AbstractGatewayFilterFactory ์์๊ณผ apply ์ฌ์ ์ ๊ฒ์ฆํ๊ธฐ Custom Filter ์ง๋ ์๊ฐ๊น์ง ์ฐ๋ฆฌ๋ Spring Cloud Gateway๊ฐ ๊ธฐ.. 2021. 4. 25. ์ด์ 1 2 3 4 5 ยทยทยท 7 ๋ค์