๊ธฐ๋ก๋ฐฉ

Mattermost์—์„œ Gitlab, Jira ์—ฐ๋™ ์•Œ๋ฆผ๋ฐ›๊ธฐ ๋ณธ๋ฌธ

Tips

Mattermost์—์„œ Gitlab, Jira ์—ฐ๋™ ์•Œ๋ฆผ๋ฐ›๊ธฐ

Soom_1n 2023. 7. 15. 21:20
๐Ÿ’ก ๋ชฉ์  : Mattermost ์ฑ„๋„์— Gitlab๊ณผ Jira ๋ณ€๋™์‚ฌํ•ญ์„ ์•Œ๋ฆผ๋ฐ›๋Š” ์ฑ„๋„ ๋งŒ๋“ค๊ธฐ

 

๋ชฉ์ฐจ

  1. Gitlab ์„ค์ •ํ•˜๊ธฐ
  2. Mattermost ์„ค์ •ํ•˜๊ธฐ
  3. Jira ์„ค์ •ํ•˜๊ธฐ
  4. ํ…Œ์ŠคํŠธ

์˜ˆ์ƒ ์†Œ์š”์‹œ๊ฐ„ : ์•ฝ 30๋ถ„

 


 

1. Gitlab ์„ค์ •ํ•˜๊ธฐ

1 - 1 ) Gitlab ๊ถŒํ•œ ํ™•์ธํ•˜๊ธฐ

๊นƒ๋žฉ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ ๊ถŒํ•œ์ด Maintainer์—ฌ์•ผํ•œ๋‹ค.

๋ฉค๋ฒ„์—๊ฒŒ ์–ด๋–ค Max role์„ ์ฃผ๊ณ , ๊ฐ๊ฐ ์–ด๋–ค ๊ถŒํ•œ์„ ์ฃผ๋ฉด์„œ ๊ด€๋ฆฌํ•˜๋Š”์ง€๋Š” ๊ด€๋ฆฌ์ž์˜ ์„ ํƒ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค.

ํ•„์ž๋Š” ํŒ€์žฅ์œผ๋กœ์„œ Owner๊ฐ€ ๋ถ€์—ฌํ•œ Maintainer๋กœ ์ž์ฒด ๋ณ€๊ฒฝํ•  ์ˆœ ์—†์—ˆ๊ณ , ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ๋ฅผ git flow ์ „๋žต์— ๋”ฐ๋ผ ์ˆ˜ํ–‰ํ•˜๊ธฐ๋กœ ํ•ด์„œ ๋ฐฐํฌ๋ฅผ ๋งก์€ ํŒ€์›๋งŒ Developer์—์„œ Maintainer๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค.
Developer๋Š” develop ๋ธŒ๋žœ์น˜์—๋งŒ push๋‚˜ mergeํ•  ์ˆ˜ ์žˆ๋‹ค.(๊ถŒํ•œ์€ ์•„๋ž˜ ์„ค์ •ํ•˜๋Š” ๊ณณ ๋‚˜์˜ด)

 

1 - 2 ) ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜ ๋ณ€๊ฒฝ

๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜ ์„ค์ •์„ ์œ„ํ•ด Settings - Repository - Branch defaults - Expand๋กœ ๋“ค์–ด๊ฐ„๋‹ค

 

๊ธฐ๋ณธ๊ฐ’์€ master ๋ธŒ๋žœ์น˜๊ฐ€ ์„ ํƒ๋˜์–ด ์žˆ๋‹ค

์ฐธ๊ณ ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ ์งํ›„ README๋„ ๋งŒ๋“ค์ง€ ์•Š์€ ์ƒํƒœ๋ผ๋ฉด, ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋„ ๋œจ์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค.

ํ•„์ž์˜ ๊ฒฝ์šฐ๊ฐ€ ๊ทธ๋žฌ๋Š”๋ฐ, ํ•œ ๋ฒˆ clone ํ›„ README๋ฅผ ๋งŒ๋“œ๋Š” ๋“ฑ ์•„๋ฌด ์ปค๋ฐ‹์ด๋‚˜ ๋‚จ๊ธฐ๊ณ  pushํ•˜๋ฉด ๋œ๋‹ค.

์ด๋•Œ, develop ๋ธŒ๋žœ์น˜๋„ ์ƒ์„ฑํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

 

1 - 3 ) ๋ธŒ๋žœ์น˜ ๋ณดํ˜ธ ๊ถŒํ•œ ๋ณ€๊ฒฝ

Protected branches

์ง์ „์˜ ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜ ์„ค์ •์—์„œ ์ข€ ๋‚ด๋ฆฌ๋ฉด ๋‚˜์˜ค๋Š” ๋ธŒ๋žœ์น˜ ๋ณดํ˜ธ ์„ค์ •๋ž€์ด ์žˆ๋‹ค.

ํ•„์ž๋Š” ํฌ์ŠคํŒ… ์„œ๋‘์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ ์ฒ˜๋Ÿผ master ๋ธŒ๋žœ์น˜๋Š” ๋ฉ”์ธํ…Œ๋„ˆ๋“ค๋งŒ, develop ๋ธŒ๋žœ์น˜๋Š” Developers๋“ค๋„ push & merge ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ถŒํ•œ์„ ์„ค์ •ํ–ˆ๋‹ค.
์—ฌ๊ธฐ์„œ master ๋ธŒ๋žœ์น˜๋Š” ๋ฆด๋ฆฌ์ฆˆ ํ•  ์ •๋„์˜ ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ ๋œ ํ›„ ์ง„ํ–‰๋˜๋ฏ€๋กœ, ์šฐ์„  ์•„๋ฌด๋„ push ํ•  ์ˆ˜ ์—†๋„๋ก ์ž ๊ฐ€๋‘์—ˆ๋‹ค.

 

1 - 4 ) Jira ์—ฐ๊ฒฐ

Settings - Integrations ์—์„œ Jira์™€ Mattermost๋ฅผ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

Add an integration ๋ชฉ๋ก์—์„œ Jira์™€ Mattermost notifications ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

์“ฐ์ง„ ์•Š์•˜์ง€๋งŒ ํ™œ์šฉํ• ๋งŒํ•œ๊ฒŒ ์žˆ๋‚˜ ๋‘˜๋Ÿฌ๋ดค๋Š”๋ฐ, Discord๋‚˜ MSTeams ํ˜น์€ ์ด๋ฉ”์ผ๋กœ๋„ ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
๋˜ํ•œ Jenkins๋‚˜ JetBrains์˜ ๋ฐฐํฌ ๊ด€๋ฆฌ ํˆด์ธ TeamCity๋„ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Jira ํƒญ์—์„œ ์„ค์ •ํ•œ๋‹ค.

Web URL์€ Jira ํ”„๋กœ์ ํŠธ์˜ Base URL ์ด์–ด์•ผ ํ•œ๋‹ค.

Base URL์ด๋ž€, ์›น ์ฃผ์†Œ์—์„œ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„, ์‚ฌ์ดํŠธ ์•ˆ์—์„œ ์–ด๋””๋กœ ๊ฐ€๋“  ์ฃผ์†Œ์—์„œ ์ผ์ •ํ•˜๊ฒŒ ๋ณด์ด๋Š” ๋ถ€๋ถ„, ์ฒซ ํŽ˜์ด์ง€์˜ ์ฃผ์†Œ ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ•„์ž๋Š” Jira ํ”„๋กœ์ ํŠธ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋ณด๋“œ์˜ ํ™œ์„ฑ ์Šคํ”„๋ฆฐํŠธ ํ™”๋ฉด์ด ์ฒซ ํ™”๋ฉด์ด๋ผ ๊ทธ URL์„ ์ž…๋ ฅํ–ˆ๋‹ค.
์ด๋ฉ”์ผ๊ณผ password๋Š” Jira ๋กœ๊ทธ์ธ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

Trigger ๋ฅผ ์„ค์ •ํ•˜์ž

Commit๊ณผ Merge ๋ฉ”์„ธ์ง€๋ฅผ ํ™•์ธํ•ด์„œ Jira ์ด์Šˆ๋ฅผ ์™„๋ฃŒ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค!

์ฒดํฌ ํ›„ ์•„๋ž˜ ์„ค์ •๋งŒ Move to Done์œผ๋กœ ๋ฐ”๊พธ๋ฉด ๋œ๋‹ค.

์ž˜ ์ด์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ ํ•  ๊ฒƒ ๊ฐ™์€๋ฐ, Jira์™€ Gitlab์˜ ์—ฐ๊ฒฐ์„ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ์—” ์ „๋ฌธ ๊ด€๋ฆฌ ๋‹ด๋‹น์ด ๋”ฐ๋กœ ์žˆ์–ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์•„์„œ ๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ๋งŒ ์‚ฌ์šฉํ•ด ๋ณผ ์ƒ๊ฐ์ด๋‹ค.

์ด์ œ ์„ค์ •์„ ๋งˆ์น˜๊ณ  save๋ฅผ ๋ˆ„๋ฅธ๋‹ค.

 

Active integrations ์— Jira๊ฐ€ ํ‘œ์‹œ๋œ๋‹ค.

 

1 - 5 ) Mattermost ์—ฐ๊ฒฐ

Mattermost notifications ์„ค์ •ํ•˜๊ธฐ

์›ํ•˜๋Š” ํ•ญ๋ชฉ์„ ์ฒดํฌํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๊นƒ๋žฉ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ๋ณ€๋™์‚ฌํ•ญ์„ ๊ฐ์ง€ํ•ด MM์œผ๋กœ ์•Œ๋ฆผ์„ ์ฃผ๋Š”๊ฑด๋ฐ, ๊ฐ€๋Šฅํ•œ ์ž์„ธํžˆ ๋‚˜์™”์œผ๋ฉด ์ข‹๊ฒ ์–ด์„œ ๋Œ€๋ถ€๋ถ„ ์ฒดํฌํ–ˆ๋‹ค. 

Webhook ๋ถ€๋ถ„์€ MM์—์„œ ๋ฐ›์•„์™€์•ผํ•œ๋‹ค. ๋ฐ”๋กœ ์•„๋ž˜์—์„œ ์•Œ์•„๋ณด์ž.

 

 


 

2. Mattermost ์„ค์ •ํ•˜๊ธฐ

2 - 1 ) Webhook ๋ฐ›๊ธฐ

์™ผ์ชฝ ์ƒ๋‹จ ๊ทธ๋ฆฌ๋“œ ๋ฒ„ํŠผ์—์„œ [ํ†ตํ•ฉ] ํƒญ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

ํ†ตํ•ฉ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ ์ „, ์•Œ๋žŒ์„ ๋ฐ›๊ณ  ์‹ถ์€ ์ฑ„๋„์„ ๋ฏธ๋ฆฌ ๊ฐœ์„คํ•ด๋‘์ž.

๋ณดํ†ต์€ private ๋ฐฉ์œผ๋กœ ๋งŒ๋“ค์–ด๋‘๊ณ , ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ•˜๋Š” ํŒ€์›๋งŒ ์ดˆ๋Œ€ํ•œ๋‹ค.

 

์ „์ฒด Incoming Webhook ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

์„ค๋ช…์œผ๋กœ๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ์—์„œ ๋ณด๋‚ด๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋˜์–ด์žˆ๋‹ค.

๋ฐ˜๋Œ€๋กœ ์™ธ๋ถ€๋กœ ๋ณด๋‚ด๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๊ณ , ์Šฌ๋ž˜์‹œ ๋ช…๋ น์–ด๋กœ ์™ธ๋ถ€ ์„œ๋น„์Šค์— ์ด๋ฒคํŠธ๋ฅผ ๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

์ด์ „ Gitlab์„ค์ •์—์„œ MM์—์„œ ์Šฌ๋ž˜์‹œ ๋ช…๋ น์–ด ๋ž€์ด ์žˆ์—ˆ๋Š”๋ฐ ์ด๋Ÿฐ ๊ธฐ๋Šฅ์ด ์•„๋‹Œ๊ฐ€ ์‹ถ๋‹ค.

 

Incomming Webhook์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

 

Webhook ์„ค์ •์„ ์™„๋ฃŒํ•˜๊ณ  ์ €์žฅํ•œ๋‹ค.

์ œ๋ชฉ๊ณผ ์„ค๋ช…์€ ์›ํ•˜๋Š”๋ฐ๋กœ ์ ์œผ๋ฉด ๋˜๊ณ , ์ฑ„๋„์€ ๋ฏธ๋ฆฌ ํŒŒ๋‘” ์•Œ๋ฆผ์šฉ ์ฑ„๋„์„ ์—ฐ๋™ํ•œ๋‹ค.
๊ณ ์ •๋„ ๋ˆŒ๋Ÿฌ์ฃผ๊ณ  ์ €์žฅํ•œ๋‹ค.

 

Webhook์˜ URL์ด ์ž˜ ์ƒ์„ฑ๋˜์—ˆ๋‹ค.

์ด์ œ URL์„ ๋ณต์‚ฌํ•ด์„œ ์ด์ „ Gitlab์—์„œ์˜ MM ์„ค์ •์„ ๋งˆ๋ฌด๋ฆฌํ•˜์ž.

 

Webhook URL์„ ์ž…๋ ฅํ•˜๊ณ  Saveํ•œ๋‹ค.

 

Active integrations์— Jira์™€ MM ์ด ์ž˜ ๋‚˜ํƒ€๋‚˜๋ฉด ์„ฑ๊ณต์ด๋‹ค.

 

2 - 2 ) Mattermost์— Jira ์—ฐ๊ฒฐํ•˜๊ธฐ

Jira๋ฅผ ์—ฐ๊ฒฐ ํ•  ์ฑ„๋„์— ์Šฌ๋ž˜์‹œ ์ง€๋ผ('/jira ')๋ฅผ ์ณ๋ณด์ž.

์ด๋ฏธ ์„ค์ •๋˜์–ด ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์˜ต์…˜์ด ์žˆ๋‹ค!

'/jira help'๋ฅผ ์ณค๋”๋‹ˆ ์˜ต์…˜์„ ๋ณด์—ฌ์ค€๋‹ค.

 

์ฑ„ํŒ…์œผ๋กœ '/jira connect'๋ฅผ ์น˜๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅธ๋‹ค.

ํ•„์ž๋Š” ๋‘ ๊ฐ€์ง€๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ, 'jira.~~.com' ๊ณผ '~~~.atlassian.nt' ๋‘ ๊ฐ€์ง€ ์ฃผ์†Œ๊ฐ€ ๋‚˜ํƒ€๋‚ฌ๋‹ค.

์ด ์ค‘์—์„œ ์•„ํ‹€๋ผ์‹œ์•ˆ ์ฃผ์†Œ๋ฅผ ์„ ํƒํ•œ๋‹ค.

 

Jira ๋กœ๊ทธ์ธ ํ•œ๋‹ค.

ํ•„์ž๋Š” Jira์—์„œ ๋กœ๊ทธ์ธ ํ•œ ๊ตฌ๊ธ€๋กœ ๋กœ๊ทธ์ธํ–ˆ๋‹ค.

 

๋กœ๊ทธ์ธ ์™„๋ฃŒ ํ›„ [Approve]๋ฅผ ๋ˆŒ๋Ÿฌ Jira์—์„œ MM ์œผ๋กœ ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•œ๋‹ค.

 

์ฑ„ํŒ…์œผ๋กœ '/jira subscribe'๋ฅผ ์น˜๋ฉด ์œ„์™€ ๊ฐ™์€ ์ฐฝ์ด ๋‚˜ํƒ€๋‚œ๋‹ค.

Create Subscription์„ ๋ˆŒ๋Ÿฌ ์—ฐ๊ฒฐ ์„ค์ •์„ ์ƒ์„ฑํ•œ๋‹ค.

 

์„ค์ •์—์„œ ์ค‘์š”ํ•œ๊ฑด Jira์—์„œ ์ƒ์„ฑํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์•Œ๋งž๊ฒŒ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ ์™ธ์— ์ œ๋ชฉ์€ ์ ๋‹นํžˆ ์ž‘์„ฑํ•˜๊ณ , ์ด๋ฒคํŠธ๋Š” ๋ฐ›๊ณ ์‹ถ์€ ๋ชฉ๋ก์„ ์„ ํƒํ•œ๋‹ค.

ํ•„์ž๋Š” ์ด ๊ธฐ๋Šฅ์„ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด๋ด์„œ ๋ชจ๋“  ํƒœ๊ทธ๋ฅผ ๋‹ค ๋ˆŒ๋Ÿฌ์—ˆ๋Š”๋ฐ ํ›„ํšŒํ•˜๊ณ  ๋‹ค์‹œ ์ˆ˜์ •ํ–ˆ๋‹ค.
์ด์Šˆ ์ƒ์„ฑ๊ณผ ์ˆ˜์ •์„ ์ผœ๋†“์œผ๋‹ˆ ๋„ˆ๋ฌด ๋นˆ๋ฒˆํ•˜๊ฒŒ ์•Œ๋žŒ์ด ๋‚˜ํƒ€๋‚ฌ๋‹ค.

์œ„ ์ •๋„๊ฐ€ ๊น”๋”ํ•˜๊ณ  ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค.

 

Mattermost์— Jira ์—ฐ๊ฒฐ ์™„๋ฃŒ

 

2 - 3 ) Mattermost์— Gitlab ์—ฐ๊ฒฐํ•˜๊ธฐ

์—ฐ๊ฒฐํ•  ์ฑ„๋„์— '/gitlab connect'๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

๊ท€์—ฌ์šด ์—ฌ์šฐ ๊นƒ๋žฉ ๋ด‡์ด ๋งํฌ๋ฅผ ํ•˜๋‚˜ ๋ณด๋‚ด์ค€๋‹ค.

ํด๋ฆญํ•ด์„œ ๋“ค์–ด๊ฐ€๋ฉด ๊นƒ๋žฉ ๋กœ๊ทธ์ธ ์ฐฝ์ด ๋‚˜ํƒ€๋‚œ๋‹ค. ๋กœ๊ทธ์ธํ•œ๋‹ค.

 

Jira์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Gitlab๋„ ์—ฐ๋™์„ ํ—ˆ์šฉํ•œ๋‹ค.

์ด๋•Œ ๊ฐ‘์ž๊ธฐ ๋ด‡์ด DM์„ ๋ณด๋ƒˆ๋‹ค.
๋งํฌ๋ฅผ ๋ˆŒ๋Ÿฌ์„œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ๋ณด๋‚ด์ค€ ๊ฒƒ ๊ฐ™์€๋ฐ, ๊ด€๋ฆฌ์ž๋‹˜์ด ์—ฐ๋ฝํ•œ ๊ฑด ์ค„ ์•Œ๊ณ  ๊นœ์ง๋†€๋ž๋‹ค.
์ž˜ ์—ฐ๋™๋˜์—ˆ์œผ๋ฉด ์™ผ์ชฝํ•˜๋‹จ์— ๊นƒ๋žฉ ์—ฌ์šฐ ๋งˆํฌ๊ฐ€ ์ถ”๊ฐ€๋œ๋‹ค. ๊ท€์—ฝ๋‹ค.
๋งˆํฌ๋ฅผ ๋ˆ„๋ฅด๋ฉด, ๋‚ด ๊นƒ๋žฉ ํ”„๋กœ์ ํŠธ ๋ชฉ๋ก ํ™”๋ฉด์œผ๋กœ ์ด๋™๋œ๋‹ค.

 


 

3. ํ…Œ์ŠคํŠธ

3 - 1 ) Jira ์•Œ๋ฆผ ํ…Œ์ŠคํŠธ

ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด Jira์—์„œ ์ž„์‹œ ์Šคํ”„๋ฆฐํŠธ์™€ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•˜์ž.

์•Œ๋ฆผ ์ฑ„๋„์— ์ž˜ ๋‚˜ํƒ€๋‚œ๋‹ค! ์•„๋ฌด๊ฒƒ๋„ ์„ค์ •ํ•˜์ง€ ์•Š์€ ์ด์Šˆ๋ผ์„œ ์šฐ์„ ์ˆœ์œ„๋งŒ ๋‚˜ํƒ€๋‚œ๋‹ค.
๋งํฌ๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ์ด์Šˆ์˜ ์ƒ์„ธ๋ณด๊ธฐ ํŽ˜์ด์ง€๋กœ ์ด๋™๋œ๋‹ค.

(์—ฌ๊ธฐ์„œ ์ด์Šˆ ์ƒ์„ฑ๊ณผ ์ˆ˜์ • ๋งˆ๋‹ค ์•Œ๋žŒ์ด ๋– ์„œ ์•Œ๋žŒ์„ค์ •์„ ๋ณ€๊ฒฝํ–ˆ๋‹ค.)

 

์ด์ œ ์ด์Šˆ ์™„๋ฃŒ์ฒ˜๋ฆฌ๋ฅผ ํ…Œ์ŠคํŠธํ•ด๋ณด์ž ์Šคํ”„๋ฆฐํŠธ๋Š” ์‹œ์ž‘์„ ๋ˆŒ๋Ÿฌ๋†“์ž.

 

3 - 2 ) Gitlab - Jira ์—ฐ๋™ + Mattermost ์•Œ๋žŒ ํ…Œ์ŠคํŠธ

์ปค๋ฐ‹์„ ๋‚จ๊ธฐ๊ณ  Pushํ•ด๋ณด์ž

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ œ๋ชฉ์— '[ํ”„๋กœ์ ํŠธ๋ฒˆํ˜ธ]-[์ด์Šˆ๋ฒˆํ˜ธ]' ํ˜•ํƒœ๋กœ ๋„ฃ์œผ๋ฉด Jira์ด์Šˆ์™€ ์—ฐ๊ฒฐ๋œ๋‹ค.

ํ•„์ž๋Š” Github Desktop ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, Git bash๋‚˜ ๋‹ค๋ฅธ GUI ํˆด์„ ์‚ฌ์šฉํ•ด๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

Mattermost์— ์•Œ๋žŒ์ด ์ž˜ ๋‚˜ํƒ€๋‚œ๋‹ค.

develop๋ฅผ ๋ˆ„๋ฅด๋ฉด Gitlab์˜ ์ปค๋ฐ‹ ๋ชฉ๋ก์œผ๋กœ ์ด๋™๋œ๋‹ค.

๊ทธ ์˜†์€ ํ”„๋กœ์ ํŠธ ๋ช…์ด๋ฉฐ, Gitlab ํ”„๋กœ์ ํŠธ ๋ฉ”์ธ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•œ๋‹ค.

Compare chages์™€ ์•„๋ž˜ ์ปค๋ฐ‹ ๋ฒˆํ˜ธ๋Š” ํ•ด๋‹น ์ปค๋ฐ‹์˜ ์ƒ์„ธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ๋‹ค.

์ด๋™ํ•œ ํŽ˜์ด์ง€์—์„œ Jira ์ด์Šˆ ๋ฒˆํ˜ธ๋ฅผ ๋ˆ„๋ฅด๋ฉด, Jira์˜ ์ด์Šˆ ์ƒ์„ธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ๋‹ค.

์ปค๋ฐ‹ ์ƒ์„ธ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ„ ๋ชจ์Šต๊ณผ Jira์˜ ํ•ด๋‹น ์ด์Šˆ ์ƒ์„ธ๋ณด๊ธฐ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ„ ๋ชจ์Šต์ด๋‹ค.

์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค!

 


 

4. ๋งˆ์น˜๋ฉฐ

 

์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€์— Jira ์ด์Šˆ๋ฒˆํ˜ธ๋ฅผ ๋„ฃ์–ด์„œ ์ž๋™ '์™„๋ฃŒ๋จ' ์ƒํƒœ๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์—ˆ์ง€๋งŒ,
Jira์— ์•ฑ ์ถ”๊ฐ€ ๊ถŒํ•œ์ด ์—†์–ด์„œ ์‹คํŒจํ–ˆ๋‹ค. ๊ด€๋ฆฌ์ž๋‹˜์—๊ฒŒ ๋ฌธ์˜๋ฅผ ๋‚จ๊ฒผ๋Š”๋ฐ ๊ฐ€๋Šฅํ•  ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.

 

์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๊ฒฐํ•˜๋Š” ์ž‘์—…์€ ๊ฐœ๋ฐœ ์ง€์‹์— ์•„์ฃผ ํฐ ๋„์›€์ด ๋œ ๊ฒƒ ๊ฐ™๋‹ค.

์ด ๋‚ด์šฉ์„ ๋”ฐ๋ผํ•˜๋Š”๊ฑด 30๋ถ„์„ ์˜ˆ์ƒํ•˜์ง€๋งŒ, ์ž‘์„ฑ์—๋Š” 6์‹œ๊ฐ„์ด๋‚˜ ๊ฑธ๋ ธ๋‹ค...

ํŠนํžˆ Jira ์ด์Šˆ ์ƒํƒœ ๋ณ€ํ™”์— ์ ˆ๋ฐ˜์„ ์Ÿ์•˜์ง€๋งŒ ์‹คํŒจํ•œ๊ฒŒ ๋„ˆ๋ฌด ์•„์‰ฝ๋‹ค.

์ด ๊ธ€์„ ์ฐธ๊ณ ํ•˜๋Š” ๋ถ„๋“ค์€ ์‹œ๊ฐ„์„ ์•„๋ผ๊ณ  ํฐ ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ํ•œ๋‹ค.

 

๋‹ค์Œ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ–ˆ๋‹ค๐Ÿ‘ : https://pythontoomuchinformation.tistory.com/453

728x90