- LV2
- ๋๋น ์ฐ์ ํ์
- ๋ฐฑํธ๋ํน
- DP
- ๊ทธ๋ํ ์ด๋ก
- dfs
- ์๋ฃ๊ตฌ์กฐ
- stack
- ๊ตฌํ
- BFS
- ์๋ฎฌ๋ ์ด์
- greedy
- PGM
- ๊ต์ฌ
- Brute Force Algorithm
- ์ ๋ ฌ
- ๊ทธ๋ํ ํ์
- Java
- queue
- ๋ฌธ์์ด
- sort
- Python
- BOJ
- Study
- ๊น์ด ์ฐ์ ํ์
- ์ํ
- Dynamic Programming
- ์ ์๋ก
- SpringBoot
- CodingTest
๊ธฐ๋ก๋ฐฉ
Mattermost์์ Gitlab, Jira ์ฐ๋ ์๋ฆผ๋ฐ๊ธฐ ๋ณธ๋ฌธ
๐ก ๋ชฉ์ : Mattermost ์ฑ๋์ Gitlab๊ณผ Jira ๋ณ๋์ฌํญ์ ์๋ฆผ๋ฐ๋ ์ฑ๋ ๋ง๋ค๊ธฐ
๋ชฉ์ฐจ
- Gitlab ์ค์ ํ๊ธฐ
- Mattermost ์ค์ ํ๊ธฐ
- Jira ์ค์ ํ๊ธฐ
- ํ ์คํธ
์์ ์์์๊ฐ : ์ฝ 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
'Tips' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฑ Github 3D ์๋ ๊พธ๋ฏธ๊ธฐ (0) | 2024.02.21 |
---|---|
DataGrip์ผ๋ก MongoDB ์ฌ์ฉํ๊ธฐ (2) | 2023.10.31 |
Gitlab -> Github ํ๋ก์ ํธ & ์ปค๋ฐ ๊ธฐ๋ก ์ฎ๊ธฐ๊ธฐ (๋ฏธ๋ฌ๋ง) (0) | 2023.10.10 |