๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

๐Ÿ’Š Java & Kotlin & Spring53

[Spring Cloud] Spring Cloud Bus์™€ RabbitMQ ๋ฅผ ์ด์šฉํ•œ Config ์ •๋ณด ๋ฐ˜์˜ํ•˜๊ธฐ ํ•ด๋‹น ๊ธ€์€ Spring Cloud Config ์—์„œ ๋ณ€๊ฒฝ๋œ ์ •๋ณด๋ฅผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค์—์„œ Spring Boot Actuator ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ˜์˜ํ•˜๊ธฐ์— ์˜์กดํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ์‹ค์Šต ํ™˜๊ฒฝ์„ ๋”ฐ๋ผํ•˜์‹œ๋ ค๋ฉด ์ด์ „ ๊ธ€์— ๋‚˜์˜จ ์‹ค์Šต์„ ๋”ฐ๋ผํ•˜์‹œ๊ธธ ๊ถŒ๊ณ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋ชฉ์ฐจ ์ง€๋‚œ ์‹œ๊ฐ„์˜ ์„ค์ • ์ •๋ณด ๋ฐ˜์˜ ๋ฐฉ๋ฒ• Spring Boot Actuator ๋ฅผ ์ด์šฉํ•œ ์„ค์ • ์ •๋ณด ๋ฐ˜์˜ Spring Cloud Bus๋ž€? RabbitMQ๋ž€? Spring Cloud Bus ์‹ค์Šตํ•˜๊ธฐ RabbitMQ ๋“ฑ๋ก Config, Gateway, User Cloud Bus ๋“ฑ๋ก ์ง€๋‚œ ์‹œ๊ฐ„์˜ ์„ค์ • ์ •๋ณด ๋ฐ˜์˜ ๋ฐฉ๋ฒ• ์ง€๋‚œ ์‹œ๊ฐ„ ์šฐ๋ฆฌ๋Š” ์„ค์ • ์ •๋ณด๋ฅผ ์™ธ๋ถ€ Repository ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ๊ฐ๊ฐ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋“ค์ด ํ•ด๋‹น ์„ค์ • ์ •๋ณด๋ฅผ ๊ฐ€์ ธ๊ฐ€๋Š” ์‹ค์Šต์„ ์œ„ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ.. 2021. 5. 20.
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.