๐ GitHub ๋ ํฌ์งํ ๋ฆฌ์ ๊ผญ ํ์ํ ํ์ผ
๐ฅ README.md
ํฌํจํ ์ ๋ณด๋ค
- ํ๋ก์ ํธ ์ด๋ฆ
- ํ์ ์๊ฐ
- ํต์ฌ ๊ธฐ๋ฅ ์๊ฐ
๐ฅ .gitignore
git์ผ๋ก ๊ด๋ฆฌํ์ง ์๋ ํ์ผ ๋ชจ์
๊ฐ์ธ์ด ๊ด๋ฆฌํด์ผํ๋ secret token, ๊ณต์ ํ ํ์์๋ ์ค์ ํ์ผ ๋ฑ์ ์ถ๊ฐ
๐ฅ LICENSE
๋ผ์ด์ผ์ค ํ๊ธฐ
์คํ์์ค ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๋ณดํต ์ ์ฝ์ด ์ ์ MIT ๋ผ์ด์ผ์ค๋ Apache License ์ ์ฉ
๋ค์ํ ๋ผ์ด์ผ์ค๊ฐ ์์ด์ ํ์ํ ๊ฑธ๋ก ์ ์ฉ
๐ ํ๋ก์ ํธ ๊ด๋ฆฌ์ ํ์ฉํ ์ ์๋ GitHub ๊ธฐ๋ฅ๋ค
1. Issue
์๋ก์ด ๊ธฐ๋ฅ์ ์ ์ํ๊ฑฐ๋ ๋ฒ๊ทธ๋ฅผ ์ ๋ณดํ๋ ๋ฑ ํ๋ก์ ํธ ์ด์๋ฅผ ์ฌ๋ฆฌ๋ ๊ณณ
Pre-Project์์ ํ๋์ ์นธ๋ฐ ํฐ์ผ์ผ๋ก ์ฌ์ฉํ๋ฉด ๋๋ค.
2. Milestone
์ด์ ํ ์ญํ
task ์นด๋(Issue)๋ฅผ ๊ทธ๋ฃนํํ๋๋ฐ ์ฌ์ฉ
์ฐ๊ฒฐ๋ ํ์คํฌ ์นด๋๊ฐ ์ข ๋ฃ๋๋ฉด Milestone๋ง๋ค ์งํ ์ํฉ์ด ์ ๋ฐ์ดํธ
3. Pull Request
์์ ํ ๋ด์ฉ์ branch์ ํฉ์น ์ ์๋์ง ํ์ธํ๋ ์์ฒญ
์ปค๋ฐํ ์ฝ๋๋ฅผ ๋ฐ๋ก ์ ํํ์ฌ ํด๋น ๋ถ๋ถ์ ์ฝ๋ฉํธ(์ฝ๋ ๋ฆฌ๋ทฐ)๋ฅผ ๋ฌ ์ ์์
๋จธ์ง์ ๊ท์น์ ์ ํ ์๋ ์์
4. Project
์ ๋ฌด ๊ด๋ฆฌ๋ฅผ ํด์ค ์ ์๊ฒ ๋๋ ์๋ก์ด ๊ธฐ๋ฅ
์นธ๋ฐ ๋ณด๋๋ฅผ ์์ฑํ๊ณ ์นธ๋ฐ์ผ๋ก Pre-Project์ ์ ๋ฌด ํ๋ฆ์ ๊ด๋ฆฌ
์ ๋ฌด๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ์๊ฐ์ ํ๋ก์ ํธ ๊ด๋ฆฌ์ ํ ํํ
์นธ๋ฐ์ด๋? ํ์ด ์ํํด์ผ ํ๋ ์ ๋ฌด์ ๊ฐ ํ์์ด ๋งก์ ์ ์๋ ์์ ๋ ๊ฐ์ ๊ท ํ์ ๋ง์ถ๋ ์๋จ
์นธ(็, Kan, ์ ํธ), ๋ฐ(ๆฟ, Ban, ํ)
์นธ๋ฐ๋ณด๋์์ ์ ๋ฌด๋ฅผ ์ด๋ก ๊ตฌ์ฑ๋ ํ๋ก์ ํธ ๋ณด๋์ ํ์ํ๋ค.
๊ฐ ์ด์ ์ ๋ฌด ๋จ๊ณ๋ฅผ ๋ํ๋
๊ธฐ๋ณธ์ ์ธ ํ : ํ ์ผ, ์งํ ์ค, ์๋ฃ
๊ฐ๋ณ์์ ์ ๋ณด๋์์ ๋น์ฃผ์ผ ์นด๋๋ก ํ์
โ Work In Progress(WIP)๋ก ํ๋ฆ ๊ด๋ฆฌ
์งํ ์ค์ธ ์ ๋ฌด์ ๊ฐ์๋ฅผ ์ ํํ์ฌ ๊ณผ๋ํ๊ฒ ์ ๋ฌด๊ฐ ์์ด์ง ์์ ์ํํ ์ ๋ฌด ํ๋ฆ์ ๋ง๋ค์ด ๋ผ ์ ์๋ค.
ํ์์ด 100%์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ์ํ์์ ์๋ก์ด ์ ๋ฌด๊ฐ ์์ด๊ฒ ๋๋ฉด ์ ๋ฌด ๊ณผ๋ถํ๋ก ํจ์จ์ด ์๋์ฌ ์ ์๋ค.
๋จ๊ธฐ๊ฐ์ ๋ง์ ์์ํ์ ๋ด๋ ค๊ณ ํ๋ฉด ๊ธ๋ฐฉ ์ง์ณ์ ๋ฒ์์์ด ์ฌ ์ ์์ผ๋ฏ๋ก ์ ๋นํ๊ฒ ๋ถ๋ฐฐํ์.
์ ๋ฌด ๊ฐ์๋ฅผ ์ ์ ํ๊ฒ ์ ํด์ ๋งฅ๋ฝ ์ ํ(context switching) ์์ด ํ์ฌ ํ๊ณ ์๋ ํ๋ก์ธ์ค์ ์ง์คํ ์ ์๊ฒ ํ์ฌ ์ ๋ฌด ํจ์จ์ด ์ฆ๊ฐํ๋ค.
โ ๋ช ํํ ํ ์ ์ฑ ์ค์
์นธ๋ฐ์ ์ ํ์ฉํ๊ธฐ ์ํด์๋ ์ ์ฑ ์ ์ค์ ํด์ผ ํ๋ค.
์ธ์ ๋ ํ์์ด ๋ชจ์ฌ์ ๋ค์ ์กฐ์ ๊ฐ๋ฅํ๋ค.
โ ํ์์ ๋ฆฌ๋ทฐ๋ฅผ ํตํ ์ ๋ฌด ๊ฐ์
๋ฐ์ผ๋ฆฌ ์นธ๋ฐ ํ์
์ฃผ๊ฐ ๋ณด์ถฉ ํ์
์๊ฐ ๋๋ ์ฃผ๊ฐ์ผ๋ก KPT ํ๊ณ ๋ฅผ ์งํํ๋ ๊ฒ๋ ์ข์
๐ GitHub Milestone
GitHub ๋ง์ผ์คํค ํํ ๋ฆฌ์ผ
์ฌ๋ฌ๊ฐ์ง ์ด์๋ค์ ๊ทธ๋ฃนํํด์ ์ง์ฒ๋๋ฅผ ํ๋์ ๋ณผ ์ ์๋ค.
์) Bare Minimum Requirement, Advanced Challenge
๐ ๋ณ๊ฒฝ์ฌํญ PR ํ๊ธฐ
๐ฅ Pull Request ์ ์ฒดํฌํ๋ฉด ์ข์ ๊ฒ๋ค
- title์ด ์ฌ๋ฐ๋ฅธ ์ด์ ํ์ ์ธ๊ฐ
- ํน์ ์ด์๋ฅผ ํด๊ฒฐํ ๋, PR์ ์ ๋ชฉ์ issue ๋๋ฒ๊ฐ ์ ํ์๋๊ฐ (ex. fix #12)
- ์ปค๋ฐ ์ ๋ชฉ์ด ๊ฐ์ด๋๋ผ์ธ์ ๋ฐ๋๋๊ฐ
- ๋ณ๊ฒฝ์ฌํญ์ ํ ์คํธ๊ฐ ์ถ๊ฐ๋์๋๊ฐ
- ๋ฌธ์๋ค์ด ์ถ๊ฐ๋๊ฑฐ๋ ์ ๋ฐ์ดํธ ๋์๋๊ฐ
- breaking change๋ฅผ ์๊ฐํ์ง ์๊ฑฐ๋ breaking change์ ๋ํ ์ค๋ช ์ด ์๋ค. (? ๋ฌด์จ๋ง์ธ์ง ์ ์ดํด๊ฐ ์๊ฐ๋ค)
์์ ๊ฐ์ ์๋ฃ๋ค์ ์ฐธ๊ณ ํด์ Pull Request ์ ๋ํ ๊ฐ์ด๋๋ผ์ธ์ด๋ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์์ฑํด๋๋ ๊ฒ์ด ์ข๋ค.
์๋ก์ด branch ๋ฅผ ๋ง๋ค์ด์(feat: xxx) main ๋ธ๋์น์ ๋ณ๊ฒฝ์์ด ์๋ก์ด ๊ธฐ๋ฅ์ ๊ตฌํํ ํ ๋ง์น๋ฉด main(๋๋ dev) ๋ธ๋์น์ ํฉ์น๋ค.
merge ๋ branch๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ญ์ ํ์ง๋ง ๋์ค์ ๋ค์ ๋ณผ ์ผ์ด ์๋ค๋ฉด ์ญ์ ํ์ง ์์๋ ๋๋ค.
๐ฅ ๋ธ๋์น ์์ฑํ๊ธฐ (create ์ต์ -c)
git switch -c feature/sign-up
git checkout -c feature/sign-up
๐ฅ ๊ธฐ์กด ๋ธ๋์น๋ก ์ฎ๊ธฐ๊ธฐ
git switch main
git checkout main
๐ฅ main ๋ธ๋์น์ ๋ณํฉํ๊ธฐ
git merge feature/sign-up
๐ฅ merge๋ ๋ธ๋์น ์ญ์ ํ๊ธฐ(delete ์ต์ -d)
git branch -d feature/sign-up
โก๏ธ branch๊ฐ ํฉ์ณ์ง์ง ์์ผ๋ฉด ์ญ์ ํ์ง ๋ชปํ๋๋ก ์ค์ ๋์ด ์์.
merge ํ์ง ์๊ณ ์ญ์ ํ๊ณ ์ถ์ผ๋ฉด -D ์ต์ ์ ์ฌ์ฉํ๋ฉด ๋จ
๐ Git ํท๊ฐ๋ฆฌ๋ ๋ช ๋ น์ด
git reset [file]
-> ์ถ๊ฐํ ํ์ผ์ ์ธ์คํ ์ด์ง, ๋ณ๊ฒฝ์ฌํญ์ ์ ์ง๋จ
git diff
-> ์คํ ์ด์ง๋์ง ์์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณด์ฌ์ค
git diff --staged
-> ์คํ ์ด์งํ์ง๋ง ์ปค๋ฐํ์ง ์์ ๋ณ๊ฒฝ์ฌํญ์ ๋ณด์ฌ์ค
git branch
-> ํ์ฌ ๋ธ๋์น ๋ชฉ๋ก์ ๋ณด์ฌ์ค(*ํ์๊ฐ ํ์ฌ ์์ ์ค์ธ ๋ธ๋์น)
git branch [branch-name]
-> ํ์ฌ ์ปค๋ฐ์์ ์๋ก์ด ๋ธ๋์น๋ฅผ ์์ฑํ๋ค.
git branch -c [branch-name]
git checkout -b [branch-name]
-> ์๋ก์ด ๋ธ๋์น๋ฅผ ์์ฑํ๊ณ ์์ ์ ํด๋น ๋ธ๋์น๋ก ์ ํํ๋ค.
git merge [branch-name]
-> ํ์ฌ ๋ธ๋์น์ ํน์ ๋ธ๋์น๋ฅผ ๋ณํฉํ๋ค.
git log
-> ํ์ฌ ๋ธ๋์น์ ๋ชจ๋ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ๋ณด์ฌ์ค
git log B..A
-> ๋ธ๋์นB์ ์๋ ๋ธ๋์นA์ ๋ชจ๋ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ๋ณด์ฌ์ค
git log --follow [file]
-> ํด๋น ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ด๊ธด ๋ชจ๋ ์ปค๋ฐ์ ํ์(ํ์ผ ์ด๋ฆ ๋ณ๊ฒฝ๋ ํ์)
git diff B...A
-> ๋ธ๋์นA์๋ ์์ง๋ง ๋ธ๋์นB์ ์๋ ๊ฒ์ ๋ณ๊ฒฝ๋ด์ฉ(diff)์ ํ์ํ๋ค.
git remote add [alias] [url]
-> url์ ํตํด ํน์ ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ณ์นญ์ผ๋ก ์ถ๊ฐํ๋ค.
git fetch [alias]
-> ๋ณ์นญ์ผ๋ก ์ถ๊ฐํ ์๊ฒฉ ์ ์ฅ์์ ์๋ ๋ชจ๋ ๋ธ๋์น ๋ฐ ๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ๋ก ๊ฐ์ ธ์ด
git merge [alias]/[branch]
-> ๋ฆฌ๋ชจํธ ๋ธ๋์น๋ฅผ ํ์ฌ ์์ ์ค์ธ ๋ธ๋์น์ ๋ณํฉํ์ฌ ์ต์ ์ํ๋ก ๋ง๋ฌ
git push [alias] [branch]
-> ๋ก์ปฌ ๋ธ๋์น์ ์ปค๋ฐ์ ๋ฆฌ๋ชจํธ ๋ธ๋์น์ ์ ์กํจ
git pull
-> ์๊ฒฉ ์ ์ฅ์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ ์๋์ผ๋ก ๋ก์ปฌ ๋ธ๋์น์ ๋ณํฉ (pull = fetch + merge ์ด๋ผ์ pull์ ์ฃผ๋ก ์ฌ์ฉ)
git rebase [branch]
-> ํน์ ๋ธ๋์น์ ๋ถ๊ธฐ ์ดํ ์ปค๋ฐ์ ํ์ฌ ์์ ์ค์ธ ๋ธ๋์น์ ๋ณํฉ (merge์ ๋น์ทํ์ง๋ง ๋ค๋ฅด๋ค.)
git reset --hard [commitish]
-> ํน์ ์ปค๋ฐ ์ ์ผ๋ก ๋์๊ฐ๋ฉฐ ์คํ ์ด์ง๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ชจ๋ ์ง์
git stash
-> ์์ ํ๊ฑฐ๋ ์คํ ์ด์ง ๋ ๋ณ๊ฒฝ์ฌํญ์ ์คํ์ ์์ ์ ์ฅํ๊ณ ํ์ฌ ์์ ๋ด์ญ์์ ์ง์
git stash list
-> ์คํ์ ์์ ์ ์ฅ๋ ๋ณ๊ฒฝ์ฌํญ์ ๋ชฉ๋ก์ ๋ณด์ฌ์ค
git stash apply
-> ์คํ์ ์์ ์ ์ฅ๋ ๋ณ๊ฒฝ์ฌํญ์ ํ์ฌ ์์ ๋ด์ญ์ ์ ์ฉํจ
git stash pop
-> ์คํ์ ์์ ์ ์ฅ๋ ๋ณ๊ฒฝ์ฌํญ์ ํ์ฌ ์์ ๋ด์ญ์ ์ ์ฉํ๊ณ ์คํ์์ ์ญ์ ํจ
git stash drop
-> ์คํ์ ์์ ์ ์ฅ๋ ๋ณ๊ฒฝ์ฌํญ์ ์ญ์ ํจ
๐ Git flow
์ ๋ช ํ๊ณ ๋ง์ด ์ฐ์ด๋ branch ์ ๋ต์ด๋ค.
๐ฅ Coz’s Git flow
-> Git flow๋ฅผ ๋จ์ํ
๐ฅ Coz’s Git flow ๋ธ๋์น ์ ๋ต
- main : ์ฌ์ฉ์์๊ฒ ์ธ์ ๋ ๋ฐฐํฌํ ์ ์๋ ๋ธ๋์น
- dev : ๋ค์ ๋ฒ์ ๋ฐฐํฌ๋ฅผ ์ํ "๊ฐ๋ฐ ์ค" ๋ธ๋์น
- feat/์์ ์ด๋ฆ : ๊ธฐ๋ฅ ๊ฐ๋ฐ, ๋ฆฌํฉํ ๋ง, ๋ฌธ์ ์์ฑ๋ฑ์ ์ํ ๋ธ๋์น
branch์ ๋ํ ์ต์ํ์ ๊ธฐ์ค์ ํ์๊ณผ ์์ํ ํ์๊ฐ ์์!
์ด๋ค ๋ dev -> main ์ผ๋ก merge ํ ์ง?
์์) ๋ํ์ ๊ธฐ๋ฅ ์์ฑ, ๊ธฐํํ ๋ ์ด์์๊ณผ ์ ์ฒด์ ๋์์ธ ์ผ์ถ ์์ฑ, ํด๋ผ์ด์ธํธ-์๋ฒ-๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ณต๊ฐ๋ ์น์์ ์ ์์ ์ผ๋ก ํต์ , ์ต์ํ ๋ณด์ ๋ง๋ จ
โญ๏ธ ์ค์ ํ๋ก์ ํธ ๋๋ ๋ธ๋์น๋ฅผ ๋ก์ปฌ์์ ํฉ์น๊ธฐ ๋ณด๋ค pull request ํด์ ๊ฐ์ด ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์ถฉ๋ถํ ํ๊ฑฐ๋ ํ์ธ์ ํ๊ณ ๋จธ์งํ๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค. (๋ก์ปฌ์์ ๋จธ์ง โ, ๋ธ๋์น PR ์์ฒญ โ )
โ๏ธ branch๋ ๊ธฐ๋ฅ๋ณ๋ก ๋ง๋ค๊ณ ๊ธฐ๋ฅ๋ณ๋ก ๋ด๋น์๋ฅผ ์ ์ ํ๋ค.
๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ฑ(Back-End)
1. ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ ์ ํ (IDE)
IntelliJ
2. JDK ์ ํ
AdoptOpenJDK๊ฐ ๋ง์ด ์ฌ์ฉ๋จ (ํ์ค์ ์๋)
๋ฒ์ 11 ์ง์
3. Framework ์ ํ
Spring-boot ์ฌ์ฉ
๋ฒ์ ์? 2.7.1 ๋ฒ์ ์ผ๋ก ์ง์
4. build ๋ฐฉ์ ์ ํ
Gradle ๋ฐฉ์ ์ฌ์ฉ
-> XML ๋ฐฉ์์ผ๋ก ์์ฑํ๋ Maven๋ณด๋ค๋ Groovy ๋ฐฉ์์ผ๋ก ์์ฑํ๋ Gradle์ด ์์ฑ ๋ฐ ๋ฌธ์ ํด๊ฒฐ ์ ์ฉ์ด
5. ํ์๊ด๋ฆฌ(Software Configuration Management) ๋ฐฉ๋ฒ ๊ฒฐ์
๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๊ฐ๋ฐ ํ์ ์ ์ํ ํ์๊ด๋ฆฌ
GIthub
'TIL(Today I Learned)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
7/25 (์) [Spring Security] Authentication(์ธ์ฆ) (0) | 2022.08.15 |
---|---|
7/22 (๊ธ) Spring Security ๊ธฐ๋ณธ (0) | 2022.08.15 |
8/9 (ํ) [Cloud] ์ด์ ์ ๋ต (0) | 2022.08.15 |
7/19 (ํ) [Spring MVC] ์ ํ๋ฆฌ์ผ์ด์ ๋น๋ / ์คํ / ๋ฐฐํฌ (0) | 2022.08.03 |
7/18 (์) [Spring MVC] API ๋ฌธ์ํ (0) | 2022.08.02 |