[Spring Cloud] - 2. Github and Configuration Server
์๋ ํ์ธ์. ์ง๋ ์๊ฐ์๋ Spring Cloud์ Configuration Server๋ฅผ ๋ก์ปฌ ํ๊ฒฝ์ ์ค์ ํ์ผ์ ํตํ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ดค์ต๋๋ค.
๋ก์ปฌ ๋ด์ ์๋ ์ค์ ํ์ผ์ ์ง์ ์์ฑํ์ฌ ์ด๋ฅผ Pull ๋ฐฉ์์ผ๋ก ์ด์ฉํ ์ ์๋๋ก ๋ณ๋์ ๊ตฌ์ฑ ์๋ฒ๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋งค์ฐ ํจ์จ์ ์ผ๋ก ์๋ฒ์ ๊ตฌ์ฑ ์ค์ ์ ๋ณ๊ฒฝํ๊ณ ์๋ก์ด ์์ฑํ๋ ๋ฐ ์ฉ์ดํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ, ์ฌ๊ธฐ์ Git์ ์ถ๊ฐํ๋ค๋ฉด ์ด๋จ๊น์? ๊ธฐ์กด์ ์ค์ ์์ ์๋ก์ด ์ค์ ์ผ๋ก ๋ณ๊ฒฝํ ๋ค, ์ด๋ ํ ๋ฌธ์ ์ ์ด ์๊ฒผ๋ค๊ฑฐ๋ ์ด์๊ฐ ๋ฐ์๋๋ค๋ฉด ๋กค๋ฐฑ์ ํ์ฌ์ผ ํฉ๋๋ค. ํ์ง๋ง ํ์ผ ์์คํ ์์ ๋กค๋ฐฑ์ ํ ์ ์๋ ๊ฒ์ Volume Shadow Copy ์ ๋๋ ํน์ RAID ๋ ๋ฒจ์์ ์ ๊ณตํ๋ Snapshot, BRTFS์์ ์ ๊ณตํ๋ Snapshot์ผ ๊ฒ์ ๋๋ค.
ํ์ง๋ง Git์ ์ฌ์ฉํ๋ฉด Revert๋ฅผ ์ด์ฉํด์ ์ฝ๊ฒ ์ด์ ์ปค๋ฐ์ผ๋ก ๋๋ฆด ์ ์๊ณ , ๋ณ๊ฒฝ ์ฌํญ์ ํ ๋ด์์ ๊ณต์ ํ๋ฉฐ ์ฌ๊ธฐ์ Github ๋ฑ์ Pull Request ๊ธฐ๋ฅ์ ์ด์ฉํ๋ค๋ฉด, ๋์ฑ ํจ์จ์ ์ผ๋ก ์ค์ ๊ด๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง ์ ์๊ฒ ์ฃ .
Create Github Repository
๋จผ์ Github์ ๊ฐ API ์๋ฒ์์ ์ฌ์ฉํ ์ค์ ํ์ผ์ ์ ์ฅํ ์ ์๋๋ก ์๋ก์ด ๋ ํฌ์งํฐ๋ฆฌ๋ฅผ ํ ๊ฐ๋ฅผ ๋ง๋ค์ด์ค๋๋ค.
์ด๋ฆ์ ์งง๊ณ ๊ฐ๊ฒฐํ๊ฒ ์ ๋ ๊ฒ์ ๊ถ์ฅ๋๋ฆฝ๋๋ค. ์ ๋ ์์๋ก ์์ฑํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ SpringCloud-config-example์ด๋ผ๋ ์ด๋ฆ์ ์ฌ์ฉํด๋ณด๊ฒ ์ต๋๋ค.
Push Configuration
๋ ํฌ๋ฅผ ๋ง๋ค์์ผ๋ฉด ์ด์ ๊ธ์์ ์ฌ์ฉํ๋ ๊ตฌ์ฑ์ ๊ทธ๋๋ก ์ฌ์ฉํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ ๋ server-configs๋ผ๋ ํด๋๋ฅผ ๋ง๋ค์ด์ MemberService์ NoteService ์ค์ ํ์ผ์ dev์ prod๋ก ๋๋์ด์ ๋ง๋ค์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ฐ๋จํ๊ฒ ์ค์ ํ์ผ์ ์ ๊ฐ์ ธ์ค๋์ง ํ์ธํ๊ธฐ ์ํด์ Message๋์ ์ด๋ค ์ค์ ํ์ผ์ธ์ง๋ง ํ์ธํ ์ ์๋๋ก ์ ์ต๋๋ค.
Run Configuration Server
์ด์ Configuration Server๋ฅผ ์คํํด๋ด ์๋ค. ๊ทธ๋ฐ๋ฐ, ๊ทธ๋ฅ ์คํํ๋ฉด ์๋ฉ๋๋ค. ์๋ํ๋ฉด, ์ฐ๋ฆฌ๋ ์ง๋ ๊ธ์์ Configuration Server์ ์ค์ ์ ๋ก์ปฌ ํ๊ฒฝ ์ค์ ๋ฐ์ ํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฐ๋ผ์ Github์ ์๋ ์ค์ ํ์ผ์ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ด ํ์ผ์ด ์ด๋์ ์๋์ง๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.
# Remote ํ๊ฒฝ ๋ฐฐํฌ ์ค์
spring:
profiles: remote
cloud:
config:
server:
git:
uri: https://github.com/NEONKID/SpringCloud-config-example
search-paths: server-configs
resources/bootstrap-remote.yml
์์ ํ์ผ์ ์์ฑํ์ฌ ์ด๋ ๋ ํฌ์งํฐ๋ฆฌ์ ์๋ ์ด๋ ํด๋์ ์ค์ ํ์ผ์ ๊ฐ์ ธ์ฌ ๊ฒ์ธ์ง๋ฅผ ์์ฑํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ , ๋ง์ง๋ง์ผ๋ก JVM Options์ spring.profiles.active ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๋์ remote๋ก ์ก์์ค์ผ ํฉ๋๋ค. IntelliJ IDEA์์๋ ์๋์ ๊ฐ์ด ์ค์ ํ ์ ์์ต๋๋ค.
Run Configurations์์ Active Profiles๋ฅผ remote๋ก ๋ฐ๊ฟ์ฃผ์๋ฉด ๋ฉ๋๋ค.
Test 1 - CLI
ํ ์คํธ ์ญ์ ์ด์ ํฌ์คํธ์์์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ ์คํธํ ์ ์์ต๋๋ค
๊ฐ๋ฐ ์๋ฒ์ ๋ํ ์ค์ ํ์ผ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ์์๋ก ์์ฑํ์์ต๋๋ค.
๋ง์น๋ฉฐ...
์ฌ๊ธฐ๊น์ง Configuration Server์ ๋ํ ๊ตฌ์ฑ์ ๋ชจ๋ ๊ฒ์ ์ค๋ช ํ์์ต๋๋ค. ์ด ํํธ์์๋ ์ค์ง ์๋ฒ ๊ตฌ์ฑ์ ๋ํ ๊ฒ๋ง ์ด์ผ๊ธฐ ํ์์ต๋๋ค.
๋ค์ ํํธ์์๋ ์ง์ API ์๋ฒ๋ฅผ ๋ง๋ค์ด์ API ์๋ฒ์์ ์ค์ ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋ํ ๊ธ์ ์์ฑํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
'Programming > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring Cloud] - 4. Zuul Gateway๋ฅผ ์ด์ฉํ Routing (0) | 2020.01.17 |
---|---|
[Spring Cloud] - 3. API ์๋ฒ๋ก ์ค์ ๊ฐ ๋ถ๋ฌ์ค๊ธฐ (0) | 2019.12.29 |
[Spring Cloud] - 1. Configuration Server ๊ตฌ์ฑ (0) | 2019.12.22 |
[GP] Spring boot์์ REST API ๊ฐ๋ฐ ์์ํด๋ณด๊ธฐ (0) | 2019.11.08 |
[GP] Spring boot์์ DBMS๋ฅผ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ JPA ๊ณ ๊ธํธ (0) | 2019.11.08 |