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

๐Ÿ’Š Java & Kotlin & Spring/- spring framework +43

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.
Spring Cloud Gateway ์—์„œ Built-in Route๋กœ Predicates์™€ Filter ์กฐ์ž‘ํ•˜๊ธฐ ํ•ด๋‹น ๊ธ€์€ SGC๋ฅผ ์ด์šฉํ•ด API Gateway๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  Eureka Server ๋ฅผ ์ด์šฉํ•ด Load Balancing ํ•˜๊ธฐ) ์— ์˜์กดํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ์‹ค์Šต ํ™˜๊ฒฝ์„ ๋”ฐ๋ผํ•˜์‹œ๋ ค๋ฉด ์ด์ „ ๊ธ€์„ ํ™•์ธํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋ชฉ์ฐจ Spring Cloud Gateway Routes, Predicates, Filters Route Predicates Built-in Factories ์‚ฌ์šฉํ•˜๊ธฐ After Cookie Method Path Route Filters AddRequestHeader, AddResponseHeader AddRequestParameter RewritePath Spring Cloud Gateway ์—์„œ๋Š” Predicates์™€ Filter๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ application.yml ์„ ์ด์šฉํ•œ short.. 2021. 4. 24.
[Spring Boot] ํ„ฐ๋ฏธ๋„์—์„œ ๋นŒ๋“œ ํˆด (Maven, Gradle)๋กœ Spring Boot ์‹คํ–‰์‹œํ‚ค๊ธฐ ์˜ค๋Š˜์€ ํ„ฐ๋ฏธ๋„์—์„œ Springboot Application ์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค ํ•œ๋‹ค. ํ˜„์žฌ Microservice Application ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฃผ๋กœ Eureka์™€ Gateway ๋ฅผ ํ•จ๊ป˜ ๋™์ž‘์‹œํ‚ค๋Š” ์ผ์ด ๋งŽ์•„์กŒ๋‹ค. Service Discovery ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” Eureka ์„œ๋ฒ„๋Š” ๋‹จ์ง€ ์„œ๋น„์Šค์˜ Registry์™€ Discovery ์ƒํ™ฉ์—์„œ ์ผœ๋†“๊ณ ๋งŒ ์žˆ์–ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š”๋ฐ, ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ๋Š” Eureka ์„œ๋ฒ„์™€ Gateway ๋ฅผ Intellij ์—์„œ ์ผœ๋†“๋Š” ๊ฒƒ์ด ๋Œ€๋‹ค์ˆ˜์ด๋‹ค. ํ•˜์ง€๋งŒ Intellij ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–๊ณ ์žˆ๋Š” ์กฐ๊ธˆ ๋ฌด๊ฑฐ์šด IDE ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น PC์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ๋จน์–ด ๋ถˆํŽธํ•œ ์ƒํ™ฉ์ด ์ด๋งŒ์ €๋งŒ์ด ์•„๋‹ˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ ๋งŽ์€ ํ•ด๊ฒฐ ๋ฐฉ.. 2021. 4. 24.