๐ ๋ชฉ์ฐจ
GitHub๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ค์ด ์ฝ๋๋ฅผ ๊ด๋ฆฌํ๊ณ ํ์๋ค๊ณผ ํ์ ํ๊ธฐ ์ํ ํ์์ ์ธ ๋๊ตฌ๋ก ์๋ฆฌ ์ก์์ต๋๋ค. ๋ค์ํ ๊ธฐ๋ฅ๊ณผ ์ํฌํ๋ก์ฐ๋ฅผ ํตํด ํจ์จ์ ์ธ ์ฝ๋ ์์ฑ๊ณผ ํ๋ก์ ํธ ๊ด๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ์คํ์์ค ํ๋ก์ ํธ์ ๋น์ฆ๋์ค ํ๊ฒฝ์์๋ ๋๋ฆฌ ํ์ฉ๋ฉ๋๋ค. ์ด๋ฒ ๊ธ์์๋ GitHub ํ์ ์ ์ฃผ์ ๊ฐ๋ , ํ์ฉ ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ์ต์ ํ๋ ํ์ ํ๊น์ง ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
GitHub๋ ๋ฌด์์ธ๊ฐ?
GitHub๋ Git ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ฝ๋ ํธ์คํ ํ๋ซํผ์ ๋๋ค. ์ฌ์ฉ์๋ ํ๋ก์ ํธ๋ฅผ ์ ์ฅ์(repository)์ ์ ์ฅํ๊ณ , ๋ค๋ฅธ ์ฌ์ฉ์์ ์ฝ๊ฒ ํ์ ํ ์ ์์ต๋๋ค.
GitHub๋ ์์ค ์ฝ๋ ๊ด๋ฆฌ ์ธ์๋ ๋ฌธ์ํ, ํ๋ก์ ํธ ๊ด๋ฆฌ, ์ปค๋ฎค๋ํฐ ๊ตฌ์ถ์ ์ง์ํฉ๋๋ค.
์คํ์์ค ํ๋ก์ ํธ๋ฅผ ์ํ ํ๋ซํผ์ผ๋ก ๋๋ฆฌ ์ฌ์ฉ๋๋ฉฐ, ๊ธฐ์ ํ๊ฒฝ์์๋ ์ ๋ฃ ํ๋์ผ๋ก ํ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
GitHub์ ํต์ฌ ๊ธฐ๋ฅ ์ค ํ๋๋ ๋ฒ์ ๊ด๋ฆฌ์ ํ์ ์ ์ํ ๋ธ๋์นญ ๋ฐ ๋ณํฉ(Merge)์ ๋๋ค.
GitHub๋ ์น ์ธํฐํ์ด์ค, CLI, ๋ฐ์คํฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํ์ฌ ์ฌ์ฉ์๊ฐ ์ ํธํ๋ ๋ฐฉ์์ผ๋ก ์์ ํ ์ ์๋๋ก ๋์ต๋๋ค.
์ต๊ทผ์๋ Copilot๊ณผ ๊ฐ์ AI ๋๊ตฌ๋ฅผ ๋์ ํ์ฌ ์ฝ๋ฉ ๊ฒฝํ์ ๋์ฑ ํฅ์์ํค๊ณ ์์ต๋๋ค.
GitHub Actions๋ CI/CD(์ง์์ ํตํฉ ๋ฐ ๋ฐฐํฌ)๋ฅผ ์๋ํํ๋ ๋ฐ ์ ์ฉํ ๊ธฐ๋ฅ์ ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, GitHub๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ค์๊ฒ ํ์์ ์ธ ๋๊ตฌ๋ก ์๋ฆฌ ์ก์์ต๋๋ค.
์ ์ฅ์ ์์ฑ ๋ฐ ์ค์ ๋ฐฉ๋ฒ
GitHub์์ ์ ์ฅ์๋ฅผ ์์ฑํ๋ ค๋ฉด ๋ก๊ทธ์ธ ํ, "New Repository" ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
์ ์ฅ์ ์ด๋ฆ, ์ค๋ช , ๊ณต๊ฐ ์ฌ๋ถ๋ฅผ ์ค์ ํ๊ณ "Create Repository" ๋ฒํผ์ ๋๋ฆ ๋๋ค.
์์ฑ๋ ์ ์ฅ์์์ README ํ์ผ, .gitignore ํ์ผ ๋ฑ์ ์ถ๊ฐํ์ฌ ์ด๊ธฐ ์ค์ ์ ์๋ฃํฉ๋๋ค.
GitHub CLI ๋๋ Git ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ์ ์ฅ์์ ์๊ฒฉ ์ ์ฅ์๋ฅผ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
์ด๊ธฐ ์ปค๋ฐ์ ์์ฑํ๊ณ , ์๊ฒฉ ์ ์ฅ์์ ํธ์(Push)ํ์ฌ ํ์ ์ ์์ํ ์ ์์ต๋๋ค.
Collaborator(ํ๋ ฅ์)๋ฅผ ์ถ๊ฐํ์ฌ ํ์๋ค์ด ์ ์ฅ์์ ์ ๊ทผํ ์ ์๋๋ก ์ค์ ํ์ธ์.
Branch ๋ณดํธ ๊ท์น์ ์ค์ ํ์ฌ ์ค์ํ ๋ธ๋์น๋ฅผ ๋ณดํธํ๊ณ ์ค์๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
ํ๋ก์ ํธ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ํ์ฑํํ๋ฉด Issues์ Kanban ๋ณด๋๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
๋ธ๋์น ์ ๋ต ์ดํดํ๊ธฐ
ํจ์จ์ ์ธ ํ์ ์ ์ํด ์ ์ ํ ๋ธ๋์น ์ ๋ต์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
Git Flow๋ ๊ธฐ๋ฅ, ๋ฆด๋ฆฌ์ฆ, ํซํฝ์ค ๋ธ๋์น๋ฅผ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ์ ๋ต์ ๋๋ค.
GitHub Flow๋ ๋จ์ํ ์ํฌํ๋ก์ฐ๋ฅผ ์ ํธํ๋ ํ์๊ฒ ์ ํฉํฉ๋๋ค. ๋ฉ์ธ ๋ธ๋์น์ ๋ฐ๋ก ๋ณํฉํ๋ ๋ฐฉ์์ ๋๋ค.
Feature Branch Workflow๋ ๊ธฐ๋ฅ ๋จ์๋ก ๋ธ๋์น๋ฅผ ์์ฑํ๊ณ ์์ ์ ๋ณํฉํฉ๋๋ค.
๋ธ๋์น ์ด๋ฆ์ ๋ช ํํ๊ฒ ์์ฑํ์ฌ ์์ ์ ๋ชฉ์ ์ ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ํด์ผ ํฉ๋๋ค.
Pull Request ์์ฑ ์ ํ์๊ณผ ์ถฉ๋ถํ ๋ ผ์ํ ํ ๋ณํฉํ๋๋ก ํฉ๋๋ค.
Conflict ๋ฐ์ ์ ์ด๋ฅผ ํด๊ฒฐํ๊ณ , ์์ ๋ด์ฉ์ ๋ค์ ํ์ธํฉ๋๋ค.
๋ธ๋์น ์ ๋ฆฌ ์์ ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ํํ์ฌ ์ ์ฅ์๋ฅผ ๊น๋ํ๊ฒ ์ ์งํฉ๋๋ค.
Pull Request ์์ฑ๊ณผ ๋ณํฉ
Pull Request(PR)๋ ๋ธ๋์น ๊ฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒํ ํ๊ณ ๋ณํฉํ๋ ์์ ์ ๋๋ค.
PR์ ์์ฑํ ๋๋ ์์ ๋ด์ฉ์ ๋ช ํํ ์ค๋ช ํ๋ ์ ๋ชฉ๊ณผ ๋ณธ๋ฌธ์ ์์ฑํ์ธ์.
์ฝ๋ ๋ฆฌ๋ทฐ๋ ํ์ ์์ ์ค์ํ ๋จ๊ณ๋ก, ํ์๋ค์ ํผ๋๋ฐฑ์ ์๋ ดํ์ฌ ์ฝ๋ ํ์ง์ ๊ฐ์ ํฉ๋๋ค.
๋ฆฌ๋ทฐ์ด๋ ์ฝ๋ ์คํ์ผ, ๋ ผ๋ฆฌ, ๋ณด์ ๋ฌธ์ ๋ฅผ ํ์ธํ๊ณ ์๊ฒฌ์ ๋จ๊น๋๋ค.
์น์ธ๋ PR์ ๋ณํฉ(Merge) ๋ฒํผ์ ๋๋ฌ ๋ฉ์ธ ๋ธ๋์น๋ก ํตํฉํฉ๋๋ค.
GitHub์ ์ฌ๋ฌ ๋ณํฉ ์ ๋ต์ ์ ๊ณตํ๋ฉฐ, ํ๋ก์ ํธ์ ๋ง๋ ๋ฐฉ์์ ์ ํํ์ธ์.
๋ณํฉ ํ, ๊ด๋ จ ์ด์๋ฅผ ์๋์ผ๋ก ๋ซ๋ ์ปค๋งจ๋๋ฅผ ํ์ฉํ๋ฉด ๊ด๋ฆฌ๊ฐ ํธ๋ฆฌํด์ง๋๋ค.
ํ์ํ ๊ฒฝ์ฐ ๋ณํฉ๋ ๋ธ๋์น๋ฅผ ์ญ์ ํ์ฌ ์ ์ฅ์๋ฅผ ๊น๋ํ๊ฒ ์ ์งํ์ธ์.
Issues์ Discussions๋ก ํ์ ํ๊ธฐ
Issues๋ ํ๋ก์ ํธ์ ๋ฒ๊ทธ, ์์ ๋ชฉ๋ก, ์ ์ ๋ฑ์ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
์๋ก์ด ์ด์๋ฅผ ์์ฑํ ๋๋ ์ ๋ชฉ๊ณผ ๋ด์ฉ์ ๋ช ํํ ์์ฑํ์ธ์.
Labels, Assignees, Milestones๋ฅผ ํ์ฉํ์ฌ ์ด์๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
Discussions๋ ํ์ ๊ฐ์ ์๊ฒฌ ๊ตํ ๋ฐ ํผ๋๋ฐฑ์ ์ํ ์ปค๋ฎค๋์ผ์ด์ ๊ณต๊ฐ์ ๋๋ค.
Discussions๋ ๋น๊ณต์์ ์ธ ์์ด๋์ด ๊ณต์ ์ ๋ฌธ์ ํด๊ฒฐ์ ์ ํฉํฉ๋๋ค.
Issues์ Discussions๋ ์ฐ๊ณํ์ฌ ๋ ๋์ ํ์ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
GitHub Actions์ ์ฐ๋ํ๋ฉด ์ด์ ์์ฑ ์ ์๋ ์์ ์ ์คํํ ์ ์์ต๋๋ค.
์ฃผ๊ธฐ์ ์ผ๋ก ์ด์ ์ํ๋ฅผ ์ ๊ฒํ๊ณ , ์๋ฃ๋ ์์ ์ ํด๋ก์ฆํ์ธ์.
ํจ์จ์ ์ธ ํ์ ์ ์ํ ํ
ํ์๋ค๊ณผ์ ์ํํ ์ปค๋ฎค๋์ผ์ด์ ์ด ์ฑ๊ณต์ ์ธ ํ์ ์ ํต์ฌ์ ๋๋ค.
Pull Request์ Issues๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ์ฌ ์์ ๋ด์ฉ์ ๊ณต์ ํ์ธ์.
์ฝ๋ ๋ฆฌ๋ทฐ ๋ฌธํ๋ฅผ ๋์ ํ์ฌ ์ฝ๋ ํ์ง์ ๋์ด๊ณ , ํ์ ๊ฐ์ ์ ๋ขฐ๋ฅผ ํ์ฑํฉ๋๋ค.
Slack, Microsoft Teams ๋ฑ ์ธ๋ถ ๋๊ตฌ์ ์ฐ๋ํ์ฌ ํ์ ํจ์จ์ ๋์ด์ธ์.
์ ๊ธฐ์ ์ธ ํ์์ ์ ๋ฐ์ดํธ๋ฅผ ํตํด ํ๋ก์ ํธ ์งํ ์ํฉ์ ์ ๊ฒํ์ธ์.
์์ ๋ด์ฉ๊ณผ ํผ๋๋ฐฑ์ ๊ธฐ๋กํ์ฌ ์ถํ ์ฐธ๊ณ ์๋ฃ๋ก ํ์ฉํ ์ ์์ต๋๋ค.
GitHub Wiki์ README ํ์ผ์ ์ ๊ทน์ ์ผ๋ก ์์ฑํ์ฌ ํ์ ๊ฐ ์ ๋ณด ๊ณต์ ๋ฅผ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
๋ฌธ์ํ๋ ํ๋ก์ธ์ค๋ฅผ ํตํด ์์ ์ ์ผ๊ด์ฑ๊ณผ ํจ์จ์ฑ์ ์ ์งํ์ธ์.
GitHub์ ํตํฉ ๊ฐ๋ฅํ ๋๊ตฌ๋ค
GitHub๋ ๋ค์ํ ์ธ๋ถ ๋๊ตฌ์ ํตํฉํ์ฌ ํ์ ์ ์ง์ํฉ๋๋ค.
CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ ๋ Jenkins, Travis CI, CircleCI ๋ฑ์ ํ์ฉํ ์ ์์ต๋๋ค.
Slack๊ณผ ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์ ๋๊ตฌ์ ์ฐ๋ํ์ฌ ์๋ฆผ ๋ฐ ํ์ ์ ๊ฐํํ์ธ์.
SonarQube, Snyk ๋ฑ ์ฝ๋ ํ์ง ๋ฐ ๋ณด์ ๋๊ตฌ์ ํตํฉํ ์ ์์ต๋๋ค.
Zenhub, Trello, Jira ๋ฑ์ ํ๋ก์ ํธ ๊ด๋ฆฌ ๋๊ตฌ์ ์ฐ๊ณํ์ฌ ์์ ์ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ์ธ์.
DataDog, NewRelic ๋ฑ ๋ชจ๋ํฐ๋ง ๋๊ตฌ์ ์ฐ๊ฒฐํ์ฌ ์์ ์ ์ธ ๋ฐฐํฌ๋ฅผ ์ง์ํฉ๋๋ค.
GitHub Actions๋ ๋ค์ํ ์์ ์ ์๋ํํ ์ ์๋ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋๋ค.
Webhook์ ์ฌ์ฉํ์ฌ GitHub ์ด๋ฒคํธ๋ฅผ ์ธ๋ถ ์์คํ ๊ณผ ํตํฉํ์ธ์.
โ GitHub ํ์ ๊ด๋ จ FAQ
Q: GitHub์์ ์ ์ฅ์๋ฅผ ๋น๊ณต๊ฐ๋ก ์ค์ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํ๋์?
A: ์ ์ฅ์ ์ค์ ์์ "Change repository visibility" ์ต์ ์ ์ ํํ๊ณ , Private์ผ๋ก ๋ณ๊ฒฝํ์ธ์.
Q: GitHub Actions๋ฅผ ์ฌ์ฉํด CI/CD๋ฅผ ์ค์ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํ๋์?
A: .github/workflows ๋๋ ํฐ๋ฆฌ์ YAML ํ์ผ์ ์ถ๊ฐํ์ฌ ์ํ๋ ์์ ์ ์ ์ํ์ธ์.
Q: GitHub์์ ์ถฉ๋(conflict)์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์?
A: ๋ก์ปฌ ๋ธ๋์น์์ ์ถฉ๋์ ํด๊ฒฐํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์ ์ปค๋ฐ ํ ํธ์ํ์ธ์.
Q: GitHub Issues์ Discussions์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์?
A: Issues๋ ์์ ๊ด๋ฆฌ์ ์ด์ ์ด ๋ง์ถฐ์ ธ ์๊ณ , Discussions๋ ๋น๊ณต์์ ์ปค๋ฎค๋์ผ์ด์ ์ ์ํ ๊ณต๊ฐ์ ๋๋ค.
Q: GitHub์์ ๋ธ๋์น ์ญ์ ๋ ์ด๋ป๊ฒ ํ๋์?
A: ์ ์ฅ์์ ๋ธ๋์น ํญ์์ ์ญ์ ํ๋ ค๋ ๋ธ๋์น๋ฅผ ์ ํํ ํ "Delete" ๋ฒํผ์ ๋๋ฅด์ธ์.
Q: GitHub์์ Collaborator๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด?
A: ์ ์ฅ์ ์ค์ ์์ Collaborators and Teams ํญ์์ ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ์ธ์.
Q: GitHub ์ ์ฅ์๋ฅผ ๋ก์ปฌ๋ก ๋ณต์ ํ๋ ๋ฐฉ๋ฒ์?
A: git clone ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฅ์ URL์ ์ง์ ํ์ธ์.
Q: GitHub Copilot์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์?
A: Copilot ํ์ฅ์ ์ค์นํ ํ, ์ฝ๋ ํธ์ง๊ธฐ์์ ์๋ ์์ฑ ๊ธฐ๋ฅ์ ํ์ฉํ์ธ์.