์ด ํ์ด์ง์์๋ ๋ฒ์ ์ ์ด๋ฅผ ์ํด Git๊ณผ ํตํฉํ ๋ ํ๋ก์ ํธ ์์๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
ํ๋ก์ ํธ ์ค์
ํ๋ก์ ํธ ์ค์ ์ ๋ณด๋ ค๋ฉด ํ๋ก์ ํธ๋ฅผ ์ด๊ณ Looker IDE ์์ด์ฝ ๋ฉ๋ด์์ ์ค์ ์์ด์ฝ์ ์ ํํฉ๋๋ค.
์ฌ๊ธฐ์์ 3๊ฐ์ ํ๋ก์ ํธ ์ค์ ํญ์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
๊ตฌ์ฑ
ํ๋ก์ ํธ ์ค์ ํ์ด์ง์ ๊ตฌ์ฑ ํญ์์ ํ๋ก์ ํธ ๊ตฌ์ฑ ํ์ด์ง๊ฐ ์ด๋ฆฝ๋๋ค. ํ๋ก์ ํธ ๊ตฌ์ฑ ํ์ด์ง์์ ๋ค์ ์ค์ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- ์ด๋ฆ: ํ๋ก์ ํธ์ ์ด๋ฆ์ ๋๋ค. ํ ์คํธ๋ฅผ ์์ ํ ํ ํ๋ก์ ํธ ๊ตฌ์ฑ ์ ์ฅ ๋ฒํผ์ ํด๋ฆญํ์ฌ ํ๋ก์ ํธ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ํ๋ก์ ํธ ์ ๋ณด ์ก์ธ์ค ๋ฐ ์์ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
Git ํ๋ก๋์ ๋ธ๋์น ์ด๋ฆ: ํ๋ก์ ํธ์ ๊ฐ๋ฐ ๋ธ๋์น์ ๋ณํฉ ๋์์ผ๋ก ์ฌ์ฉํ Git ๋ธ๋์น ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. Git ์ ์ฅ์์ Git ๋ธ๋์น๊ฐ ์์ด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ด ํ์ด์ง์ Git ํ๋ก๋์ ๋ธ๋์น ์ด๋ฆ ์น์ ์ ์ฐธ์กฐํ์ธ์.
์ฝ๋ ํ์ง: ๊ฐ๋ฐ์๊ฐ ํ๋ก์ ํธ์ ๋ณ๊ฒฝ์ฌํญ์ ์ปค๋ฐํ๊ธฐ ์ ์ ํ๋ก์ ํธ์์ LookML ๊ฒ์ฌ๊ธฐ๋ฅผ ์คํํด์ผ ํ๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ฝ๋ ํ์ง์๋ ๋ค์ ์ต์ ์ด ์์ต๋๋ค.
- ์ปค๋ฐ ์ ์ ์ค๋ฅ ๋ฐ ๊ฒฝ๊ณ ์์ ํ์: Looker ๊ฐ๋ฐ์๋ LookML ๊ฒ์ฌ๊ธฐ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์คํํ๊ณ ๋ชจ๋ ์ค๋ฅ ๋ฐ ๊ฒฝ๊ณ ๋ฅผ ํด๊ฒฐํ ํ์๋ง ๋ณ๊ฒฝ์ฌํญ์ ์ปค๋ฐํ ์ ์์ต๋๋ค. ์ด ์ค์ ์ ๊ถ์ฅ ์ค์ ์ ๋๋ค.
- ์ปค๋ฐํ๊ธฐ ์ ์ ์ค๋ฅ ์์ ๋ง ํ์: Looker ๊ฐ๋ฐ์๋ LookML ๊ฒ์ฌ๊ธฐ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์คํํ๊ณ ๋ชจ๋ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ ํ์๋ง ๋ณ๊ฒฝ์ฌํญ์ ์ปค๋ฐํ ์ ์์ต๋๋ค. ๊ฒฝ๊ณ ๋ง ์์ ๋๋ ๊ฐ๋ฐ์๊ฐ ๋ณ๊ฒฝ์ฌํญ์ ์ปค๋ฐํ ์ ์์ต๋๋ค. ๊ถ์ฅ๋์ง๋ ์์ง๋ง ์ด ์ต์ ์ Looker ์ ๋ฐ์ดํธ ํ ์๋ ์ค์ธ LookML์ ์ ๊ฒฝ๊ณ ๊ฐ ๋์ ๋ ๊ฒฝ์ฐ์ ๊ฐ์ด ์ ์ฉํ ์ ์์ต๋๋ค.
- ์์๋ ์ฝ๋ ์ปค๋ฐ ํ์ฉ: Looker ๊ฐ๋ฐ์๋ LookML ๊ฒ์ฌ๊ธฐ๋ฅผ ์คํํ์ง ์๊ณ ๋ LookML์ ์ค๋ฅ ๋๋ ๊ฒฝ๊ณ ๊ฐ ์๋์ง์ ๊ด๊ณ์์ด ๋ณ๊ฒฝ์ฌํญ์ ์ปค๋ฐํ ์ ์์ต๋๋ค. ์ด ์ต์ ์ LookML์ด ์๋ํ์ง ์๊ฑฐ๋ ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ ์ ์์ผ๋ฏ๋ก ๊ถ์ฅ๋์ง ์์ต๋๋ค.
์ด ํ๋ก์ ํธ๋ฅผ ํ๋ก๋์ ์ ๋ฐฐํฌํ๊ธฐ ์ ์ ๋ฐ์ดํฐ ํ ์คํธ ํต๊ณผ ํ์: LookML ํ๋ก์ ํธ์ ํ๋ ์ด์์
test
ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ณ๊ฒฝ์ฌํญ์ ๋ฐฐํฌํ๊ธฐ ์ ์ ๊ฐ๋ฐ์๊ฐ ๋ฐ์ดํฐ ํ ์คํธ๋ฅผ ์คํํด์ผ ํฉ๋๋ค. ๋ฐ์ดํฐ ํ ์คํธ๋ฅผ ํต๊ณผํ๋ฉด IDE๋ฅผ ํตํด ๊ฐ๋ฐ์๊ฐ ๋ณ๊ฒฝ์ฌํญ์ ํ๋ก๋์ ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค. LookML ํ๋ก์ ํธ์ ๋ฐ์ดํฐ ํ ์คํธ ์ค์ ์ ๋ํ ์์ธํ ๋ด์ฉ์test
ํ๋ผ๋ฏธํฐ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์. ํ๋ก์ ํธ์์ ๋ฐ์ดํฐ ํ ์คํธ๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ฒ์ ์ ์ด ๋ฐ ๋ฐฐํฌ ์ฌ์ฉ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์. ๊ธฐ๋ณธ์ ์ผ๋ก ์ LookML ํ๋ก์ ํธ์๋ ์ด ํ๋ก์ ํธ๋ฅผ ํ๋ก๋์ ์ ๋ฐฐํฌํ๊ธฐ ์ ์ ๋ฐ์ดํฐ ํ ์คํธ๋ฅผ ํต๊ณผํด์ผ ํฉ๋๋ค ์ต์ ์ด ์ฌ์ฉ ์ค์ ๋์ด ์์ต๋๋ค.Git ํตํฉ: Git ์ ๊ณต์ ์ฒด์์ ํตํฉ ์์ค์ ์ง์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Git ํตํฉ ์ต์ ์ ์ฐธ์กฐํ์ธ์.
๊ณ ๊ธ ๋ฐฐํฌ ๋ชจ๋ ์ฌ์ฉ ์ค์ : ์ฌ์ฉ ์ค์ ํ๋ฉด ์ฌ์ฉ์๊ฐ SHA, ํ๊ทธ, ๋ธ๋์น๋ฅผ ํ๋ก๋์ ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๊ณ ๊ธ ๋ฐฐํฌ ๋ชจ๋๊ฐ ์ฌ์ฉ ์ค์ ๋ ๋ฒ์ ์ ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธ ์ค๋ช ์ ๊ณ ๊ธ ๋ฐฐํฌ ๋ชจ๋ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
์นํ ๋ฐฐํฌ ๋ณด์ ๋น๋ฐ: Looker ์ธ์คํด์ค์์ ํ๋ก๋์ ์ ๋ณ๊ฒฝ์ฌํญ์ ๋ฐฐํฌํ๊ธฐ ์ํ ์ธ์ฆ์ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์นํ ๋ฐฐํฌ ๋ณด์ ๋น๋ฐ ๊ตฌ์ฑ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
Git ์ฐ๊ฒฐ ์ฌ์ค์ ์ด ๋ฒํผ์ ์ฌ์ฉํ๋ฉด Git ์ ์ฅ์์ ์ฐ๊ฒฐ ์ค์ ์ ์ ๋ฐ์ดํธํ ์ ์๋ Git ๊ตฌ์ฑ ์ฐฝ์ด ์ด๋ฆฝ๋๋ค.
Git ์ฐ๊ฒฐ์ ์ฌ์ค์ ํ๋ฉด ๊ธฐ๋ณธ ๋ธ๋์น์ Git ๊ธฐ๋ก์ด ๋ณด์กด๋ฉ๋๋ค. ๋ํ ๊ฐ๋ฐ ๋ชจ๋๋ฅผ ๋๊ธฐํํ๋ฉด ๊ฐ Looker ๊ฐ๋ฐ์์ ๊ฐ์ธ ๋ธ๋์น์ ๊ธฐ๋ก๋ ๋ณด์กด๋ฉ๋๋ค. ๋ชจ๋ ๋ธ๋์น์ ๊ธฐ๋ก์ ๋ณด์กดํ๋ ค๋ฉด ์ Git ์ ์ฅ์๋ก ๋ง์ด๊ทธ๋ ์ด์ ๊ถ์ฅ์ฌํญ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ๋ก์ ํธ ์ญ์ : ์ด ๋ฒํผ์ ํ๋ก์ ํธ๋ฅผ ์ญ์ ํ์ฌ Looker ์ธ์คํด์ค์ ๋ชจ๋ ๊ฐ๋ฐ ๋ฐ ํ๋ก๋์ ํ๊ฒฝ์ ์๋ ํ๋ก์ ํธ์ ๋ชจ๋ LookML์ ์ญ์ ํฉ๋๋ค.
Git ์์ฝ: ์ด ์น์ ์๋ ํ๋ก์ ํธ์ Git ๊ตฌ์ฑ๊ณผ ํ์ฌ ์ฌ์ฉ์์ Git ๋ธ๋์น ์ ๋ณด๊ฐ ํ์๋ฉ๋๋ค.
Git ํ๋ก๋์ ๋ธ๋์น ์ด๋ฆ
๊ธฐ๋ณธ Looker Git ํตํฉ์ผ๋ก ๋ชจ๋ Looker ๊ฐ๋ฐ์๋ ๋ณ๊ฒฝ์ฌํญ์ master
๋ผ๋ ๊ธฐ๋ณธ ๋ธ๋์น์ ๋ณํฉํฉ๋๋ค. Git ํ๋ก๋์
๋ธ๋์น ์ด๋ฆ ํ๋๋ฅผ ์ฌ์ฉํ์ฌ Looker์์ Looker ๊ฐ๋ฐ์์ ๋ธ๋์น๊ฐ ๋ณํฉ๋๋ ํ๊ฒ ๋ธ๋์น๋ก ์ฌ์ฉํด์ผ ํ๋ ๋ธ๋์น๋ฅผ Git ์ ์ฅ์์์ ์ง์ ํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ Git ์ํฌํ๋ก ๋ฐ ๊ณ ๊ธ Git ๊ตฌํ ๊ธฐํ ์ต์
์ ๋ฒ์ ์ ์ด ๋ฐ ๋ฐฐํฌ ์ฌ์ฉ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ธฐ์กด ํ๋ก์ ํธ์ ๊ฒฝ์ฐ Git ํ๋ก๋์ ๋ธ๋์น ์ด๋ฆ์ ๋ณ๊ฒฝํ๊ธฐ ์ ์ ๋ค์์ ์ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- Looker ํ๋ก์ ํธ์ ๋ชจ๋ ๊ฐ๋ฐ์์๊ฒ ๋ณ๊ฒฝ์ฌํญ์ ์ปค๋ฐํ๊ณ ๋ธ๋์น๋ฅผ ๊ธฐ์กด ํ๋ก๋์ ๋ธ๋์น์ ๋ณํฉํ ํ Git ํ๋ก๋์ ๋ธ๋์น ์ด๋ฆ์ด ์ ๋ฐ์ดํธ๋๊ณ Looker ํ๋ก์ ํธ ๊ตฌ์ฑ์ ์ ์ฅ๋ ๋๊น์ง ์์ ์ ์ผ์์ค์งํ๋๋ก ์์ฒญํฉ๋๋ค.
- ํ๋ก์ ํธ์ ํตํฉ๋ pull ์์ฒญ์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ์ด๋ ค ์๋ pull ์์ฒญ์ ์ ์ ํ ์๋ฃํ๊ณ ๋ณํฉํฉ๋๋ค.
- ์ ์ฅ์์ ์ ๋ธ๋์น๋ฅผ ๋ง๋ค๊ฑฐ๋, ๊ธฐ์กด ๊ธฐ๋ณธ Git ๋ธ๋์น ์ด๋ฆ์ ๋ฐ๊พธ๋ ๊ฒฝ์ฐ, ๋๋ Looker๋ฅผ ๋ณํฉ ๋์ ๋ธ๋์น๋ก ์ฌ์ฉํ ์ ์๋๋ก ๋ธ๋์น์ ํ์ํ ๋ชจ๋ ์์ ๊ณผ ๊ฐ์ด Git ์ ๊ณต์ ์ฒด ์ธก์์ ํ์ํ ์ค๋น๋ฅผ ์ํํฉ๋๋ค. ์ต์ํ ์ฌ์ฉํ๋ ค๋ ๋ธ๋์น๊ฐ Git ์ ์ฅ์์ ๊ธฐ์กด ๋ธ๋์น์ธ์ง ํ์ธํด์ผ ํฉ๋๋ค.
ํ๋ก์ ํธ์์ ๊ฐ๋ฐ ๋ธ๋์น์ ๋ํด ๋ณํฉ ๋์์ผ๋ก ์ฌ์ฉํ๋ Git ๋ธ๋์น๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- Looker IDE ์์ด์ฝ ๋ฉ๋ด์์ ์ค์ ์์ด์ฝ์ ์ ํํ์ฌ ํ๋ก์ ํธ ์ค์ ์ ํ์ํฉ๋๋ค. ๊ตฌ์ฑ ํญ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฆฝ๋๋ค.
- Git ํ๋ก๋์ ๋ธ๋์น ์ด๋ฆ ํ๋์ Looker ํ๋ก์ ํธ์ ํ๋ก๋์ ๋ธ๋์น๋ก ์ฌ์ฉํ Git ๋ธ๋์น์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
- ํ๋ก์ ํธ ๊ตฌ์ฑ ์ ์ฅ ๋ฒํผ์ ์ ํํ์ฌ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฅํฉ๋๋ค.
์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ ์น์ ์์๋ ๋น๊ณต๊ฐ ์๊ฒฉ ์ ์ฅ์์ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ค๋ฅธ ํ๋ก์ ํธ์์ ํ์ผ ๊ฐ์ ธ์ค๊ธฐ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ธ๋์น ๊ด๋ฆฌ
ํ๋ก์ ํธ ์ค์ ํ์ด์ง์ ๋ธ๋์น ๊ด๋ฆฌ ํญ์์ ํ๋ก์ ํธ์ ์ฐ๊ฒฐ๋ ๋ชจ๋ Git ๋ธ๋์น๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ฒ์ ์ ์ด ๋ฐ ๋ฐฐํฌ ์ฌ์ฉ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
Git ํตํฉ ์ต์
Git ์ฐ๊ฒฐ์ ์ค์ ํ๋ฉด Looker๊ฐ ๋ฒ์ ์ ์ด ์ฌ์ฉ ๋ฐ ๋ฐฐํฌ ๋ฌธ์ ํ์ด์ง์ ์ค๋ช ๋ ๋๋ก GitML์ ์ฌ์ฉํ์ฌ LookML ์์ค ํ์ผ์ ๊ด๋ฆฌํฉ๋๋ค.
Looker ๊ด๋ฆฌ์๋ ํ๋ก์ ํธ ์ค์ ํจ๋์ ๊ตฌ์ฑ ํญ์ ์๋ Git ํตํฉ ์ต์ ์ ์ฌ์ฉํ์ฌ Looker์ Git ํตํฉ์ ์ํ ์ถ๊ฐ ์ต์ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ ์ค์ง: Looker์ Git ์ ๊ณต์ ์ฒด์ ์ธํฐํ์ด์ค์ ์ฐ๊ฒฐ๋๋ ์ธ๋ถ ๋งํฌ๊ฐ ํ์๋์ง ์์ต๋๋ค.
- ๋งํฌ ํ์: ๊ฐ๋ฐ์๊ฐ Git ์ ๊ณต์ ์ฒด ์ธํฐํ์ด์ค์์ ํ๋ก์ ํธ๋ฅผ ๋ณผ ์ ์๋๋ก Looker์์ Git ์ ๊ณต์ ์ฒด ์ธํฐํ์ด์ค์ ์ฐ๊ฒฐ๋๋ ์ธ๋ถ ๋งํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ํ ๊ฐ๋ฐ์๊ฐ Git ์ ๊ณต์ ์ฒด ์ธํฐํ์ด์ค์์ ํ์ผ ๊ธฐ๋ก ๋ฐ Git ์ฑ ์ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๋๋ก ๊ฐ ํ๋ก์ ํธ ํ์ผ์ ๋งํฌ๋ ์ ๊ณตํฉ๋๋ค. ๋งํฌ์ ๋ํ ์์ธ ์ค๋ช ์ Git ์ ๊ณต์ ์ฒด์ ์ธ๋ถ ๋งํฌ ํตํฉ ์น์ ์ ์ฐธ๊ณ ํ์ธ์.
- pull ์์ฒญ ๊ถ์ฅ: Git ์ ๊ณต์ ์ฒด ์ธํฐํ์ด์ค์ ๋ํ ์ธ๋ถ ๋งํฌ๋ฅผ ์ ๊ณตํ๋ ๊ฒ ์ธ์๋ Looker๋ ๊ฐ๋ฐ์๊ฐ pull ์์ฒญ์ ์ ์ถํ ์ ์๋ ์ต์ ์ ์ ๊ณตํ๋ฏ๋ก ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ๋ณ๊ฒฝ์ฌํญ์ ํ๋ก์ ํธ์ ์ถ๊ฐํ๊ธฐ ์ ์ ์น์ธํ ์ ์์ต๋๋ค. ์ค์ ์ ๋ํ ์์ธ ์ค๋ช ์ ํ๋ก์ ํธ์ ๋ํ pull ์์ฒญ ํตํฉ ์น์ ์ ์ฐธ๊ณ ํ์ธ์.
- pull ์์ฒญ ํ์: pull ์์ฒญ ๊ถ์ฅ๊ณผ ๋์ผํ๋ LookML ๊ฐ๋ฐ์๊ฐ pull ์์ฒญ์ ์ด์ด ํ๋ก์ ํธ์ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ถํด์ผ ํ๋ค๋ ์ ์ด ๋ค๋ฆ ๋๋ค. ์ค์ ์ ๋ํ ์์ธ ์ค๋ช ์ ํ๋ก์ ํธ์ ๋ํ pull ์์ฒญ ํตํฉ ์น์ ์ ์ฐธ๊ณ ํ์ธ์.
Git ํตํฉ ์ค์ ์ ์ ์ฅํ๋ ค๋ฉด ๋ฐฐํฌ ์น์ ์์ ํ๋ก์ ํธ ๊ตฌ์ฑ ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
Git ์ ๊ณต์ ์ฒด์ ์ธ๋ถ ๋งํฌ ํตํฉ
์ถ๊ฐ Git ํตํฉ ์ต์ (๋งํฌ ํ์, pull ์์ฒญ ๊ถ์ฅ, pull ์์ฒญ ํ์)์ ์ฌ์ฉ ์ค์ ํ ๊ฒฝ์ฐ Looker์์ Git ์ ๊ณต์ ์ฒด ์ธํฐํ์ด์ค์ ์ธ๋ถ ๋งํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ์ธ๋ถ ๋งํฌ๋ฅผ ์ฌ์ฉํ๋ฉด Git ์ ๊ณต์ ์ฒด ์ฌ์ดํธ์ ์ ๋ธ๋ผ์ฐ์ ํญ์ด ์ด๋ฆฝ๋๋ค.
์ด๋ฌํ ์ธ๋ถ ๋งํฌ๋ฅผ ๋ณด๋ ค๋ฉด ๊ฐ๋ฐ์์๊ฒ Git ์ ๊ณต์ ์ฒด๊ฐ ์์ด์ผ ํ๋ฉฐ ํ๋ก์ ํธ์ Git ์ ์ฅ์์ ์ก์ธ์คํ ์ ์์ด์ผ ํฉ๋๋ค.
๊ฐ LookML ํ์ผ์ ์ 3๊ฐ๋ก ๋ ํ์ผ ์ต์ ๋ฉ๋ด์์ Looker๋ ํ์ผ์ ๋ณด๊ณ , ํ์ผ์ Git ์ฑ ์ ์ ๋ณด๋ฅผ ํ์ธํ๊ณ , ํ์ผ์ ์ปค๋ฐ ๊ธฐ๋ก์ ๋ณผ ์ ์๋ Git ์ ๊ณต์ ์ฒด ์ฌ์ดํธ ๋งํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
Git ์์
ํจ๋์์ <Git provider>
์์ ํ๋ก์ ํธ ๋ณด๊ธฐ ์ต์
์ ์ฌ์ฉํ์ฌ Git ์ ๊ณต์
์ฒด์ ์ฌ์ดํธ์์ ํ๋ก์ ํธ ํ์ผ์ ์ด ์๋ ์์ต๋๋ค.
ํ๋ก์ ํธ์ ๋ํ pull ์์ฒญ ํตํฉ
๊ธฐ๋ณธ Looker Git ํตํฉ์ ์ฌ์ฉํ์ฌ Looker ๊ฐ๋ฐ์๋ ๋ณ๊ฒฝ์ฌํญ์ ๊ฐ๋ฐ ๋ธ๋์น์ ์ปค๋ฐํ ํ ๊ฐ๋ฐ ๋ธ๋์น๋ฅผ production ๋ธ๋์น์ ๋ณํฉํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ Looker ํ๊ฒฝ์ ๋ฐฐํฌํ ๋ Looker๋ production ๋ธ๋์น์์ ์ต์ ์ปค๋ฐ์ ์ฌ์ฉํฉ๋๋ค. ๊ธฐ๋ณธ Git ์ํฌํ๋ก ๋ฐ ๊ณ ๊ธ Git ๊ตฌํ ๊ธฐํ ์ต์ ์ ๋ฒ์ ์ ์ด ๋ฐ ๋ฐฐํฌ ์ฌ์ฉ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
Looker ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐ ๋ธ๋์น๋ฅผ Looker ํ๋ก๋์ ๋ธ๋์น๋ก ๋ณํฉํ๋ ๋์ Pull ์์ฒญ ๊ถ์ฅ ๋๋ Pull ์์ฒญ ํ์ ์ต์ ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
- pull ์์ฒญ ๊ถ์ฅ: ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐ ๋ธ๋์น์ ๋ณ๊ฒฝ์ฌํญ์ ์ปค๋ฐํ๋ฉด Looker IDE์ Git ๋ฒํผ์ด ๊ฐ๋ฐ์์๊ฒ ๊ฐ๋ฐ ๋ธ๋์น๋ฅผ ํ๋ก๋์ ๋ธ๋์น๋ก ๋ณํฉํ๋ pull ์์ฒญ์ ์ด๋ผ๋ ๋ฉ์์ง๋ฅผ ํ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ฐ๋ฐ์๋ ๋ค๋ฅธ Looker ๊ฐ๋ฐ์๊ฐ Git ์ ๊ณต์ ์ฒด์ ์น ์ธํฐํ์ด์ค์์ ๊ฒํ ํ๊ณ ์น์ธํ ์ ์๋๋ก pull ์์ฒญ์ ์ด ์ ์์ต๋๋ค. ๋๋ ๊ทธ ๋์ ๊ฐ๋ฐ์๊ฐ Git ์์ ํจ๋์ ํ๋ก๋์ ์ ๋ฐฐํฌ ์ต์ ์ ์ฌ์ฉํ์ฌ pull ์์ฒญ ๋ง๋ค๊ธฐ๋ฅผ ๊ฑด๋๋ฐ๊ณ ๋ณ๊ฒฝ์ฌํญ์ ํ๋ก๋์ ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค. (ํ๋ก์ ํธ์ ๊ณ ๊ธ ๋ฐฐํฌ ๋ชจ๋๊ฐ ์ฌ์ฉ ์ค์ ๋ ๊ฒฝ์ฐ ํ๋ก๋์ ์ ๋ฐฐํฌ ์ต์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.)
- pull ์์ฒญ ํ์: ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐ ๋ธ๋์น์ ๋ณ๊ฒฝ์ฌํญ์ ์ปค๋ฐํ๋ฉด Looker IDE์ Git ๋ฒํผ์ด ๊ฐ๋ฐ์์๊ฒ pull ์์ฒญ์ ์ด๋ผ๋ ๋ฉ์์ง๋ฅผ ํ์ํฉ๋๋ค. ๊ฐ๋ฐ์๋ ๊ฐ๋ฐ ๋ธ๋์น๋ฅผ ํ๋ก๋์ ๋ธ๋์น๋ก ๋ณํฉํ๊ธฐ ์ํด pull ์์ฒญ์ ์ด์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ค๋ฅธ Looker ๊ฐ๋ฐ์๊ฐ Git ์ ๊ณต์ ์ฒด์ ์น ์ธํฐํ์ด์ค์์ pull ์์ฒญ์ ๊ฒํ ํ๊ณ ์น์ธํ ์ ์์ต๋๋ค.
Looker๋ ๋ค์ Git ์ ๊ณต์ ์ฒด์ ๋ํ pull ์์ฒญ ํตํฉ์ ์ง์ํฉ๋๋ค.
- GitHub
- GitLab
- Bitbucket Cloud
- Bitbucket ์๋ฒ(์ด์ ๋ช ์นญ 'Stash')
Looker์์ pull ์์ฒญ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ถ๊ฐ์ ์ธ ์ฐธ๊ณ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
pull ์์ฒญ์ ์ด๋ ค๋ฉด ๊ฐ๋ฐ์๊ฐ Git ์ ๊ณต์ ์ฒด์ ๊ณ์ ์ด ์์ด์ผ ํ๋ฉฐ ํ๋ก์ ํธ์ Git ์ ์ฅ์์ ์ก์ธ์คํ ์ ์์ด์ผ ํฉ๋๋ค.
์ธ์คํด์ค์ IP ํ์ฉ ๋ชฉ๋ก ๊ธฐ๋ฅ์ด ์ฌ์ฉ ์ค์ ๋ ๊ฒฝ์ฐ pull ์์ฒญ์ LookML ํ๋ก์ ํธ์ ํตํฉํ๋ ค๋ฉด Git ์ ๊ณต์ ์ฒด๊ฐ ์์๋ฐ์ด๋ ์์ฒญ์ ์ํํ๋ IP ์ฃผ์ ๋ฒ์๋ฅผ ํ์ฉ ๋ชฉ๋ก์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ์ฌ GitHub IP ์ฃผ์๋ GitHub ๋ณ๊ฒฝ ๋ก๊ทธ์ ํ์๋ฉ๋๋ค. IP๋ ๋ณ๊ฒฝ๋ ์ ์์ผ๋ฉฐ Git ์ ๊ณต์ ์ฒด๊ฐ ๋ค๋ฅด๋ฉด IP๋ ๋ค๋ฆ ๋๋ค.
๊ณ ๊ธ ๋ฐฐํฌ ๋ชจ๋๋ฅผ ์ฌ์ฉ ์ค์ ํ ๊ฒฝ์ฐ ๊ณ ๊ธ ๋ฐฐํฌ ๋ชจ๋์์๋ ๋ณํฉ ๊ธฐ๋ฅ๊ณผ ๋ฐฐํฌ ๊ธฐ๋ฅ์ด ๋ถ๋ฆฌ๋๋ฏ๋ก ํตํฉ pull ์์ฒญ์ผ๋ก ํ๋ก์ ํธ ์ค์ ์น์ ์์ ์นํ ์ ๊ตฌ์ฑํ ํ์๊ฐ ์์ต๋๋ค.
์ทจ์ํ๋ ค๋ pull ์์ฒญ์ Looker ๊ฐ๋ฐ์๊ฐ ์ ์ถํ ๊ฒฝ์ฐ ์์ธํ ๋ด์ฉ์ GitHub๋ฅผ ํตํด Looker์์ pull ์์ฒญ์ ๋๋๋ฆฌ๋ ๋ฐฉ๋ฒ ์ปค๋ฎค๋ํฐ ๊ฒ์๋ฌผ์ ์ฐธ์กฐํ์ธ์.
Git pull ์์ฒญ์ ์ฌ์ฉํ๋ฉด Looker์ ์คํ ์ด์ง ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์คํ ์ด์ง ์ธ์คํด์ค์์ pull ์์ฒญ์ ์ฌ์ฉ ์ค์ ํ ์คํ ์ด์ง ์ธ์คํด์ค์ ํ๋ก๋์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์คํ ์ด์ง ํ๊ฒฝ์์ ๋ชจ๋ ๊ฐ๋ฐ ๋ฐ ์ฝ๋ ๊ฒํ ๋ฅผ ์ํํ ์ ์์ผ๋ฉฐ ๊ฒํ ๋ ์ฝ๋๋ฅผ ํ๋ก๋์ ์ธ์คํด์ค์ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ค์ ํ๋ ค๋ฉด ์ฌ๋ฌ ์ธ์คํด์ค์์ ํ๋์ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๋ Git ์ํฌํ๋ก - ๊ฐ๋ฐ, ์คํ ์ด์ง, ํ๋ก๋์ ์ปค๋ฎค๋ํฐ ๊ฒ์๋ฌผ์ ์ฐธ์กฐํ์ธ์.
Looker๋ ๋ณํฉ ๋์์ธ ๋ณํฉ ์ปค๋ฐ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ Looker ๊ฐ๋ฐ์ ๋ธ๋์น์ ๋ณ๊ฒฝ์ฌํญ์ ํ๋ก๋์ ๋ธ๋์น๋ก ๋ณํฉํฉ๋๋ค. Git ์ ๊ณต์ ์ฒด์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ ๋ ๊ฐ๋ฐ์๋ ์ค์ฟผ์ ๋ณํฉ ๋๋ ๋ฆฌ๋ฒ ์ด์ค ๋ณํฉ์ ์ฌ์ฉํ์ง ์์์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Git ์ ๊ณต์ ์ฒด ์ธํฐํ์ด์ค์ ๋ณํฉ ์ต์ ์น์ ์ ์ฐธ์กฐํ์ธ์.
ํตํฉ๋ pull ์์ฒญ์ผ๋ก ํ๋ก์ ํธ ์ค์
Git pull ์์ฒญ์ผ๋ก Looker ํ๋ก์ ํธ๋ฅผ ์ค์ ํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- ํ๋ก์ ํธ์ Looker IDE ์์ด์ฝ ๋ฉ๋ด์์ ์ค์ ์ ์ ํํฉ๋๋ค.
- ๊ตฌ์ฑ ํญ์ Git ํตํฉ ์น์ ์์ pull ์์ฒญ ๊ถ์ฅ ๋๋ pull ์์ฒญ ํ์๋ฅผ ์ ํํฉ๋๋ค.
- ํ์ํ ๊ฒฝ์ฐ Git ์ ๊ณต์ ์ฒด ์ธํฐํ์ด์ค์ ์๋ ๋ฐฐํฌ ์นํ ์ ์ค์ ํ๋ ค๋ฉด ์นํ ์ ๋ณด๋ฅผ ๋ณต์ฌํ์ฌ ์ด๋ฅผ ํ ์คํธ ํ์ผ์ ๋ถ์ฌ๋ฃ์ผ์ธ์. ํ๋ก์ ํธ๊ฐ ๊ณ ๊ธ ๋ฐฐํฌ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ์๋ ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋ธ ์ ์์ต๋๋ค. ๋์ค์ ๊ฒฐ์ ํ๊ณ ํ๋ก์ ํธ ์ค์ ์ผ๋ก ๋์๊ฐ์ ์นํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์๋ ์์ต๋๋ค.
- ํ์ํ ๊ฒฝ์ฐ ์นํ ๋ฐฐํฌ ๋ณด์ ๋น๋ฐ์ ์ค์ ํ์ฌ Git ๊ณต๊ธ์ ์ฒด์ ์ ์๋ ๋ฐฐํฌ ์นํ ๋๋ ๊ณ ๊ธ ๋ฐฐํฌ ๋ชจ๋ ์นํ ์ ์ธ์ฆํ ์ ์์ต๋๋ค. ์นํ ๋ณด์ ๋น๋ฐ์ ๋ง๋ค๋ ค๋ฉด ์นํ ๋ณด์ ๋น๋ฐ ์ค์ ์ ํด๋ฆญํฉ๋๋ค. ๋ฐฐํฌ ๋ณด์ ๋น๋ฐ์ ๋ณต์ฌํ์ฌ Git ์ ๊ณต์ ์ฒด์ ์ธํฐํ์ด์ค์ ์นํ ์ ์ถ๊ฐํ ๋ ์ฌ์ฉํ ํ ์คํธ ํ์ผ์ ๋ถ์ฌ๋ฃ์ต๋๋ค. ๋์ค์ ๊ฒฐ์ ํ๊ณ ํ๋ก์ ํธ ์ค์ ์ผ๋ก ๋์๊ฐ์ ๋ฐฐํฌ ๋ณด์ ๋น๋ฐ์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์นํ ๋ฐฐํฌ ๋ณด์ ๋น๋ฐ ๊ตฌ์ฑ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
- ํ๋ก์ ํธ ๊ตฌ์ฑ ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
์ด์ Looker ๊ฐ๋ฐ์๊ฐ ํ๋ก์ ํธ์ ๋ณ๊ฒฝ์ฌํญ์ ์ปค๋ฐํ ๋๋ง๋ค Looker IDE์ pull ์์ฒญ ์ด๊ธฐ ๋ฒํผ์ด ํ์๋ฉ๋๋ค. ์ด ๋ฒํผ์ ํด๋ฆญํ๋ฉด Git ์ ๊ณต์ ์ฒด ์น์ฌ์ดํธ์ ์๋ก์ด pull ์์ฒญ ํ์ด์ง๋ก ๋ฐ๋ก ์ ๋ธ๋ผ์ฐ์ ํญ์ด ์ด๋ฆฝ๋๋ค.
pull ์์ฒญ์ ์ฌ์ฉํ๋๋ก Looker ํ๋ก์ ํธ๋ฅผ ์ค์ ํ ํ ๋ค์ ์ค ํ๋๋ฅผ ์ํํ์ฌ ํ๋ก๋์ ํ๊ฒฝ์ ์ปค๋ฐ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์ค์ ํฉ๋๋ค.
- ํ๋ก๋์ ๋ธ๋์น์ ๋ณํฉ๋ ์ต์ ์ปค๋ฐ์ ์๋์ผ๋ก ๋ฐฐํฌํ๋ ค๋ฉด ์ด ํ์ด์ง์ ๋ค์ ์น์ ์์ ์ค๋ช ํ๋ ๋๋ก Git ์ ๊ณต์ ์ฒด์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์นํ ์ ์ถ๊ฐํฉ๋๋ค.
- ๋ฐฐํฌ๋๋ ๋ธ๋์น ๋๋ ์ปค๋ฐ์ ์๋์ผ๋ก ์ง์ ํ๋ ค๋ฉด ๊ณ ๊ธ ๋ฐฐํฌ ๋ชจ๋๋ฅผ ์ฌ์ฉ ์ค์ ํ์ธ์. ๊ณ ๊ธ ๋ฐฐํฌ ๋ชจ๋ ์ฌ์ฉ ์ค์ ๋ฐ ๊ด๋ฆฌ์ ๊ดํ ์์ธํ ๋ด์ฉ์ ๊ณ ๊ธ ๋ฐฐํฌ ๋ชจ๋ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
Git ์ ๊ณต์ ์ฒด์ ์นํ ์ถ๊ฐ
pull ์์ฒญ์ด ์ฌ์ฉ ์ค์ ๋ Looker ํ๋ก์ ํธ์ ๊ฒฝ์ฐ Git ์ ๊ณต์ ์ฒด ์ธํฐํ์ด์ค์ ๋ฐฐํฌ ์นํ ์ ์ค์ ํ ์ ์์ต๋๋ค. ์ด ์นํ ์ Git ์ ๊ณต์ ์ฒด์ ์ธํฐํ์ด์ค์์ pull ์์ฒญ์ ๋ณํฉํ ๋๋ง๋ค Looker๊ฐ ํ๋ก๋์ ๋ธ๋์น์ ์ต์ ์ปค๋ฐ์ ๋ฐฐํฌํ๋๋ก ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.
ํ๋ก์ ํธ๊ฐ ๊ณ ๊ธ ๋ฐฐํฌ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์๋ ๋ฐฐํฌ ์นํ ์ ์ค์ ํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ณ ๊ธ ๋ฐฐํฌ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฐํฌํ ์ปค๋ฐ๊ณผ ๋ธ๋์น๋ฅผ ์ ํํ ์ ์์ผ๋ฏ๋ก ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์๋ ๋ฐฐํฌ ์นํ ์ ์ค์ ํ๋ฉด ๊ณ ๊ธ ๋ฐฐํฌ ๋ชจ๋์ ๊ธฐ๋ฅ์ด ๋ฌดํจํ๋ฉ๋๋ค.
Git ์ ๊ณต์ ์ฒด ์ธํฐํ์ด์ค์ ์๋ ๋ฐฐํฌ ์นํ ์ ์ถ๊ฐํ๋ ค๋ฉด ๋จผ์ ํ๋ก์ ํธ์ Looker IDE ์์ด์ฝ ๋ฉ๋ด์์ ์ค์ ์์ด์ฝ์ ํด๋ฆญํ์ฌ Looker์ ํ๋ก์ ํธ ์ค์ ์ผ๋ก ์ด๋ํ์ธ์. ๊ทธ๋ฐ ๋ค์ Git ํตํฉ ์น์ ์์ ์นํ ์ ๋ณต์ฌํฉ๋๋ค.
์นํ
์๋ <instance_url>/webhooks/projects/<project_name>/deploy
ํ์์ด ์ฌ์ฉ๋ฉ๋๋ค.
<instance_url>
์ Looker ์ธ์คํด์ค์ URL๋ก ๋ฐ๊ฟ๋๋ค. ์๋ฅผ ๋ค์ด Looker ์ธ์คํด์ค URL์ด example.looker.com
์ด๊ณ ํ๋ก์ ํธ ์ด๋ฆ์ด e_faa
์ด๋ฉด ์นํ
์ ๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค.
https://example.looker.com/webhooks/projects/e_faa/deploy
Looker ํ๋ก์ ํธ ์ค์ ์์ ์นํ ๋ฐฐํฌ ๋ณด์ ๋น๋ฐ์ ๊ฐ์ ธ์ ํ๋ก์ ํธ์ Git ํตํฉ์ Git ์ ๊ณต์ ์ฒด์ ์ธ์ฆํ ์๋ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์นํ ๋ฐฐํฌ ๋ณด์ ๋น๋ฐ ๊ตฌ์ฑ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
์นํ URL๊ณผ ๋ฐฐํฌ ์นํ ๋ณด์ ๋น๋ฐ์ด ์ค๋น๋์์ผ๋ฉด ์ด๋ฅผ Git ์ ๊ณต์ ์ฒด์ ์ธํฐํ์ด์ค์ ์ ๋ ฅํ ์ ์์ต๋๋ค. Git ์ ๊ณต์ ์ฒด๊ฐ GitHub์ธ ๊ฒฝ์ฐ ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- GitHub ์ ์ฅ์์์ ํ๋ก์ ํธ์ ์ ์ฅ์ ์ค์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
- ์ ์ฅ์ ์ค์ ์์ ์นํ ์ ํด๋ฆญํฉ๋๋ค. ์นํ ์ถ๊ฐ๋ฅผ ํด๋ฆญํ์ฌ ์นํ ์ถ๊ฐ ์ฐฝ์ ์ฝ๋๋ค.
- ํ์ด๋ก๋ URL ํ๋์ Looker์ Git ํตํฉ ์น์ ์์ ๋ณต์ฌํ ์นํ ์ ๋ณด๋ฅผ ๋ถ์ฌ๋ฃ์ต๋๋ค.
- ํ์ํ ๊ฒฝ์ฐ ํ๋ก์ ํธ์ Git ํตํฉ์ Git ์ ๊ณต์ ์ฒด์ ์ธ์ฆํ๋ ์นํ ๋ฐฐํฌ ๋ณด์ ๋น๋ฐ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. LookML ํ๋ก์ ํธ์ ํ๋ก์ ํธ ์ค์ ์์ ๋ฐฐํฌ ๋ณด์ ๋น๋ฐ์ ๋ณต์ฌํ์ฌ Git ์ ๊ณต์ ์ฒด ์ธํฐํ์ด์ค์ ๋ณด์ ๋น๋ฐ ํ๋์ ๋ณด์ ๋น๋ฐ์ ๋ถ์ฌ๋ฃ์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์นํ ๋ฐฐํฌ ๋ณด์ ๋น๋ฐ ๊ตฌ์ฑ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ด๋ค ์ด๋ฒคํธ์์ ์ด ์นํ ์ ํธ๋ฆฌ๊ฑฐํ์๊ฒ ์ด์? ํ๋์์ ํธ์ ์ด๋ฒคํธ๋ง ์ต์ ์ ์ ํํฉ๋๋ค.
- ์นํ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ฐฐํฌ ์นํ ์ ์ฌ์ฉํ์ฌ ์๊ฒฉ Git ์ ์ฅ์์์ ๊ฐ์ ธ์ค๊ธฐ
LookML ํ๋ก์ ํธ์ pull ์์ฒญ์ด ์ฌ์ฉ ์ค์ ๋์ด ์๊ณ ์นํ ๋ฐฐํฌ๊ฐ ์๋ํ๋์ง ์์ ๊ฒฝ์ฐ Looker์ ํ๋ก๋์ ๋ชจ๋์ ํ์๋๋ LookML์ด Git ์ ์ฅ์์ ๋ฉ์ธ ๋ธ๋์น์ ์๋ LookML๊ณผ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์ ์ฅ์์ pull ์์ฒญ์ด ์ฌ์ฉ ์ค์ ๋ ๊ฒฝ์ฐ
- LookML์ด ๋ค์๊ณผ ๊ฐ์ Looker ๊ฐ๋ฐ ํ๊ฒฝ ์ธ๋ถ์์ ์์ ๋ ๊ฒฝ์ฐ:
- Git ์ ์ฅ์ ์์ฒด
- ๋ค๋ฅธ Looker ์ธ์คํด์ค(์: ์คํ ์ด์ง ์ธ์คํด์ค)
๋ฐฐํฌ ์นํ ์ ์ฌ์ฉํ์ฌ Looker ํ๋ก๋์ ๋ธ๋์น๋ฅผ ์ ์ฅ์์ ๊ธฐ๋ณธ ๋ธ๋์น์ ๋๊ธฐํํ ์ ์์ต๋๋ค.
์ ๋ธ๋ผ์ฐ์ ํญ์ ์ด๊ณ ๋ค์ URL์ ์ ๋ ฅํฉ๋๋ค. ์ฌ๊ธฐ์
<instance_url>
์ Looker ์ธ์คํด์ค URL๋ก ๋ฐ๊พธ๊ณ<project_name>
์ LookML ํ๋ก์ ํธ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.<instance_url>/webhooks/projects/<project name>/deploy
๋ฐฐํฌ ์นํ URL์ ์คํํ๋ฉด ๋น ์นํ์ด์ง์ ๋ค์๊ณผ ์ ์ฌํ ์ฑ๊ณต ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
{"operations":[{"error":false,"error_code":0,"command":"Checkout Branch #\u003cLooker::GitBranch:0x5798672b\u003e","node_id":728,"results":["Success"]},{"error":false,"error_code":0,"command":"jgit revert_repo","node_id":728,"results":["Success"]}],"new_head":"05f772af48709fc2799fefe408e3fdd895a63284","old_head":"77412cad9fd7ed3eed1627afa201fdf7dcb97dd1"}
์ด์ Looker์ ํ๋ก๋์ ๋ชจ๋๊ฐ ์๊ฒฉ Git ๊ธฐ๋ณธ ๋ธ๋์น๋ฅผ ๋ฐ์ํ๋๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ๊ฐ์ธ ๊ฐ๋ฐ์ ๋ธ๋์น ๋ฐ ๊ณต์ ๋ธ๋์น๋ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค.
๋ฐฐํฌ ๋ณด์ ๋น๋ฐ์ด ์๋ ์นํ ์ ์๊ฒฉ Git ์ ์ฅ์์์ ๊ฐ์ ธ์ค๊ธฐ
LookML ํ๋ก์ ํธ์๋ ๋ณ๊ฒฝ์ฌํญ์ ๋ฉ์ธ ๋ธ๋์น์์ ํ๋ก๋์ ๋ธ๋์น๋ก ํธ์ํ๊ธฐ ์ํ ์นํ ๋ฐฐํฌ ๋ณด์ ๋น๋ฐ์ด ํ์ํ ๊ฒฝ์ฐ ์ด์ ์น์ ๋ฐฐํฌ ์นํ ์ ์ฌ์ฉํ์ฌ ์๊ฒฉ Git ์ ์ฅ์์์ ๊ฐ์ ธ์ค๊ธฐ์ ์ค๋ช ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ํ๋ก๋์ ๋ธ๋์น๋ฅผ ์ ์ฅ์์ ๋ฉ์ธ ๋ธ๋์น์ ๋๊ธฐํํ ๋ ๋ค์ ์ค๋ฅ ์ค ํ๋๊ฐ ํ์๋ฉ๋๋ค.
{"error":"Uh oh! Something went wrong."}
๋๋
{"error":"Not found."}
๋ฐฐํฌ ์นํ ์ ์ฌ์ฉํ๋ ๋์ ์นํ ๋ณด์ ๋น๋ฐ๋ก ํฐ๋ฏธ๋์์ ๋ค์ cURL ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์์ต๋๋ค. ๋ค์ ํ๋๋ฅผ ๋ฐ๊ฟ์ผ ํฉ๋๋ค.
<instance_URL>
์ Looker ์ธ์คํด์ค URL๋ก ๋ฐ๊ฟ๋๋ค.<deploy_secret>
์ ํ๋ก์ ํธ์ ๋ฐฐํฌ ๋ณด์ ๋น๋ฐ๋ก ๋ฐ๊ฟ๋๋ค.<project_name>
์ LookML ํ๋ก์ ํธ์ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
curl -i -X POST -H "X-Looker-Deploy-Secret:<deploy_secret>" https://<instance_url>/webhooks/projects/<project_name>/deploy
์๋ฅผ ๋ค์ด ecommerce_project ์ธ์คํด์ค์ ecommerce_project์ ๋ํ ํ๋ก๋์ ๋ธ๋์น๋ฅผ ์ ์ฅ์์ ๋ฉ์ธ ๋ธ๋์น์ ๋๊ธฐํํ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
curl -i -X POST -H "X-Looker-Deploy-Secret:123123123secretgoeshere123123123" https://brettcase.looker.com/webhooks/projects/ecommerce_project/deploy
Git ์ ๊ณต์ ์ฒด ์ธํฐํ์ด์ค์ ๋ณํฉ ์ต์
Looker ํ๋ก์ ํธ๊ฐ pull ์์ฒญ๊ณผ ํตํฉ๋ ๊ฒฝ์ฐ ๊ฐ๋ฐ์๋ Git ์ ๊ณต์ ์ฒด์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ pull ์์ฒญ์ ์ ์ถํ๊ณ ๋ณ๊ฒฝ์ฌํญ์ ํ๋ก๋์ ๋ธ๋์น์ ๋ณํฉํฉ๋๋ค.
Looker๋ ๊ฐ๋ฐ ๋ธ๋์น์ ๋ณ๊ฒฝ์ฌํญ์ ํ๋ก๋์ ๋ธ๋์น๋ก ๋ณํฉํ๋ ๋ณํฉ ์ปค๋ฐ ๋ฉ์๋๋ฅผ ์ง์ํฉ๋๋ค. ํ์ง๋ง Git ์ ๊ณต์ ์ฒด์ ์ธํฐํ์ด์ค์๋ ์ค์ฟผ์ ํ ๋ณํฉ ๋๋ ๋ฆฌ๋ฒ ์ด์ค ํ ๋ณํฉ ๊ฐ์ ๋ณํฉ ์ต์ ์ด ์ถ๊ฐ๋ก ํ์๋ ์ ์์ต๋๋ค.
Looker๋ ์ค์ฟผ์ ๋ณํฉ ๋๋ ๋ฆฌ๋ฒ ์ด์ค ๋ณํฉ์ ์ง์ํ์ง ์์ผ๋ฏ๋ก ๊ฐ๋ฐ์๋ ์ด๋ฌํ ์ต์ ์ ์ฌ์ฉํด์๋ ์ ๋ฉ๋๋ค. ๊ฐ๋ฅํ๋ฉด ์ ์ฅ์์์ ์ด๋ฌํ ์ต์ ์ ์ฌ์ฉ ์ค์งํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค. GitHub ์ ์ฅ์์์ ์ด๋ฌํ ์ต์ ์ ์ฌ์ฉ ์ค์งํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
์ค์ ํญ์ผ๋ก ์ด๋ํ์ฌ GitHub์์ ํ๋ก์ ํธ์ ์ ์ฅ์ ์ค์ ์ ์ก์ธ์คํฉ๋๋ค.
ํ: Git ํตํฉ์ผ๋ก ๊ตฌ์ฑ๋ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ Looker์์ ํ๋ก์ ํธ์ Git ๋ฉ๋ด์ ์๋ Git์์ ํ๋ก์ ํธ ๋ณด๊ธฐ ์ต์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ์ฅ์ ์ค์ ์ ํ์ ๋ฉ๋ด์์ ์ต์ ์ ํด๋ฆญํฉ๋๋ค.
๋ณํฉ ๋ฒํผ ์น์ ์ผ๋ก ์ด๋ํ์ฌ ๋ณํฉ ์ปค๋ฐ ํ์ฉ ์ต์ ๋ง ์ ํ๋ ์ํ๋ก ๋ก๋๋ค. ์ค์ฟผ์ ๋ณํฉ ํ์ฉ ๋ฐ ๋ฆฌ๋ฒ ์ด์ค ๋ณํฉ ํ์ฉ ์ต์ ์ ์ ํ ํด์ ํฉ๋๋ค.
๋ณํฉ ์ต์ ์ ์ฌ์ฉ ์ค์งํ๋ฉด ๊ฐ๋ฐ์๊ฐ ์ ์ฅ์์์ ๋ธ๋์น๋ฅผ ๋ณํฉํ ๋ GitHub์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.