
https://www.boostcourse.org/cs103
๊ฐ๋ฐ์์ค๋ฝ๊ฒ Github ์ฌ์ฉํ๊ธฐ
๋ถ์คํธ์ฝ์ค ๋ฌด๋ฃ ๊ฐ์
www.boostcourse.org
๋ถ์คํธ์บ ํ ๋ฐฉํ๋์ ๋ด์ผํ ๊น ๊ฐ์ ์ค ํ๋
์ฃผ์ ๊ฐ๋ ๋ค ์๋ฃ๋ค ์ฐพ์์ ๋ณด๊ธฐ ๋ฒ๊ฑฐ๋ก์ฐ๋ ์ฐธ๊ณ ํ ์ฉ๋๋ก ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ๋ค
๋ธ๋์น ์ ๋ต, Flow
Flow, Git์ ์ฌ์ฉํ๋ฉด์ Branch๋ฅผ ์ด๋ค ์์ผ๋ก ์ฌ์ฉํ ์ง์ ๋ํ ์ ๋ต
Local ์ค์ฌ Git flow
- ์ฃผ๋ก ๋ก์ปฌ ์ ์ฅ์์์ ๋ธ๋์น๋ฅผ ์ค์ฌ์ผ๋ก ํ ๊ฐ๋ฐ ํ๋ฆ
- ์ฃผ์ ๋ธ๋์น๋ก๋ main(master), develop, release, feature, hotfix ๋ฑ์ด ์กด์ฌ
- ์์ ๋ธ๋์น๋ค๊ณผ ๊ฐ์ด ๋ชฉ์ ์ ๋ฐ๋ผ ๋ค์ํ ๋ธ๋์น๋ฅผ ์ฌ์ฉํ๋ ์ ๋ต
- ๊ด๋ฆฌํด์ผํ ๋ธ๋์น๊ฐ ๋ง๊ณ , ๋ฐฐํฌํ๊ธฐ๊น์ง ๋ง์ ๋จ๊ณ๊ฐ ํ์ํด ๋ค์ ๊ฐ๋ฐ์๋๋ ๋๋ฆด ์ ์์ผ๋ ๋ฐฐํฌ ์์ ์ฑ ๋์
main (master)
- ๋ฐฐํฌ์ ๊ธฐ์ค์ด ๋๋ ๋ธ๋์น, Release Tag๋ฅผ ๊ธฐ๋ก
- main ๋ธ๋์น์ ์ง์ commit์ ํ๊ฑฐ๋ develop, release ๋ธ๋์น๊ฐ ์๋ ๋ธ๋์น์ merge ํ๋ฉด ์๋จ
develop
- ๊ฐ๋ฐ ์ค์ฌ ๋ธ๋์น
- ๋ฐฐํฌ ๋ฒ์ ๋ณ ์ ์๋ ๊ธฐ๋ฅ์ ๊ตฌํํ์ฌ develop ๋ธ๋์น์ ๋ชจ์
- ์ฝ๋ ๋ฐฐํฌ์ develop ๋ธ๋์น๋ก๋ถํฐ release ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ์ค๋น
- ์ค์ ๊ธฐ๋ฅ ๊ตฌํ์ develop ๋ธ๋์น๊ฐ ์๋ feature ๋ธ๋์น์์ ์งํ
feature
- ์ค์ ๋ก ๊ธฐ๋ฅ ๊ตฌํํ๋ ๋ธ๋์น
- ๊ธฐ๋ฅ ๊ตฌํ, ๋ฒ๊ทธํฝ์ค, ๋ฆฌํฉํ ๋ง ๋ฑ์ ์ํํ๊ธฐ ์ํด develop ๋ธ๋์น๋ก๋ถํฐ ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ์์ ์ํ
- feature ๋ธ๋์น์์ ์์ ์ด ์๋ฃ๋ ๊ฒฝ์ฐ develop ๋ธ๋์น์ merge ์งํ
release
- ๋ฐฐํฌ ์ค๋นํ๋ ๋ธ๋์น
- develop ๋ธ๋์น์์ ๋ฐฐํฌ๋ฅผ ์ํ ๊ฐ๋ฐ์ด ๋๋๋ฉด, release ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ๋ฐฐํฌ ์ค๋น
- release ๋ธ๋์น์์๋ bugfix ๋ฐ ์ถ๊ฐ์ ์ธ ๋ฆฌํฉํ ๋ง์ ์งํ, ์ถ๊ฐ๋ ์์ ์ develop ๋ธ๋์น์๋ ๋ฐ์
- ๋ฐฐํฌ ์ค๋น ์๋ฃ์ main ๋ธ๋์น๋ก merge ์งํ
hotfix
- ๋ฐฐํฌ๊ฐ ์๋ฃ๋ ๋ฒ์ (main ๋ธ๋์น) ์์ ์ฌ๊ฐํ ๋ฒ๊ทธ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ์ฌ์ฉํ๋ ๋ธ๋์น
- main ๋ธ๋์น์์ hotfix ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ํ ํ์ํ ๋ธ๋์น๋ค์ merge
Remote ์ค์ฌ Github flow
- ๋ฆฌ๋ชจํธ ์ ์ฅ์, Github์์์ ์์ ํ๋ฆ์ ์ค์ฌ์ผ๋ก ํจ
- Git Flow ์ ๋นํด ๋ ๋น ๋ฅธ ์๋์ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ์ง๋ง, ๋ฐฐํฌ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์ธ ์ ์์
- ์ฃผ๋ก main ๋ธ๋์น์ feature ๋ธ๋์น๋ก ๊ตฌ์ฑ๋จ
- main ๋ธ๋์น : Git Flow์ main, develop, release ๋ธ๋์น์ ์ญํ ์ด ํฉ์ณ์ง ํํ
- feature ๋ธ๋์น : Git Flow์ feature, hotfix ๋ธ๋์น์ ์ญํ ์ด ํฉ์ณ์ง ํํ
- Git Flow์ ๋ฌ๋ฆฌ develop, release ๋ธ๋์น์ฒ๋ผ ๋ฐฐํฌ ์ค๋น๋ฅผ ์ํ ๋ธ๋์น๊ฐ ๋ฐ๋ก ์๊ธฐ์ main ๋ธ๋์น์ mergeํ๋ ์์ ์ ๋ ์กฐ์ฌํด์ผํจ
Commit ๋ฉ์์ง ์์
Commit Convention
- Commit์ ๋จ๊ธฐ๋ ๊ท์น
- ์ผ๊ด์ฑ ์๋ Commit Log๋ฅผ ํตํด ๋ค๋ฅธ ์ฌ๋๋ค์ ์์ ๋ด์ฉ์ ๋ ์ฝ๊ฒ ํ์ ๋ฐ ์ ์ง๋ณด์
- Header, Body, Footer๋ก ๊ตฌ์ฑ๋จ (Body, Footer๋ ์ ํ์ ์ผ๋ก ์ฌ์ฉ)
Subject
- Commit Log ์ ๋ชฉ์ ๋ํ๋ด๋ ๋ถ๋ถ
- 50์ ๋๊ธฐ์ง ์์ / ๋๋ฌธ์ / ๋ง์นจํ ์ฌ์ฉX / ๊ณผ๊ฑฐ ์์ X / ๋ช
๋ น๋ฌธ
ex) Added(x), Add(o) - ์ผ๋ฐ์ ์ผ๋ก Subject์๋ Prefix๋ก Type์ด ๋ถ์. Type ๋ค์ ์์
์ ๋๋ต์ ์ธ ๋ด์ฉ ์ถ๊ฐ
- feat(์๋ก์ด ๊ธฐ๋ฅ), refactor(๋ฆฌํํ ๋ง), fix(๋ฒ๊ทธ์์ ), style(์ฝ๋ ํฌ๋ฉงํ ๋๋ ์ฃผ์์ฒ๋ฆฌ), chore(๋น๋ ์์ , ํจํค์ง ๊ด๋ฆฌ์์์ ), tests(ํ ์คํธ ์ฝ๋), docs(๋ฌธ์ ์์ ) ๋ฑ
Body
- ์์ ์ ๋ํ ์์ธ ๊ธฐ๋ก
- ๋ฐ๋ก ํฌ๋งท์ด ์กด์ฌํ์ง ์์ผ๋ Subject์ Body ๊ตฌ๋ถ์ผ๋ก ํ์นธ ๊ณต๋ฐฑ์ ๋
- ํ์๋ ์๋. ๊ทธ๋ฌ๋ Subject๋ก ์ค๋ช ์ด ํ๋ค ๊ฒฝ์ฐ Subject๋ฅผ ๋ ๊ฐ๋ตํ๊ฒ ์์ฑํ๊ณ Body์ ๋ด์ฉ ์ถ๊ฐ

Footer
- ํด๋น ์์ ๊ณผ ๊ด๋ จ๋ Issue์ Tag ๊ธฐ๋ก
- Commit Log์ Issue Tag ๋จ๊ธฐ๋ฉด Github์์ ์๋์ผ๋ก ํด๋น ํํฌ๋ฅผ ์ธ์ํ์ฌ Issue์ ๊ด๋ จ๋ Commit์ ์ฐ๊ฒฐ
- Issue, Commit ์๋ฐฉํฅ์ผ๋ก ์ฐธ๊ณ ํ๊ธฐ์ ์์ History ๊ด๋ฆฌ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ
- IssueTag ๋ #{Issue๋ฒํธ}๋ก ์์ฑ

Pre-commit
- ์ฝ๋ ์ปค๋ฐ ์ ์ ํด์ง ๋ก์ง(hook)๋ฅผ ์๋์ผ๋ก ์คํ
- ์ฝ๋ ํฌ๋งทํ : ์ฝ๋์ ์ผ๊ด๋ ์คํ์ผ ์ ์ง๋ฅผ ์ํ ํฌ๋งทํ
- ์ ์ ๋ถ์ : ์ฝ๋์์ ์ ์ฌ์ ์ธ ๋ฒ๊ทธ, ๋ณด์ ์ทจ์ฝ์ , ์ฝ๋ ํ์ง ๋ฌธ์ ํ์ธ
- ํ ์คํธ ์คํ : ์๋ํ๋ ํ ์คํธ ์คํํ์ฌ ์๋ก ์ถ๊ฐ๋๊ฑฐ๋ ์์ ํ ์ฝ๋๊ฐ ๊ธฐ์กด ๋ก์ง์ ์ํฅ์ ์ฃผ์ง ์๋์ง ํ์ธ
- ์์กด์ฑ ๊ด๋ฆฌ : ์ฝ๋์ ํ์ํ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์กด์ฑ ํ์ธ
Issue
- Issue๋ ๊ฐ๋ฐ ์์ ๋จ์, ์์ ์ History๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ์์ฑํ๋ ๊ฒ์ด ์ข๋ค
- Issue๋ก Commit Convention๊ณผ ๋น์ทํ๊ฒ ์์ Type์ ๋ถ์ฌ์ค๋ค
ex) [FEAT] / [BUG] / [REFACTOR] - ๋จผ์ ์์ ํ ์ฌํญ์ด ์๋ค๋ฉด Issue๋ก ๋ด์ฉ ๋ฑ๋ก, ๊ฐ Issue์ ๋ง๋ feature ๋ธ๋์น๋ฅผ ์์ฑํ์ฌ ์์ ์งํ
- ์ฌ๊ธฐ์ feature ๋ธ๋์น๋ฅผ ์์ฑํ ๋ ๋ธ๋์น ๋ช
์ Issue Tag ๋ถ์ด๋ฉด, Local์์ ๊ฐ ๋ธ๋์น๋ฅผ ์๋ณํ๊ธฐ ์ข์์ง
ex) feat-3/branch-name (3๋ฒ Issue๋ฅผ ํด๊ฒฐํ๋ ๊ธฐ๋ฅ ๊ตฌํ ๋ธ๋์น


- Issue๋ ๊นํ ๋ ํฌ์ Issues ๋์์ New issue๋ก ์์ฑ ๊ฐ๋ฅ
- ์ค๋ฅธ์ชฝ ์ค์ ๋ค์ ํตํด ๋ด๋น์, ๋ผ๋ฒจ, ํ๋ก์ ํธ ๋ฑ์ ์ง์ ๊ฐ๋ฅ
- Issue์๋ ์ ์ด ์์ ์ ํด์ผํ๊ณ , ์ด๋ค ์์ ์ ํ ๊ฒ์ธ์ง, ๊ด๋ จ๋ ๋ค๋ฅธ ์ด์๋ ์์ ์ด ์๋์ง ๋ฑ์ ๊ธฐ๋กํด์ผ ํ๋๋ฐ Issue Template์ ํตํด ๊ฐํธํ๊ฒ ์์ฑ ๊ฐ๋ฅํ๋ค
- Issue์ ์ข ๋ฅ๋ก๋ ๋ํ์ ์ผ๋ก Feature Request, Bug Report ๋ฑ์ด ์กด์ฌ


- ๊ธฐ์กด์ ํ ํ๋ฆฟ์ ์ฌ์ฉํด๋ ๋๊ณ ๊ฐ ํ๋ก์ ํธ, ์์ ์ ๋ฐ๋ผ ํ์ํ ํ ํ๋ฆฟ์ ๋ง๋ค์ด์ ์ฌ์ฉ ๊ฐ๋ฅ
- ๋ณดํต ํ๋ก์ ํธ ์ด๊ธฐ ์ธํ ์ผ๋ก ์งํํ๋ฉด main ๋ธ๋์น์ ์ง์ ์ถ๊ฐํ๋ค

https://logan-mle.notion.site/2-Github-Issue-1b6bab3523a74e8aa4e83cf6668abbcf
2. Github Issue ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐํ๊ธฐ | Notion
Github์์ Issue๋ฅผ ์์ฑํ๊ธฐ ์ํด Issue Template์ ์์ฑํด๋ณด๊ณ , Issue๋ฅผ ํตํด ์์ ๊ด๋ฆฌ๋ฅผ ํด๋ณด๋ ์ค์ต์ ์งํํฉ๋๋ค.
logan-mle.notion.site
์ค์ต์ ํด๋น ๊ฐ์ ์๋ฃ ์ฐธ๊ณ
๊ฐ์์์๋ ํฐ๋ฏธ๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ๊ฒ๊ณผ ๋ฌ๋ฆฌ VSCode์์ Git Graph๋ฅผ ์ฌ์ฉํ์ง๋ง ํฐ ์ฐจ์ด๋ ์๋ค

์์์ ๊ฐ๋จํ ์ด์๋ฅผ ์์ฑ ํ ๋ก์ปฌ์์ main.py ์์ฑํ์ฌ ์ถ๊ฐ ํ ์ปค๋ฐ, ํธ์ํ์ ๋ ์์ ํ์ํ ๋ถ๋ถ์ฒ๋ผ ์ปค๋ฐ์ด ์ด์์ ์ฐ๋๋์ด ํ์คํ ๋ฆฌ๋ก ๋จ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค
์ฌ๊ธฐ์ ์ปค๋ฐํ ๋ ์ฃผ์ํ ๋ถ๋ถ์ ์์ ํ๊ณ ์ ํ๋ ์ด์์ ํด๋น ํ๊ทธ ๋ฒํธ๋ฅผ ์ ํ์ธํ๊ณ ํ๊น ํด์ผ ํ๋ค๋ ๊ฒ
feat: Add add function #2
์ด๋ฐ ์์ผ๋ก ์ปค๋ฐ์ ๋จ๊ธธ ๋ ์ด์ ํ๊น ์ ์ ํด์ค์ผํ๋ค
Pull Request
- ๋ณดํต PR์ด๋ผ ๋ถ๋ฅด๋ Pull Request๋ ๋ค๋ฅธ ๋ธ๋์น๋ก Merge ์์ ์ ์งํํ๊ธฐ ์ ํ์์๊ฒ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ๋ ๋จ๊ณ์ด๋ค
- ๊ฐ์์์๋ ์์ ๊ฐ์, ๋ณ๊ฒฝ๋ ๋ถ๋ถ, ์ฐธ๊ณ ์ฌํญ, ๊ด๋ จ ์ด์ ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ ์ด๋ฐ ๋ด์ฉ๊ณผ ํ ํ๋ฆฟ์ ํ์ฌ์ ํ๋ง๋ค ์ฐจ์ด๊ฐ ์กด์ฌํ ์ ์๋ค
- ์์ธ ๋ด์ฉ์ ๊ฐ์ฌ๋ ์๋ฃ ์ฐธ๊ณ
https://logan-mle.notion.site/3-Github-Pull-Request-d26cb4a1623f42c0a73fa34ae4e29ed4
3. Github Pull Request๋ฅผ ํตํด ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ๊ธฐ | Notion
์ฝ๋๋ฅผ Merge ํ๊ธฐ ์ํด ํ์์๊ฒ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ๋ ๋จ๊ณ์ธ Pull Request์ ๋ํ Template ์์ฑ๊ณผ ์ฝ๋ ๋ฆฌ๋ทฐ ์ค์ต์ ์งํํฉ๋๋ค.
logan-mle.notion.site
- ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณด๋ฉด
- PR๋ ์ฌ์ฉํ ํ ํ๋ฆฟ์ .github ๋๋ ํ ๋ฆฌ์ ์ถ๊ฐ (๊นํ๋ธ์์ main ๋ธ๋์น์ ์ง์ ์ถ๊ฐํ ์๋ ์๊ณ ๋ก์ปฌ์์ ์ถ๊ฐํ ๊ฒฝ์ฐ main ๋ธ๋์น์์ ์์ฑ ํ ์ปค๋ฐ ๋ฐ ํธ์ํด์ค ๊ฒ)
- ์ด์ ์ Push ํ main์ ๋ณํฉ๋์ง ์์ feature ๋ธ๋์น๋ฅผ ๊นํ๋ธ์์ Compare & pull request๋ฅผ ํด๋ฆญํ๋ค
- ์ถ๊ฐํ PR ํ ํ๋ฆฟ์ ์์ ๋ด์ฉ ๋ฑ์ ์์ฑ ํ Create pull request. ๋ฆฌ๋ทฐ์ด ๋ฐ ๋ด๋น์, ๋ผ๋ฒจ ๋ฑ์ ์ค์ ํด์ค๋ค
- ์ ์์ ์ผ๋ก ์งํ๋์๋ค๋ฉด ์๋์ฒ๋ผ ์ด์์ ์์ ๋ด์ฉ ์ฌํญ๋ค์ ํ์ธํ๋ฉฐ ๋ฆฌ๋ทฐ๋ฅผ ์์ํ๋ค

- Issue Tags์์ ํน์ ํค์๋์ Issue Tag๋ฅผ ์์ฑํ๋ฉด ์๋์ผ๋ก Issue๊ฐ ๋ซํ๊ฒ๋ ์ฒ๋ฆฌํ ์ ์๋ค
- close, closes, closed, fix, fixes, fixed, resolve, resolves, resolved

๋ฆฌ๋ทฐ ์ comment์ review๋ก ๋ฆฌ๋ทฐ๋ฅผ ๋จ๊ธธ ์ ์๋ค
- Add single comment
- ๋จ๊ธด ์ฝ๋ฉํธ๋ฅผ ๋ฐ๋ก ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์, ๋ฉ์ธ์ง ํ๋ํ๋๋ฅผ ๊ฐ๋ณ ๋ฆฌ๋ทฐ๋ก ๋จ๊ธด๋ค
- Start a review
- ์ฌ๋ฌ ์ฝ๋ฉํธ๋ฅผ ๋จ๊ธฐ๊ณ ์ฝ๋ฉํธ๋ฅผ ๋ชจ์์ ํ๋ฒ์ ๋ฆฌ๋ทฐ ๋ฉ์ธ์ง์ ํจ๊ป ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์
์ด๋ ๊ฒ ์ฝ๋์ ๋ํด ๋จ๊ฒจ์ฃผ๋ ๋ด์ฉ๋ค์ ๋ณด๋ฉด์ ๋ค์ ์์ ํด์ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ๋ณตํ๊ณ ์กฐ๊ฑด์ด ๋ง์กฑ๋์๋ค๋ฉด Merge๋ฅผ ์งํํ๋ค
์ฝ๋๋ฅผ Merge ํ ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค

- Create a merge commit - Merge Commit์ ๋จ๊ธฐ๊ณ ์ฝ๋๋ฅผ Merge
- ๋ธ๋์น์์ ๋ฐ์ํ Commit Log + Merge Commit
- Squash and merge - ๋ธ๋์น ๋ด์ ์ถ๊ฐ๋ ๋ชจ๋ Commit์ ํ๋์ Commit์ผ๋ก Squash ํ๊ณ ์ฝ๋๋ฅผ Merge
- ๋ธ๋์น์์ ๋ฐ์ํ Commit Log๋ฅผ ํฉ์น ํ๋์ Commit
- Rebase and merge - ๋ธ๋์น๋ฅผ ๋์ ๋ธ๋์น์ Rebase ํ Merge
- ๋ธ๋์น์์ ๋ฐ์ํ Commit Log
Pre-commit ์ ์ฉ
https://logan-mle.notion.site/4-Pre-commit-cf428cdc8dce441887b6790de5a42319
4. Pre-commit ์ผ๋ก ์ฝ๋ ํฌ๋งทํ ์๋ํ ํ๊ธฐ | Notion
Pre-commit์ ์ค์ ํ์ฌ ์ฝ๋ ๋ณ๊ฒฝ์ Commit ํ ๋ ์ฝ๋ ํฌ๋งทํ ์ ์๋ํํ๋ ์ค์ต์ ์งํํฉ๋๋ค.
logan-mle.notion.site
์ถ๊ฐ๋ก ์์ commit ๋ฉ์ธ์ง ์์ ๋ถ๋ถ์์ pre-commit์ ๋ํ ์ค๋ช ์ด ์์๋๋ฐ ์ฌ๊ธฐ์ ๋ํ ์ค์ต๋ ์์ด์ ๊ฐ์ด ์งํํด๋ณด์๋ค
ํด๋น ํ์ด์ง์์ ์ ์ค๋ช ๋์ด ์์ผ๋ ์์ธํ ๋ด์ฉ์ ์์ ํ์ง ์๊ณ ๊ฐ๋จํ๋ง ์ ๋ฆฌ
- pre-commit ์ถ๊ฐํ๋ค๋ ์ด์ ์์ฑ
- ํด๋น ๊ธฐ๋ฅ ๊ตฌํ์ ์ํ ๋ก์ปฌ์์ feature ๋ธ๋์น ์์ฑ
- pre-commit ์ค์น (pip install pre-commit)
- pre-commit config ์ค์
- ํฐ๋ฏธ๋์์ pre-commit sample-config > .pre-commit-config.yaml ์คํํ๋ฉด ์ํ config yaml ์์ฑ๋จ
- ๊ณต๋ฐฑ ์ ๊ฑฐ, end-of-file ๊ฒ์ฌ, yaml ๊ฒ์ฌ, ๋์ฉ๋ ํ์ผ ๊ฒ์ฌ ๋ฑ์ด ๊ธฐ๋ณธ hook์ผ๋ก ์ค์
- pre-commit autoupdate ๋ช ๋ น์ด๋ก ์ค์ ๋ hook๋ค ์ ๋ฐ์ดํธ
- pre-commit install ๋ช
๋ น์ด๋ก ํ์ฌ ํ๋ก์ ํธ์ pre-commit ์ค์น
์ด์ ํ๋ก์ ํธ์์ commit์ ์ํํ ๋๋ง๋ค ์ ์๋ hook๋ค์ด ์คํ๋๋ค - ์ค์ต์์๋ ํฐ๋ฏธ๋์์ ์ปค๋ฐ์ ํ๊ธฐ ๋๋ฌธ์ pre-commit ์ด๊ธฐํ์ ์ ์๋ hook๋ค์ด ์คํ๋๋ ๋ด์ญ๋ค์ด ์ถ๋ ฅ๋์ง๋ง vscode์ ๊น ๊ทธ๋ํ๋ก ์ปค๋ฐํ ๊ฒฝ์ฐ ์ถ๋ ฅ์ด ๋์ค๋๋์ ์ปค๋ฐ๊ณผ pre-commit ์์ ๋ค์ด ์งํ๋๊ธฐ์ ์ข ๋ ์ค๋ ๊ฑธ๋ฆฐ๋ค
- ๊ธฐ์กด ์ฝ๋์ pre-commit ์ ์ฉ
- pre-commit run --all-files ๋ช ๋ น์ด๋ก ์ ์ฒด ํ์ผ์ ๊ฒ์ฌ ๋ฐ ์์
์ด๋ ๊ฒ ํ๋ฉด ์ด์์ ์ปค๋ฐ๋ค์ด ์ฐ๊ฒฐ๋์ด ํ์คํ ๋ฆฌ๊ฐ ๋จ๊ณ ํธ์ํ feature ๋ธ๋์น์ ๋ํด์ PR์ ์งํํ์ฌ ์ฝ๋ ๋ฆฌ๋ทฐ, Mergeํ๋ฉด pre-commit๊น์ง ์ ์ฉํ๋ ์ค์ต์ ๋ง์น๊ฒ๋๋ค
Tag
- ํน์ ์ปค๋ฐ์ ๋ํ ํ์
- ํน์ ์์ ์์ ์ฝ๋๊ฐ ์์ ํ๋๊ฑฐ๋ ํน๋ณํ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ํน์ ์ปค๋ฐ์ ํ๊ทธ๋ฅผ ์ง์ ํ์ฌ ํด๋น ์์ ์ ๊ธฐ๋ก
- ์ฃผ๋ก ๋ฒ์ ๋ฒํธ์ ์ฌ์ฉ, ์ผ๋ฐ์ ์ผ๋ก ์ถ์๋ ๋ฒ์ ์ ๋ํ ํ๊ทธ๋ฅผ ์ง์
- Lightweight Tag : ๋ฒ์ ๋ง์ ๊ธฐ๋กํ๋ Tag
- Annotated Tag : ํ๊ทธ๋ฅผ ์์ฑํ ์ ์ , ์ด๋ฉ์ผ, ํ๊ทธ ์์ฑ ๋ ์ง, ํ๊ทธ ๋ฉ์์ง ๋ฑ์ ํจ๊ป ๊ธฐ๋กํ๋ Tag
Semantic Versioning
- ์ํํธ์จ์ด ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํ ํ์ค๋ฐฉ๋ฒ๋ก ์ค ํ๋, ์ฃผ๋ก ์คํ ์์ค ํ๋ก์ ํธ์์ ๋๋ฆฌ ์ฌ์ฉ๋จ
- ๋ฒ์ ๋ฒํธ ๋ถ์ฌ๋ฅผ ํตํด ์ํํธ์จ์ด์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ช ํํ ํ๊ณ , ๋ฒ์ ๊ฐ ํธํ์ฑ ๊ด๋ฆฌ์ ๋์์ ์ค
- ์๋งจํฑ ๋ฒ์ ํ์ : MAJOR.MINOR.PATCH
- MAJOR : ์ฃผ ๋ฒ์ ๋ฒํธ / ํ์ ํธํ์ฑ์ด ์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๋ ์ฆ๊ฐ / ์ฃผ๋ก ํฐ ๊ธฐ๋ฅ์ ์ถ๊ฐ, ๊ธฐ์กด ๊ธฐ๋ฅ ๋ณ๊ฒฝ์ด ์์ ๋ ์ฆ๊ฐ
- MINOR : ๋ถ ๋ฒ์ ๋ฒํธ / ํ์ ํธํ์ฑ ์ ์งํ๋ฉด์ ๊ธฐ๋ฅ ์ถ๊ฐ๋ ๋ ์ฆ๊ฐ / ์ฃผ๋ก ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ์ ์ฆ๊ฐ
- PATCH : ํจ์น ๋ฒํธ / ๊ธฐ์กด ๊ธฐ๋ฅ์ ๋ํ ๋ฒ๊ทธ ์์ ๋ฑ ํ์ ํธํ์ ๋ณ๊ฒฝ ์ฌํญ ์์ ์ ์ฆ๊ฐ
Tag ์์ฑ ๋ฐ ๋ช ๋ น์ด
- git tag <tagname> ์ผ๋ก ํ๊ทธ ์์ฑ
-a ์ต์ ์ผ๋ก Annotated Tag ์์ฑ - git tag : ์์ฑ๋ ํ๊ทธ ํ์ธ
- git show <tag name> : ํ๊ทธ ์์ธ ๋ด์ฉ ํ์ธ
- git push origin <tag name> : Tag๋ฅผ ๊นํ์ ์ ๋ก๋
- git log : ํ์ฌ commit์ tag ๋ฑ๋ก๋ ๊ฒ ํ์ธ
Release
- ํน์ ํ๊ทธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ณต์์ ์ธ ๋ฐฐํฌ๋ฅผ ๋ํ๋
- ์์ฑํ ํ๊ทธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊นํ์์ Release ๋ฒ์ ์ ๊ธฐ๋กํ ์ ์์
- ๋ฆด๋ฆฌ์ฆ ํ์ด์ง๋ฅผ ํตํด ์ฌ์ฉ์์๊ฒ ์๋ก์ด ๋ฒ์ ์ ์ํํธ์จ์ด๋ฅผ ์ ๊ณตํ๊ณ , ํด๋น ๋ฒ์ ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ ๋ฐ ๋ฆด๋ฆฌ์ฆ ๋ ธํธ ์ ๊ณต
Git Tag ๋ฐ Github Release ์์ฑ
https://logan-mle.notion.site/5-Git-Tag-Github-Release-255e7e0b6ab849e09924cf7733e0b8fb
5. Git Tag & Github Release ์์ฑํ๊ธฐ | Notion
Git Tag์ Semantic Versioning์ ๊ธฐ๋ฐ์ผ๋ก ๋ฒ์ ์ ๊ธฐ๋กํด๋ด ๋๋ค. ๊ธฐ๋กํ Tag๋ก Github์์ Release๋ฅผ ์์ฑํ๋ ์ค์ต์ ์งํํฉ๋๋ค.
logan-mle.notion.site
- git tag v0.1.0 ๋ช ๋ น์ด๋ก ์ด๊ธฐ ๋ฒ์ ์์ฑ
- git push origin v0.1.0 ์ผ๋ก ์์ฑํ Git Tag๋ฅผ Github Repo๋ก ํธ์
C:\Users\userpc\Downloads\git_study\WORK1\git-study2>git push origin v0.1.0
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To https://github.com/bbonghag/git-study2.git
* [new tag] v0.1.0 -> v0.1.0
์๋ ์ ๋ถ๋ถ์ ๋๋ฌ์ ํ๊ทธ๋ฅผ ํ์ธํ ์ ์๋ค


- ์ฃผ์ํ ์ ์ผ๋ก๋ vscode ๊น ๊ทธ๋ํ GUI๋ก ์์ ํ๋ ๊ฑธ๋ก ํธ์ํ๋ฉด ํด๋น ํ๊ทธ๊ฐ ๋ ํฌ์ ํธ์๋์ง ์๋๋ค
- ๊ฐ๋จํ ์ปค๋ฐ, ํธ์์ ํ ์ ๋๋ GUI์ ๋จ์ถํค๋ก ์ฌ์ฉํ๋ ๊ฒฐ๊ตญ์๋ ํฐ๋ฏธ๋๋ก๋ ์์ ํ ์ค ์์์ผํ๋ค
- ๋ชจ๋ ๋ช ๋ น์ด๊น์ง ๋ค ์ ๋ฆฌํ๊ธฐ์ ๋ด์ฉ์ด ๋๋ฌด ๋ง๊ธฐ์.. ์ฃผ์ ๋ช ๋ น์ด ์์ฃผ๋ก๋ง ๊ฐ๋จํ๊ฒ ์ ๋ฆฌ

- ์์ ์ค๋ฅธ์ชฝ Release ๋ถ๋ถ์์ ์๋์ Create a new release ๋ฅผ ๋๋ฅด๋ฉด ์๋์ ๊ฐ์ ์ฐฝ์ด ๋์จ๋ค
- Tag๋ฅผ ๋๋ฌ๋ณด๋ฉด ์ด์ ์ ๋ฑ๋กํ v0.1.0์ ์ ํ, Generate release notes๋ฅผ ๋๋ฅด๋ฉด ์ ๋ชฉ๊ณผ ๋ด์ฉ๋ค์ ์๋์ผ๋ก ์์ฑํด์ค๋ค
- ์๋ ์์ฑํ ๊ฒฝ์ฐ ์ด์ Release์ ํ์ฌ Release ์ฌ์ด์ ์ถ๊ฐ๋ Pull Request์ ์ด๋ฆ์ด ํฌํจ๋๋ค
- ๋งจ ์๋ Publish release ๋๋ฅด๋ฉด Release ์์ฑ ์๋ฃ

Github Action
- Github์์ ์ ๊ณต๋๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ํฌ ํ๋ก์ฐ
- Github Repo์์ ๋น๋, ํ ์คํธ, ๋ฐฐํฌ์ ๊ฐ์ ๋ค์ํ ์์ ์ YAML ํ์ผ๋ก ์ ์ํ ์ ์๋ค
| ๊ตฌ์ฑ ์์ | ์ค๋ช | ์์ |
| Workflow | ์๋ํ ์ ์ฒด ๋จ์๋ฅผ ์ ์ํ๋ YAML ํ์ผ. Job๊ณผ Step๋ค๋ก ๊ตฌ์ฑ๋จ .github/workflows/ ํด๋์ ์์น. |
ci.yml, deploy.yml |
| Event (Trigger) | Workflow๊ฐ ์คํ๋๋ ๊ณ๊ธฐ(ํธ๋ฆฌ๊ฑฐ). ex) push, pull_request, issue ๋ฑ |
on: push, on: pull_request |
| Job | Workflow ์์์ ์คํ๋๋ ์์
๋จ์. ๊ฐ Job์ ๋ ๋ฆฝ์ ์ธ Runner ํ๊ฒฝ์์ ์คํ. |
jobs: build: |
| Runner | ์ค์ Job์ ์คํํ๋ ์๋ฒ ํ๊ฒฝ (๋จธ์ ). GitHub-hosted(๊ธฐ๋ณธ ์ ๊ณต) ๋๋ Self-hosted ๊ฐ๋ฅ. |
runs-on: ubuntu-latest |
| Step | Job ์์ ๋จ๊ณ ๋จ์ ๋ช ๋ น์ด ๋๋ Action ์คํ ๋จ์. | steps: - name: Checkout code |
| Action | ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์์ ๋จ์(๋ชจ๋). Step ์์์ ์คํ๋๋ฉฐ, Marketplace์์ ๊ฐ์ ธ์ค๊ฑฐ๋ ์ง์ ์์ฑ ๊ฐ๋ฅ. | uses: actions/checkout@v4 |
| Command (run) | Action ๋์ ์ง์ ๋ช ๋ น์ด ์คํ. Shell ๋ช ๋ น์ด๋ฅผ ๋ฐ๋ก ์ํ. | run: npm install |
| Artifact | Job ๊ฐ ๋๋ Workflow ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ·๋ณด์กดํ ์ ์๋ ํ์ผ. | ํ ์คํธ ๊ฒฐ๊ณผ, ๋น๋ ํ์ผ ๋ฑ |
| Secret | ๋ฏผ๊ฐํ ๋ฐ์ดํฐ(API ํค, ํ ํฐ ๋ฑ)๋ฅผ ์ํธํ ์ ์ฅ ํ ํ๊ฒฝ ๋ณ์์ฒ๋ผ ์ฌ์ฉ. | {{ secrets.GITHUB_TOKEN }} |
| Matrix | ์ฌ๋ฌ ํ๊ฒฝ(์: OS, Python ๋ฒ์ ๋ฑ)์ ๋ํด ๋ณ๋ ฌ Job ์คํ. | strategy: matrix: os: [ubuntu, windows] |
| Environment / Context | Workflow ๋ด๋ถ์์ ์ฐธ์กฐ ๊ฐ๋ฅํ ๋ฉํ๋ฐ์ดํฐ, ๋ณ์ ์ ๋ณด ์งํฉ. | {{ github.ref }}, {{ env.VARIABLE }} |
๋๋ถ๋ถ ๊ทธ๋ ์ง๋ง ์ง์ ์ค์ตํด๋ณด๋๊ฒ ๋ฒ ์คํธ
์๋ ์๋ฃ ์ฐธ๊ณ
https://logan-mle.notion.site/6-Github-Action-Workflow-50377538a9734bd0a28765deaa659417
6. Github Action Workflow ์๋ํ ํ๊ธฐ | Notion
Github Action์ ํ์ฉํ์ฌ ํน์ ํ ์กฐ๊ฑด์ ์ํด ์คํ๋๋ Workflow๋ฅผ ์ ์ํ๊ณ , ์คํํด๋ณด๋ ์ค์ต์ ์งํํฉ๋๋ค.
logan-mle.notion.site
ํด๋น ์ค์ต ๋ด์ฉ์ ๋๋ฌด ๋ง์์ ๋ค ์ ๋ฆฌ๋ ๋ชปํ๊ณ ๋์ ์ค๊ฐ์ ์ด์๊ฐ ๋ฐ์ํ๋ค
์ด์ ์ ์ค์ต ๋ถ๋ถ๊ณผ ํ์ฌ ์งํ์ค์ธ ๋ด์ฉ์ด ์ถฉ๋ํด์ ๋ฐ์ํ, ๊ฝค๋ ์ ์๋ฏธํ ๋ฌธ์ ๋ผ ๋์ ์ด๊ธฐ..
์ํฉ์ Pytest Workflow๋ฅผ ์ถ๊ฐํ๋ ค๋ ์ํ

๋ก์ปฌ์์ ์๋ก์ด feature ๋ธ๋์น ํ๋ ํ์ ์ค์ต ๋ด์ฉ๋๋ก ์ญ ์งํํ๊ณ ์ปค๋ฐ! ํธ์!! PR๊น์ง!!
๊ทธ๋ฌ๋ ๊ทธ ์ค requirements.txt๋ฅผ ๋น ๋จ๋ ค์ ์๋์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค

requirements.txt๋ฅผ ๋ง๋ค๊ณ ๋ค์ ํธ์ -> ์ pytest ์์ฑ์ ๋ ๊น๋จน์ด์ ์๋ฌ ๋ฐ์..

๊ทธ๋์ requirements.txt์ pytest๋ฅผ ์ถ๊ฐํ๊ณ ๋ค์ ์ปค๋ฐํ๋ ค๋๋ฐ ์๋์ ์ด์๊ฐ ๋ฐ์ํ๋ค
> git -c user.useConfigOnly=true commit --quiet --allow-empty-message --file - --allow-empty-message
trim trailing whitespace.................................................Passed
fix end of files.........................................................Failed
- hook id: end-of-file-fixer
- exit code: 1
- files were modified by this hook
Fixing requirements.txt
check yaml...........................................(no files to check)Skipped
check for added large files..............................................Passed
black................................................(no files to check)Skipped
๋ญ์๋ฆฌ๊ณ ...
fix end of files.........................................................Failed
- hook id: end-of-file-fixer
- exit code: 1
- files were modified by this hook
Fixing requirements.txt
- ์ด ๋ถ๋ถ์ด ํต์ฌ. pre-commit์ hook์ด ์คํ๋์๋๋ฐ Failed์ด๋ผ ๋ฌ๋ค
- end-of-file-fixer ํ ์ด requirements.txt ํ์ผ์ ์๋์ผ๋ก ์์ ํ๋ค๋ ๋ป
- ๊ตฌ์ฒด์ ์ผ๋ก๋ “ํ์ผ ๋์ newline(๊ฐํ๋ฌธ์)”์ด ์์ด์ pre-commit์ด ์๋์ผ๋ก ์ถ๊ฐํ ๊ฒ
์ด๋ ๊ฒ ๋์์ ๋ ์คํ ์ด์ง์๋ ์์ ๋์ง ์์ requirements.txt๊ฐ ์ฌ๋ผ๊ฐ์๊ณ ์์ ๋ requirements.txt๊ฐ ๋ ์กด์ฌํ๋ค
์์ ๋์ง ์์ requirements.txt ๋ ๋ด๋ฆฌ๊ณ ์์ ๋ requirements.txt๋ฅผ ์คํ ์ด์ง์ ์ฌ๋ ค์ ๋ค์ ์ปค๋ฐํ๋ฉด ์ ์ ๋์ํ๋ค!!
์ ์์ ์๋ ํ์ผ ๊ทธ๋๋ก ๋ ์ฑ๋ก ์ปค๋ฐํ๋ฉด ๋์ผํ ์ปค๋ฐ ์ค๋จ์ด ๊ณ์ ๋ฐ์ํ๋ ์ฃผ์ํ ๊ฒ
์ ๋ฆฌํ์๋ฉด
- pre-commit์ ์ปค๋ฐ ์ ์ ์ฝ๋ ํฌ๋งท, ์คํ์ผ ๋ฑ์ ๊ฒ์ฌํ๊ณ ์์ ํ๋ ํด
- end-of-file-fixer ํ ์ ๋ชจ๋ ํ์ผ์ ๋์ด ๋ฐ๋์ ๊ฐํ ๋ฌธ์๋ก ๋๋๋๋ก ๊ฐ์ ํ๋ค
- ์คํจ(Failed)๋ก ํ์๋ ๊ฑด ์๋ฌ๊ฐ ์๋๋ผ, ์์ ์ด ์ด๋ฃจ์ด์ก๋ค๋ ๋ป
→ requirements.txt๋ฅผ ์๋ ์์ ํ๊ณ , ์ปค๋ฐ์ ๋ฉ์ท์.

ํด ์ ์ ๋์ ์๋ฃ..
์ถ๊ฐ๋ก ํ์ธํด๋ณด๋ฉด ์ข์ workflow ์์ ๋ค
Github Release Drafter Workflow
- main ๋ธ๋์น์ ์ฝ๋๊ฐ Merge ๋๋ฉด ์๋์ผ๋ก Git Tag ๋ฐ Release Drafter๋ฅผ ์์ฑํ๋ Workflow
- ์ถํ ์๋ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ(CD, Continuous Deployment)์์ Release๊ฐ Publish ๋๋ ๊ฒ์ ๊ฐ์งํ์ฌ ๋ฐฐํฌ๋๋๋ก ํ ์ ์์ต๋๋ค.
- ์ค๋ช ์ https://jiyeonseo.github.io/2022/10/15/github-action-release-drafter/ ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Google Cloud Platform Cloud Run ๋ฐฐํฌ Workflow
- main ๋ธ๋์น์ ์ฝ๋๊ฐ Merge ๋๋ฉด GCP Cloud Run์ผ๋ก ๋ฐฐํฌํ๋ Workflow
- Docker Image Build → GCR Docker Image Push → Cloud Run Deploy
- ์ค๋ช ์ 5.2. CI/CD Workflow ์ถ๊ฐํ๊ธฐ ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
- https://github.com/Ilevk/fastapi-tutorial/blob/main/.github/workflows/cd_workflow.yaml
์๊ฑด ๋์ค์ ํ๋ฒ ํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ์์ ๊ฐ์ด๋์ ์๋ ๋ด์ฉ ๊ทธ๋๋ก ๊ฐ์ ธ์๋ค
๋ ๋ฒ์งธ ์์ , GCP๋ ์๋์ง๋ง ์ด์ Azure ๊ต์ก ๋ค์ผ๋ฉด์ ๋ ํฌ์ ์ฝ๋ ํธ์๋ ๊ฒฝ์ฐ Docker Image Build -> Azure Container Registry Push -> ArgoCD๋ก AKS ์ด๋ฏธ์ง-์ปจํ ์ด๋ ๋ฐฐํฌ๊น์ง ์์ ํ๋ ์ ์ด ์๋๋ฐ ๊ธฐ๋กํ๋ ๋ด์ฉ๋ค ๋ธ๋ก๊ทธ ๊ธ๋ก ์ ๋ฆฌํด์ผ๊ฒ ๋ค
Readme
- Github Repository์ ๋ค์ด๊ฐ์ ๋ ๋ง๋๋ ๊ฐ์ฅ ์ฒซ ํ์ด์ง์ด์ ํ๋ก์ ํธ์ ์ผ๊ตด
- Markdown ๋ฌธ๋ฒ์ ๋ฐ๋ผ ์์ฑ์ Github ํ์ด์ง์์ ์๋์ผ๋ก ๋ ๋๋ง๋์ด ๋ณด์ฌ์ง๋ค
- ํ๋ก์ ํธ์ ๋ํ ๊ฐ๋ตํ ์๊ฐ ๋ฐ ์ค๋ช , ๋ชฉ์ , ์ฌ์ฉ ๋ฐฉ๋ฒ, ์ค์น ๋ฐฉ๋ฒ ๋ฑ ์ฌ์ฉ์๊ฐ ํ๋ก์ ํธ๋ฅผ ์ฝ๊ฒ ์ดํดํ๊ณ ์์ํ ์ ์๋๋ก ๊ฐ์ด๋๋ฅผ ์์ฑํ๋ค
- ์์์ด ๋ฐ๋ก ์ ํด์ ธ์๋ ๊ฒ์ ์๋์ง๋ง ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์ฑ ์์๋ค์ด ์ถ๊ฐ๋์ด ์์ผ๋ฉด ์ข๋ค
- ํ๋ก์ ํธ ์๊ฐ : ํ๋ก์ ํธ์ ๋ชฉ์ ๊ณผ ๋ด์ฉ์ ๊ฐ๋ตํ๊ฒ ์ค๋ช . ์ด๋ค ํ๋ก์ ํธ์ธ์ง ์๊ฐํ๊ณ ์ฌ์ฉ๋ ๊ธฐ์ ์คํ ๋ฐ ํ๊ฒฝ
- ์ค์น ๋ฐ ์ฌ์ฉ ๋ฐฉ๋ฒ : ์ฌ์ฉํ ์ธ์ด์ ๋ฒ์ , ์ค์นํ๋ ๋ฐฉ๋ฒ๊ณผ ์ปค๋งจ๋ ๋๋ ์คํฌ๋ฆฝํธ
- ๊ธฐ๋ฅ ๋ฐ ์์ : ํ๋ก์ ํธ์ ํฌํจ๋ ๋ชจ๋์ ๊ธฐ๋ฅ๊ณผ ๋ํ์ ์ธ ์ค๋ช , ์์. ์คํ ์ปค๋งจ๋๋ ์ฌ์ฉ ๋ฐฉ๋ฒ
- ๋ผ์ด์ ์ค ์ ๋ณด : ํด๋น ํ๋ก์ ํธ์ ์ฌ์ฉ ๋ฒ์๋ฅผ ์๋ ค์ค (MIT, Apache, GPL, BSD)
- ๊ธฐ์ฌ ๋ฐฉ๋ฒ : ์คํ ์์ค์ผ ๊ฒฝ์ฐ ์ค์. ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์๋ด
https://logan-mle.notion.site/7-Readme-27ceda4576aa482297472338a2d755c0
7. Readme ์์ฑํ๊ธฐ | Notion
Github Repository์ ์ผ๊ตด์ธ Readme๋ฅผ ์์ฑํด๋ณด๋ ์ค์ต์ ์งํํฉ๋๋ค.
logan-mle.notion.site

์ค์ต ๊ฐ์ด๋ ๋ฐ๋ผ ์ญ ์งํํ๋ฉด ์์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค
๋ฆฌ๋๋ฏธ๋ ์น์ ๊นํ์์๋ ์ง์ ์์ ๊ฐ๋ฅํ๋ค
์ง๊ธ๊น์ง ๊น ๊ด๋ จ ๊ฐ์ 2๊ฐ๋ฅผ ์ฐ๋ฌ์๋ณด๋ฉด์ ์ฌ๋ฌ๊ฐ์ง ๊ณต๋ถ ๋ฐ ์ค์ต์ ์งํํด๋ณด์๋ค
์๋ ๊ฐ์๋ก VSCode์์ ๊น์ ๋ค๋ฃจ๋ ์ ๋ฐ์ ์ธ ๊ธฐ๋ฅ์ ํ์ธํ์๊ณ ์ด๋ฒ ๊ฐ์๋ฅผ ํตํด ์ง์ ์ค์ตํด๋ณด๋๊น ์ด๋ ดํ์ด๋ง ์๊ณ ์๋ ๊น๊ณผ ๊นํ๋ธ์ ๋ํด ๋ง์ด ๋ฐฐ์ฐ๊ฒ ๋ ์ข์ ๊ธฐํ์๋ค
https://www.boostcourse.org/cs102
Github์ผ๋ก ๋ฐ๋ผํ๋ ๋ฒ์ ๊ด๋ฆฌ
๋ถ์คํธ์ฝ์ค ๋ฌด๋ฃ ๊ฐ์
www.boostcourse.org
'๊ณต๋ถ๊ธฐ๋ก > ๊น & ๋ฆฌ๋ ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๋ฆฌ๋ ์ค ๋๋ ํ ๋ฆฌ ๋ด ์ฉ๋ ํ์ธ (0) | 2025.10.28 |
|---|---|
| uv๋ก ํ๋ก์ ํธ ํ๊ฒฝ ์ ํ ํ๊ธฐ (0) | 2025.10.25 |
| Git & Github ์ค๋ฌด ํ์ฉ ์๋ฒฝ ๊ฐ์ด๋ part2. (๋ธ๋์น์ ๋ณ๊ฒฝ์ฌํญ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ) (0) | 2024.11.02 |
| Git & Github ์ค๋ฌด ํ์ฉ ์๋ฒฝ ๊ฐ์ด๋ part1. (Git ๊ธฐ์ด ๋ฐ ์ปค๋ฐ) (0) | 2024.04.12 |