๋ํํ ์์ด์ ํธ (Dialogflow CX)๋ ์ฌ๋ฌ Git ์ ๊ณต์ ์ฒด(GitHub, GitLab, Bitbucket ๋ฑ)์ ํตํฉ๋ฉ๋๋ค. ์ด ํตํฉ์ ํตํด ์์ด์ ํธ๋ฅผ JSON์ผ๋ก ๋ด๋ณด๋ด Git ์ ๊ณต์ ์ฒด์ ํธ์(push)ํ๊ณ ์์ด์ ํธ ๋ณต์์ ์ํด Git ์ ๊ณต์ ์ฒด์์ ํ(pull)ํ ์ ์์ต๋๋ค. Git ์ ๊ณต์ ์ฒด์ ํธ์๋ JSON ๋ด๋ณด๋ด๊ธฐ ํ์์ ๋ด๋ณด๋ธ ์์ด์ ํธ์ ํ์ฅ๋ zip ํ์ผ ์ฝํ ์ธ ์ ๋๋ค.
์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ Git ์ ๊ณต์ ์ฒด ์์ค ์ ์ด ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ต๋๋ค.
- ์ฝ๋ ๊ฒํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ด์ ํธ ๋ณ๊ฒฝ์ฌํญ ๊ฒํ
- ๋น๊ต ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ด์ ํธ ์ฐจ์ด์ ๊ฒ์ฌ
- ๋ณํฉ
์ ํ์ฌํญ
๋ค์๊ณผ ๊ฐ์ ์ ํ์ฌํญ์ด ์ ์ฉ๋ฉ๋๋ค.
- [์ด์ ํตํฉ ๋ฒ์ ๋ง ํด๋น] GitHub API๋ ๋จ์ผ ์ปค๋ฐ์์ ์ ๋ฐ์ดํธํ ์ ์๋ ํ์ผ ์๋ฅผ ์ ํํฉ๋๋ค. ํ์ผ ์๊ฐ 500๊ฐ๋ฅผ ์ด๊ณผํ๋ฉด ๋ํํ ์์ด์ ํธ (Dialogflow CX)์์ GitHub๋ก ๋ด๋ณด๋ผ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์์ด์ ํธ๋ฅผ zip์ผ๋ก ๋ด๋ณด๋ด๊ณ ๋จธ์ ์์ Git CLI๋ฅผ ์ฌ์ฉํ์ฌ ์์ด์ ํธ ํ์ผ์ GitHub๋ก ๋ด๋ณด๋ด๋ฉด ๋ฉ๋๋ค. ์ด ์ ํ์ ์ดํ ๋ํํ ์์ด์ ํธ(Dialogflow CX) ์ถ์ ๋ฒ์ ์์ ํด๊ฒฐ๋ ์์ ์ ๋๋ค.
- ๋ํํ ์์ด์ ํธ (Dialogflow CX)์์ ์ด๋ฌํ ์ ์ฅ์์ ์ก์ธ์คํ ์ ์์ผ๋ฏ๋ก GitHub ๋น๊ณต๊ฐ ์ก์ธ์ค ์์ฒด ํธ์คํ ์ ์ฅ์๋ ์ง์๋์ง ์์ต๋๋ค.
- Git ์ ์ฅ์์๋ ์์ด์ ํธ ๋ด๋ณด๋ด๊ธฐ์์ ๋ด๋ณด๋ธ ์์ด์ ํธ ํ์ผ ์ด์ธ์ ํ์ผ์ ํฌํจ๋ ์ ์์ต๋๋ค. ์ ์ฅ์์ ๋ค๋ฅธ ๋ชจ๋ ํ์ผ์ ๋ด๋ณด๋ผ ๋๋ง๋ค ์ญ์ ๋ฉ๋๋ค.
๊ตฌ์ฑ
์ด ๊ธฐ๋ฅ์ ๊ตฌ์ฑํ๋ ค๋ฉด Git ์ ๊ณต์ ์ฒด์์ ์ก์ธ์ค ํ ํฐ์ ํ๋ํ๊ณ , Secret Manager์ ์ ์ฅํ๊ณ , ๋ํํ ์์ด์ ํธ (Dialogflow CX)์ ๋ณด์ ๋น๋ฐ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค.
์ก์ธ์ค ํ ํฐ
Git ์ ๊ณต์ ์ฒด์์ ์ก์ธ์ค ํ ํฐ์ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
GitHub
์ธ๋ถํ๋ ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ค์ ๊ถํ์ ์ก์ธ์คํด์ผ ํฉ๋๋ค.
- ์ ์ฅ์ ๊ถํ > ์ฝํ ์ธ : ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ
- ์ ์ฅ์ ๊ถํ > ๋ฉํ๋ฐ์ดํฐ: ์ฝ๊ธฐ ์ ์ฉ(์ฝํ ์ธ ๊ถํ์ ์ ํํ ํ ์๋์ผ๋ก ์ ํ๋จ)
GitLab
Gitlab ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ์ ํ๋ํด์ผ ํฉ๋๋ค.
Bitbucket
Bitbucket ์ก์ธ์ค ํ ํฐ์ ํ๋ํด์ผ ํฉ๋๋ค.
Secret Manager
์ด์ ์ก์ธ์ค ํ ํฐ์ด ์์ผ๋ฏ๋ก ํ ํฐ์ ๋ณด์ ๋น๋ฐ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
๋ํํ ์์ด์ ํธ (Dialogflow CX) ๊ตฌ์ฑ
๋ํํ ์์ด์ ํธ (Dialogflow CX)์ ๋ํด ์ด ํตํฉ์ ๊ตฌ์ฑํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- Dialogflow ์๋น์ค ์์ด์ ํธ๊ฐ Secret Manager์ ์ก์ธ์ค ํ ํฐ ๋ณด์ ๋น๋ฐ์ ์ก์ธ์คํ ์ ์๋ ๊ถํ์ ์ ๊ณตํฉ๋๋ค.
์์ด์ ํธ ํ๋ก์ ํธ์
gcp-sa-dialogflow.iam.gserviceaccount.com
์๋น์ค ๊ณ์ ์Secret Manager Secret Accessor
์ญํ ์ ์ ๊ณตํฉ๋๋ค. Secret Manager ๋ณด์ ๋น๋ฐ์ ๋ํ ์ก์ธ์ค ๊ถํ ๋ถ์ฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. - Git ํตํฉ ๊ตฌ์ฑ์ ์ฝ๋๋ค.
- ๋ํํ ์์ด์ ํธ ์ฝ์
- ์ค๋ฅธ์ชฝ ์๋จ์ ์๋ ์ค์ ์์ด์ฝ์ ํด๋ฆญํ์ฌ ์ค์ ํ์๋ฅผ ์ฝ๋๋ค.
- ์๋๋ก ์คํฌ๋กคํ์ฌ Git ํตํฉ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- Dialogflow CX ์ฝ์
- ๊ด๋ฆฌ ํญ์ ํด๋ฆญํฉ๋๋ค.
- Git ์น์ ์์ Git์ ํด๋ฆญํฉ๋๋ค.
- ์๋ก ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ํํ ์์ด์ ํธ ์ฝ์
- ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋ค์์ ์
๋ ฅํฉ๋๋ค.
- GitHub ์ฐ๊ฒฐ์ ํ์ ์ด๋ฆ.
- Git ์ ์ฅ์ URL (์:
https://github.com/<path-to-repo>.git
) - ์์ด์ ํธ๊ฐ ์ํธ์์ฉํ Git ๋ธ๋์น๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์์ ์๋ ๋ณํ ์์ด์ฝ์ ํด๋ฆญํ์ฌ ๋ธ๋์น๋ฅผ ๊ธฐ๋ณธ ๋ธ๋์น๋ก ์ง์ ํ ์ ์์ต๋๋ค.
- ์ก์ธ์ค ํ ํฐ ๋ณด์ ๋น๋ฐ์
๋๋ค. ํน์ ๋ฒ์ ์ ๊ฒฝ์ฐ
projects/*/secrets/*/versions/*
, ์ต์ ๋ฒ์ ์ ๊ฒฝ์ฐprojects/*/secrets/*/versions/latest
ํ์์ผ๋ก ์์ฑ๋ ๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ๋๋ค.
- ์ฐ๊ฒฐ์ ํด๋ฆญํฉ๋๋ค.
- Git ์๋น์ค๊ฐ ์ค๋น๋๋ ๋ฐ 1๋ถ ์ ๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ์ฝ์์ ์๋ฆผ์ด ํ์๋ฉ๋๋ค.
- ๋ค์์ ์
๋ ฅํฉ๋๋ค.
๋ด๋ณด๋ด๊ธฐ ๋ฐ ๋ณต์
๊ตฌ์ฑ ํ์๋ ์์ด์ ํธ๋ฅผ Git์ผ๋ก ํธ์ํ๊ฑฐ๋ Git์์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
๋ด๋ณด๋ด๊ธฐ ๋ฒํผ์ ์์ด์ ํธ๋ฅผ ๋ด๋ณด๋ด๊ณ Git ๋ธ๋์น ๋๋กญ๋ค์ด์์ ์ ํํ Git ๋ธ๋์น์ ์ปค๋ฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ์ปค๋ฐ์ ํน์ ๋ณ๊ฒฝ์ฌํญ์ด ์๋ ์ ์ฒด ์์ด์ ํธ๋ก ๊ตฌ์ฑ๋๋ฉฐ ์ ์ฅ์์ ๊ธฐ์กด ํ์ผ์ ์ญ์ ํฉ๋๋ค.
Dialogflow ๋ฆฌ๋ ์ญํ ์ด ์๋ ์ฌ์ฉ์๋ Git ์ ์ฅ์๋ก ํธ์ํ ์ ์์ต๋๋ค. ์์น ์๋ ํธ์๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ์ด๋ฌํ ์์ด์ ํธ๋ฅผ ์ฝ๊ธฐ ์ ์ฉ ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ์ผ๋ก ๊ตฌ์ฑํฉ๋๋ค.
๋ณต์ ๋ฒํผ์ Git ๋ธ๋์น ๋๋กญ๋ค์ด์์ ์ ํํ Git ๋ธ๋์น์์ ์์ด์ ํธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ด ๋ฐ์ดํฐ์์ ๋ํํ ์์ด์ ํธ (Dialogflow CX)๋ฅผ ๋ณต์ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๋ฐฉ์์ ๋ชจ๋ ์์ด์ ํธ ๋ณต์๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์์ด์ ํธ๋ฅผ ๋ฎ์ด์๋๋ค.
์ฌ์ฉ ์ฌ๋ก
๋ค์ ์์์์๋ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ํ๋ก๋์ ์์ด์ ํธ์ ๋ค์ํ ์์ด์ ํธ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
์์ด์ ํธ์์ ๋ค์ Git ๋ธ๋์น๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
- Prod: ํ๋ก๋์ ์์ด์ ํธ๋ฅผ ์ํ ๋ธ๋์น
- Dev1: ์์ด์ ํธ ๊ฐ๋ฐ์ ์ํ ๋ธ๋์น
- Dev2: ์์ด์ ํธ ๊ฐ๋ฐ์ ์ํ ๋ ๋ค๋ฅธ ๋ธ๋์น
์ฌ์ฉ์ 1์ด ์์ด์ ํธ ๋ณ๊ฒฝ์ ์ ์ํ๋ ค๊ณ ํ๋ฉฐ ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
- ํ๋ก๋์ ์์ด์ ํธ๋ฅผ ์ ์์ด์ ํธ๋ก ๋ด๋ณด๋ ๋๋ค.
- ์ด ์์ด์ ํธ ์ฌ๋ณธ์ ์ํ๋ ๋๋ก ๋ณ๊ฒฝํฉ๋๋ค.
- ๋ณ๊ฒฝ์ฌํญ์ ํ ์คํธํฉ๋๋ค.
- ๋ณ๊ฒฝ๋ ์์ด์ ํธ๋ฅผ Dev1 ๋ธ๋์น๋ก ํธ์ํฉ๋๋ค.
- Prod ๋ธ๋์น์ ๋ํ ๋ณํฉ ์์ฒญ์ ๋ง๋ญ๋๋ค.
์ฌ์ฉ์ 2๊ฐ ์์ด์ ํธ ๋ณ๊ฒฝ์ ์ ์ํ๋ ค๊ณ ํ๋ฉฐ ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
- ํ๋ก๋์ ์์ด์ ํธ๋ฅผ ์ ์์ด์ ํธ๋ก ๋ด๋ณด๋ ๋๋ค.
- ์ด ์์ด์ ํธ ์ฌ๋ณธ์ ์ํ๋ ๋๋ก ๋ณ๊ฒฝํฉ๋๋ค.
- ๋ณ๊ฒฝ์ฌํญ์ ํ ์คํธํฉ๋๋ค.
- ๋ณ๊ฒฝ๋ ์์ด์ ํธ๋ฅผ Dev2 ๋ธ๋์น๋ก ํธ์ํฉ๋๋ค.
- Prod ๋ธ๋์น์ ๋ํ ๋ณํฉ ์์ฒญ์ ๋ง๋ญ๋๋ค.
์ฌ์ฉ์ 3์ด ๋ ์ฌ์ฉ์์ ์์ฒญ ๋ณํฉ์ ๊ฒํ ํ๊ณ ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
- ์ถฉ๋์ ํด๊ฒฐํฉ๋๋ค.
- ์น์ธ๋ ๋ณ๊ฒฝ์ฌํญ์ ์ปค๋ฐํฉ๋๋ค.
- ํ๋ก๋์ Git ๋ธ๋์น๋ฅผ ํ๋ก๋์ ๋ํํ ์์ด์ ํธ (Dialogflow CX) ์์ด์ ํธ๋ก ๋ณต์ํฉ๋๋ค.