ํ”„๋กœ์ ํŠธ ๋ฒ„์ „ ์ œ์–ด ์„ค์ • ๊ตฌ์„ฑ

์ด ํŽ˜์ด์ง€์—์„œ๋Š” ๋ฒ„์ „ ์ œ์–ด๋ฅผ ์œ„ํ•ด 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 ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Looker IDE ์•„์ด์ฝ˜ ๋ฉ”๋‰ด์—์„œ ์„ค์ • ์•„์ด์ฝ˜์„ ์„ ํƒํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ์„ค์ •์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ํƒญ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์—ด๋ฆฝ๋‹ˆ๋‹ค.
  2. Git ํ”„๋กœ๋•์…˜ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„ ํ•„๋“œ์— Looker ํ”„๋กœ์ ํŠธ์˜ ํ”„๋กœ๋•์…˜ ๋ธŒ๋žœ์น˜๋กœ ์‚ฌ์šฉํ•  Git ๋ธŒ๋žœ์น˜์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  3. ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ ์ €์žฅ ๋ฒ„ํŠผ์„ ์„ ํƒํ•˜์—ฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ

์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ ์„น์…˜์—์„œ๋Š” ๋น„๊ณต๊ฐœ ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ ํŒŒ์ผ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ

ํ”„๋กœ์ ํŠธ ์„ค์ • ํŽ˜์ด์ง€์˜ ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ ํƒญ์—์„œ ํ”„๋กœ์ ํŠธ์™€ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  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 ํ†ตํ•ฉ ์˜ต์…˜(๋งํฌ ํ‘œ์‹œ, 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 ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ํ”„๋กœ์ ํŠธ์˜ Looker IDE ์•„์ด์ฝ˜ ๋ฉ”๋‰ด์—์„œ ์„ค์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ตฌ์„ฑ ํƒญ์˜ Git ํ†ตํ•ฉ ์„น์…˜์—์„œ pull ์š”์ฒญ ๊ถŒ์žฅ ๋˜๋Š” pull ์š”์ฒญ ํ•„์š”๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. ํ•„์š”ํ•œ ๊ฒฝ์šฐ Git ์ œ๊ณต์—…์ฒด ์ธํ„ฐํŽ˜์ด์Šค์— ์ž๋™ ๋ฐฐํฌ ์›นํ›…์„ ์„ค์ •ํ•˜๋ ค๋ฉด ์›นํ›… ์ •๋ณด๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ์ด๋ฅผ ํ…์ŠคํŠธ ํŒŒ์ผ์— ๋ถ™์—ฌ๋„ฃ์œผ์„ธ์š”. ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ณ ๊ธ‰ ๋ฐฐํฌ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ์—๋Š” ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๊ฒฐ์ •ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ ์„ค์ •์œผ๋กœ ๋Œ์•„๊ฐ€์„œ ์›นํ›… ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์›นํ›… ๋ฐฐํฌ ๋ณด์•ˆ ๋น„๋ฐ€์„ ์„ค์ •ํ•˜์—ฌ Git ๊ณต๊ธ‰์—…์ฒด์˜ ์˜ ์ž๋™ ๋ฐฐํฌ ์›นํ›… ๋˜๋Š” ๊ณ ๊ธ‰ ๋ฐฐํฌ ๋ชจ๋“œ ์›นํ›…์„ ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›นํ›… ๋ณด์•ˆ ๋น„๋ฐ€์„ ๋งŒ๋“ค๋ ค๋ฉด ์›นํ›… ๋ณด์•ˆ ๋น„๋ฐ€ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐํฌ ๋ณด์•ˆ ๋น„๋ฐ€์„ ๋ณต์‚ฌํ•˜์—ฌ Git ์ œ๊ณต์—…์ฒด์˜ ์ธํ„ฐํŽ˜์ด์Šค์— ์›นํ›…์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉํ•  ํ…์ŠคํŠธ ํŒŒ์ผ์— ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๊ฒฐ์ •ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ ์„ค์ •์œผ๋กœ ๋Œ์•„๊ฐ€์„œ ๋ฐฐํฌ ๋ณด์•ˆ ๋น„๋ฐ€์„ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์›นํ›… ๋ฐฐํฌ ๋ณด์•ˆ ๋น„๋ฐ€ ๊ตฌ์„ฑ ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  5. ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ 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์ธ ๊ฒฝ์šฐ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. GitHub ์ €์žฅ์†Œ์—์„œ ํ”„๋กœ์ ํŠธ์˜ ์ €์žฅ์†Œ ์„ค์ •์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. ์ €์žฅ์†Œ ์„ค์ •์—์„œ ์›นํ›…์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์›นํ›… ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•˜์—ฌ ์›นํ›… ์ถ”๊ฐ€ ์ฐฝ์„ ์—ฝ๋‹ˆ๋‹ค.
  3. ํŽ˜์ด๋กœ๋“œ URL ํ•„๋“œ์— Looker์˜ Git ํ†ตํ•ฉ ์„น์…˜์—์„œ ๋ณต์‚ฌํ•œ ์›นํ›… ์ •๋ณด๋ฅผ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.
  4. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ์˜ Git ํ†ตํ•ฉ์„ Git ์ œ๊ณต์—…์ฒด์™€ ์ธ์ฆํ•˜๋Š” ์›นํ›… ๋ฐฐํฌ ๋ณด์•ˆ ๋น„๋ฐ€์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. LookML ํ”„๋กœ์ ํŠธ์˜ ํ”„๋กœ์ ํŠธ ์„ค์ •์—์„œ ๋ฐฐํฌ ๋ณด์•ˆ ๋น„๋ฐ€์„ ๋ณต์‚ฌํ•˜์—ฌ Git ์ œ๊ณต์—…์ฒด ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ณด์•ˆ ๋น„๋ฐ€ ํ•„๋“œ์— ๋ณด์•ˆ ๋น„๋ฐ€์„ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์›นํ›… ๋ฐฐํฌ ๋ณด์•ˆ ๋น„๋ฐ€ ๊ตฌ์„ฑ ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  5. ์–ด๋–ค ์ด๋ฒคํŠธ์—์„œ ์ด ์›นํ›…์„ ํŠธ๋ฆฌ๊ฑฐํ•˜์‹œ๊ฒ ์–ด์š”? ํ•„๋“œ์—์„œ ํ‘ธ์‹œ ์ด๋ฒคํŠธ๋งŒ ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  6. ์›นํ›… ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐํฌ ์›นํ›…์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ Git ์ €์žฅ์†Œ์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ

LookML ํ”„๋กœ์ ํŠธ์— pull ์š”์ฒญ์ด ์‚ฌ์šฉ ์„ค์ •๋˜์–ด ์žˆ๊ณ  ์›นํ›… ๋ฐฐํฌ๊ฐ€ ์ž๋™ํ™”๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ Looker์˜ ํ”„๋กœ๋•์…˜ ๋ชจ๋“œ์— ํ‘œ์‹œ๋˜๋Š” LookML์ด Git ์ €์žฅ์†Œ์˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” LookML๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ €์žฅ์†Œ์— pull ์š”์ฒญ์ด ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ
  • LookML์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ Looker ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์™ธ๋ถ€์—์„œ ์ˆ˜์ •๋œ ๊ฒฝ์šฐ:
    • Git ์ €์žฅ์†Œ ์ž์ฒด
    • ๋‹ค๋ฅธ Looker ์ธ์Šคํ„ด์Šค(์˜ˆ: ์Šคํ…Œ์ด์ง• ์ธ์Šคํ„ด์Šค)

๋ฐฐํฌ ์›นํ›…์„ ์‚ฌ์šฉํ•˜์—ฌ Looker ํ”„๋กœ๋•์…˜ ๋ธŒ๋žœ์น˜๋ฅผ ์ €์žฅ์†Œ์˜ ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜์™€ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์ƒˆ ๋ธŒ๋ผ์šฐ์ € ํƒญ์„ ์—ด๊ณ  ๋‹ค์Œ URL์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ <instance_url>์„ Looker ์ธ์Šคํ„ด์Šค URL๋กœ ๋ฐ”๊พธ๊ณ  <project_name>์„ LookML ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    <instance_url>/webhooks/projects/<project name>/deploy
    
  2. ๋ฐฐํฌ ์›นํ›… 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 ์ €์žฅ์†Œ์—์„œ ์ด๋Ÿฌํ•œ ์˜ต์…˜์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ์„ค์ • ํƒญ์œผ๋กœ ์ด๋™ํ•˜์—ฌ GitHub์—์„œ ํ”„๋กœ์ ํŠธ์˜ ์ €์žฅ์†Œ ์„ค์ •์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค.

    ํŒ: Git ํ†ตํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ Looker์—์„œ ํ”„๋กœ์ ํŠธ์˜ Git ๋ฉ”๋‰ด์— ์žˆ๋Š” Git์—์„œ ํ”„๋กœ์ ํŠธ ๋ณด๊ธฐ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ์ €์žฅ์†Œ ์„ค์ •์˜ ํƒ์ƒ‰ ๋ฉ”๋‰ด์—์„œ ์˜ต์…˜์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ๋ณ‘ํ•ฉ ๋ฒ„ํŠผ ์„น์…˜์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๋ณ‘ํ•ฉ ์ปค๋ฐ‹ ํ—ˆ์šฉ ์˜ต์…˜๋งŒ ์„ ํƒ๋œ ์ƒํƒœ๋กœ ๋‘ก๋‹ˆ๋‹ค. ์Šค์ฟผ์‹œ ๋ณ‘ํ•ฉ ํ—ˆ์šฉ ๋ฐ ๋ฆฌ๋ฒ ์ด์Šค ๋ณ‘ํ•ฉ ํ—ˆ์šฉ ์˜ต์…˜์„ ์„ ํƒ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.

๋ณ‘ํ•ฉ ์˜ต์…˜์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ €์žฅ์†Œ์—์„œ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉํ•  ๋•Œ GitHub์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.