๐ ํ๋ก์ ํธ๋ฅผ ์์ํ๊ธฐ์ Github ์ธํ ์ ๋ฐฐ์ฐ๋ ๋ ์ด๋ค. ์ด๋ฏธ ํ ๋ฒ ํด๋ดค์ด๋ ๋ค์ ๊น๊ฒ ํ์ตํด๋ณด์!
๐ ์ค๋ ํ์ตํ ๋ด์ฉ
Github ๋ ํฌ์งํ ๋ฆฌ์ ํ์ํ ํ์ผ
- README.md
- ํ๋ก์ ํธ ์ด๋ฆ
- ํ๋ก์ ํธ ํต์ฌ ๊ธฐ๋ฅ ์๊ฐ
- ํ์ ์๊ฐ
- Wiki๋ก ๋งํฌ
- .gitignore
- git์ผ๋ก ๊ด๋ฆฌํ์ง ์๋ ํ์ผ ๋ชจ์
- secret token, ๊ณต์ ํ ํ์๊ฐ ์๋ ์ค์ ํ์ผ์ ๊ธฐ๋กํ๋ฉด git์ push ๋์ง ์๋๋ค.
- LICENSE
- ํด๋น ์ฝ๋์ ๋ผ์ด์ผ์ค ํ๊ธฐ
Github ๊ธฐ๋ฅ
- Issue
- ํ๋ก์ ํธ์ ์๋ก์ด ๊ธฐ๋ฅ ์ ์, ๋ฒ๊ทธ๋ฅผ ์ฐพ์ ์ ๋ณดํ๋ ๋ฑ ํ๋ก์ ํธ์ ์ด์๋ฅผ ์์ฑ
- Milestone
- ์ด์ ํ ์ญํ , ํ ์คํฌ ์นด๋(Issue)๋ฅผ ๊ทธ๋ฃนํ ํ๋ ๋ฐ ์ฌ์ฉ
- Pull Request
- git branch์ ํฉ์น ์ ์๋์ง ํ์ธํ๋ ์์ฒญ
- Project
- Github ๋ด์์ ์ ๋ฌด ๊ด๋ฆฌ๋ฅผ ํด์ค ์ ์๊ฒ ๋๋ ๊ธฐ๋ฅ
์นธ๋ฐ
- ํ๊ณผ ์กฐ์ง์ด ์์ ์ ์๊ฐํํ๊ณ , ์ ๋ฌด์ ๋ณ๋ชฉ ํ์๊ณผ ๋ฆฌ์์ค ๋ญ๋น๋ฅผ ํด๊ฒฐํ๋ ์ ๋ฌด ๊ด๋ฆฌ ๋ฐฉ๋ฒ
- ๋ฐ๋ฐ ๋ณด๋๋ฅผ ํตํ ์๊ฐํ
- ์ ๋ฌด๋ฅผ ํ๋์ ํฐ์ผ์ผ๋ก ํํํ๊ณ , ์ ๋ฌด ๋จ๊ณ๋ฅผ ํ๋์ ์ด๋ก ํํํ๋ค.
- ์๋ก์ด ์ ๋ฌด๊ฐ ์๊ธฐ๋ฉด ๊ฐ์ฅ ์ผ์ชฝ ์ด์ ์ ๋ฌด๊ฐ ์์ด๊ณ , ์ ๋ฌด๊ฐ ์ ์งํ๋๋ฉด ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ผ๋ก ์ ๋ฌ๋๋ ๋ฐฉ์์ด๋ค.
- ๋ฐฑ๋ก๊ทธ → ํ ์ผ → ์งํ์ค → ์๋ฃ
์นธ๋ฐ ์ค์ฒ๋ฒ
- ์ ๋ฌด ์๊ฐํ
- ์งํ ์ค์ธ ์ ๋ฌด ์ ํ
- ํ๋ฆ ๊ด๋ฆฌ
- ๋ช ํํ ํ๋ก์ธ์ค ์ ์ฑ
- ํผ๋๋ฐฑ ๋ฃจํ ๊ตฌํ
- ํ๋ ฅ์ ์ธ ๊ฐ์ , ์คํ์ ์ธ ๋ฐ์
Github ์ด์
- Issue (task card) ์์ฑ
- ํ ์คํฌ ์์ฑ
- ํ ์คํฌ ์ผ์ ์๋ฃ ํ ์ด์ ๋ซ๊ธฐ
Github ์ด์ ํ ํ๋ฆฟ ์นด๋
- Settings ํด๋ฆญ
- Issue์ Set up templates๋ฅผ ํด๋ฆญ
Github ๋ง์ผ์คํค
๊นํ๋ธ ๋ง์ผ์คํค์ ์ด์, PR ๊ทธ๋ฃน์ ์ง์ฒ๋๋ฅผ ํ์ธํ๋๋ฐ ์ฌ์ฉํ๋ค.
- Milestones ์์ฑ
- Issue ํญ์ ๋๋ฅด๊ณ Milestones๋ฅผ ๋๋ฅธ๋ค.
- Create a Milestone ํน์ New milstone์ ๋๋ฅธ๋ค.
- Milestones ์ธ๋ถ ๋ด์ฉ ์์ฑ
- Milestones ์์ฑ ํ์ธ
Project
- Project ์์ฑ
- Projects ํญ ์ ํ ํ Add project ํด๋ฆญ Go to the.... ํด๋ฆญ
- New Project ํด๋ฆญ
- ํ ํ๋ฆฟ ์ ํ ํ Create ๋ฒํผ ํด๋ฆญ
- Project ์ด๋ฆ ๋ฐ ์ ๊ทผ ์ค์
- ์ค๋ฅธ์ชฝ ์๋จ์ ๋ฒํผ์ ๋๋ฌ Settings ํด๋ฆญ
- ํ๋ก์ ํธ์ ์ด๋ฆ๊ณผ ๊ฐ๋จํ ์ค๋ช ์ ์ถ๊ฐํ๊ณ Save ํด๋ฆญ
- ํ๋ก์ ํธ์ ์ด๋ฆ์ด ๋ณ๊ฒฝ ํ์ธ
- ์ค์ ํ์ด์ง ์ผ์ชฝ ํญ์ Manage access ํด๋ฆญ
- Base Role์ Read๋ก ๋ณ๊ฒฝ
- Admin ๊ถํ์ผ๋ก ํ์ ์ด๋
- Issue ์ฐ๊ฒฐํ๊ธฐ
- #์ผ๋ก ์์ ์ ๋ ํฌ์งํ ๋ฆฌ ์ฐพ๊ธฐ
- ๋ ํฌ์งํ ๋ฆฌ ์ ํ ํ Issue, PR ์ ํ
- Add selected items ๋ฒํผ ํด๋ฆญ ํ item ์ถ๊ฐ
- ๋ ํฌ์งํ ๋ฆฌ์ ์์ฑํ Issue๋ค ์ถ๊ฐ ํ์ธ
- Project ์ค์
- ๊ฐ ์ด์๋ค์ ์ํ ์ค์ Todo, In Progress, Done
- Labels, PR, Reviewers, Repository, Milestone ๋ฑ ์นผ๋ผ ์ถ๊ฐ ๊ฐ๋ฅ
- ๊ทธ๋ฃน์ผ๋ก ๋๋ ๋ณด๊ธฐ ๊ฐ๋ฅ
- Assignees, Status, Milestone, Repository ๋ฑ์ผ๋ก ๋๋๊ธฐ
- Project ์ ์ฉ
- Projects ํญ Add project ํด๋ฆญ ์์ฑํ project ํด๋ฆญ
Git branch
- ๊ธฐ์กด ๊ฐ๋ฐ์ค์ธ ๋ฉ์ธ ๊ฐ๋ฐ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ๋ณต์ฌํ์ฌ ์๋ก์ด ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ๋ฉ์ธ ๊ฐ๋ฐ ์ฝ๋๋ฅผ ๊ฑด๋๋ฆฌ์ง ์๊ณ ํ ์ ์๋ ๋ฒ์ ๊ด๋ฆฌ ๊ธฐ๋ฒ
- ๋ธ๋์น ์์ฑ ๋ฐ ๋ณ๊ฒฝํ๊ธฐ (git switch)
# ๋ธ๋ฐ์น ์์ฑ(switch)
git switch -c ๋ธ๋ฐ์น๋ช
# ๋ธ๋ฐ์น ์์ฑ(checkout)
git checkout -b ๋ธ๋ฐ์น๋ช
# ๊ธฐ์กด์ ์๋ main ๋ธ๋ฐ์น๋ก ๋ณ๊ฒฝ
git switch main
git checkout main
๋ธ๋์น ๋ก์ปฌ์์ ํฉ์น๊ธฐ (git merge)
# ๊ธฐ๋ฅ ๊ฐ๋ฐ ์งํ
git commit -m "์ธ๋ถ ๊ธฐ๋ฅ1"
git commit -m "์ธ๋ถ ๊ธฐ๋ฅ2"
git commit -m "๊ฐ๋ฐ ์๋ฃ"
# ๋จธ์ง๋ฅผ ์ํด main ๋ธ๋ฐ์น๋ก ์ ํ
git switch main
# main ๋ธ๋ฐ์น๋ก feat/todo ๋ธ๋ฐ์น ๋ณํฉ
git merge feat/todo
๋ธ๋์น Github์์ ํฉ์น๊ธฐ (git merge)
# ๊ธฐ๋ฅ ๊ฐ๋ฐ ์งํ
git commit -m "์ธ๋ถ ๊ธฐ๋ฅ1"
git commit -m "์ธ๋ถ ๊ธฐ๋ฅ2"
git commit -m "๊ฐ๋ฐ ์๋ฃ"
# Github ๋ ํฌ์งํ ๋ฆฌ์ ํธ์ฌ
git push origin feat/todo
# Github์์ Pull Request๋ฅผ ์งํ
# ๊ฒ์ ํ merge
๋ธ๋์น ์ญ์ (git branch -d ๋ธ๋ฐ์น ๋ช )
Git flow
- ๋๊ท๋ชจ ๊ฐ๋ฐ ํ๋ก์ ํธ๋ฅผ ์ ์ํ์ฌ ํ๋์ ์ํํธ์จ์ด์ ๋ฆด๋ฆฌ์ฆ ๋ฒ์ ์ ๋ช ํํ๊ฒ ๋๋๊ณ , ๋ค์ํ ๋ฒ์ ์ ๋ฐฐํฌํด์ผ ํ๋ ๋น์์ ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ๋ ์ ํฉํ์ง๋ง, ๋น ๋ฅด๊ฒ ์ ์ํ๊ณ ๋ฐฐํฌํ๊ณ ๊ณ ๊ฐ์ ํผ๋๋ฐฑ์ ๋ฐ๋ ์ ์์ผํ ๊ฐ๋ฐ ํ์ ์ ์ฉํ๊ธฐ์๋ ๋ณต์กํ๋ค.
- ๊ฐ๋ฐ ํ์ฅ์ ์ํฉ์ ๋ง๊ฒ Git flow๋ฅผ ์ ํ๋ ๊ฒ์ด ์ค์ํ๋ค.
git ํต์ฌ ๋ธ๋์น
- main: ์ฌ์ฉ์์๊ฒ ์ธ์ ๋ ์ ํ์ผ๋ก ์ถ์ํ ์ ์๋ ๋ธ๋์น
- dev: ๋ค์ ๋ฒ์ ๋ฐฐํฌ๋ฅผ ์ํ ๊ฐ๋ฐ์ค์ธ ๋ธ๋์น
- feature: ๊ธฐ๋ฅ ๊ฐ๋ฐ, ๋ฆฌํํ ๋ง, ๋ฌธ์ ์์ , ๋จ์ ์ค๋ฅ ์์ ๋ฑ ๋ค์ํ ์์ ์ ๊ธฐ๋กํ๊ธฐ ์ํ ๋ธ๋์น
ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ฑ
ํ์ํญ๋ชฉ
- Node.js
- JS ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ฒ์ด๋ ๋ค์ํ ์ด์์ฒด์ ์์ ์คํํ ์ ์๋ JS๋ฐํ์์ด๋ค.
- Node.js ํจํค์ง ๋งค๋์
- ์ฌ๋ฌ ์ํํธ์จ์ด๋ฅผ ํ๊บผ๋ฒ์ ๋ชจ์ ์ค์น, ์ ๊ทธ๋ ์ด๋, ์ค์ , ์ญ์ ๋ฑ์ ํ ์ ์๋ ์ํํธ์จ์ด ํด์ด๋ค.(npm, yarn)
- ๋ฒ์ ๊ด๋ฆฌ ์์คํ
/ ํ์ ๊ด๋ฆฌ ์์คํ
+ ์๊ฒฉ ๋ ํฌ์งํ ๋ฆฌ ์๋น์ค
- Git์ ์ฃผ๋ก ์ฌ์ฉํ๊ณ , Github์ ๊ฐ์ ์๊ฒฉ ๋ ํฌ์งํ ๋ฆฌ ์๋น์ค๋ ํจ๊ป ์ฌ์ฉํ๋ค.
- ํ๋ก ํธ์๋ ํ๋ ์์ํฌ(๋ผ์ด๋ธ๋ฌ๋ฆฌ)
- React (18๋ฒ์ ์ฌ์ฉ ๊ถ์ฅ)
- vue
- Angular
- CSS
- CSS ํ๋ ์์ํฌ(๋ผ์ด๋ธ๋ฌ๋ฆฌ)
- CSS ๋ชจ๋
- Styled-Components
- CSS ๋ค์ด๋ฐ ์ปจ๋ฒค์
- BEM
- Utility-First (Tailwind)
- CSS ๊ด๋ฆฌ ๋ฐฉ๋ฒ
- CSS-inJS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅด ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ๋ก ๋ฌถ์ด ๊ด๋ฆฌ: Styled-Component, Emotion
- Utility-First (Tailwind CSS)
- CSS ํ์ผ ๋ฐ๋ก ๊ด๋ฆฌ
- SASS ์ฌ์ฉ
- UI ํ๋ ์์ํฌ ์ฌ์ฉ (Meterial UI, Chakra UI, Redix UI)
- CSS ํ๋ ์์ํฌ(๋ผ์ด๋ธ๋ฌ๋ฆฌ)
- Create React App
- ์ฝ๊ณ ๋น ๋ฅด๊ฒ React SPA๋ฅผ ๊ฐ๋ฐํ ์ ์๋๋ก ์ฌ๋ฌ ์คํ์์ค๋ฅผ ๋ฌถ์ด ์ ๊ณตํ๋ ํด์ฒด์ธ
- ๋ฆฐํฐ
- ๋ฌธ๋ฒ ์๋ฌ๋ ์ฝ๋ ์คํ์ผ ๊ท์น์ ๋ง์ง ์๋ ์ฝ๋๋ฅผ ์ฐพ์์ฃผ๋ ํด์ด๋ค.
- JS์์๋ eslint, prettier๊ฐ ๊ฐ์ฅ ์ ๋ช ํ๊ณ ๋ง์ด ์ฐ์ด๋ ํด์ด๋ค.
์ ํํญ๋ชฉ
- HTTP ์์ฒญ (ํผ์ฉ๋์ง ์๊ฒ ํ๋๋ง ์ฌ์ฉ)
- Fetch API & isomorphic-fetch
- Axios
- React Query
- SWR
- ์ํ ๊ด๋ฆฌ
- Redux
- Recoil
- Zustand
- React Context API
- Mobx
- TypeScript
- ์ ์ ํ์ ์ธ์ด์ฒ๋ผ ์ฌ์ฉํ ์ ์๊ฒ ๋ณ์๋ ํจ์์ ๋ฆฌํด๊ฐ์ ํ์ ์ ์ง์ ํ์ฌ ํด๋น ํ์ ์ด ์๋๋ฉด TypeScript๋ฅผ JS๋ก ์ปดํ์ผ ํ์ง ์๊ฒ ํ๊ณ ์๋ฌ๋ฅผ ๋ด์ด ๊ฒฌ๊ณ ํ ๊ฐ๋ฐ์ ๋๋๋ค.
- ์ด๊ธฐ ์ค์ ์ด ์ด๋ ต๊ณ ํ์ต์๋ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฐ๋ค.
- ๋ฒ๋ค๋ฌ
- webpack
- esbuild
- vite
- parcel
- ํ
์คํฌ ํ๋ ์์ํฌ
- Jest, React Testing Library
- Cypress
๐ ์ถ๊ฐ๋ก ๊ณต๋ถํ ๋ด์ฉ
Study์๊ณผ ํจ๊ป ์งํ์ค์ธ ํ๋ก์ ํธ ๊ตฌํ(๋ฉ์ธ ํ์ ํ ๋ค์์์)
๋๋ง์ ํฌํธํด๋ฆฌ์ค ์ฌ์ดํธ ๊ตฌํ ํด๋ณด๊ธฐ
pre-project (์คํ์ค๋ฒํ๋ก์ฐ)
- ํํธ ๋๋ ๋ณด๊ธฐ
- ์๋ฃ ์ฐพ๊ธฐ
๐ ์ค์ํ ๋ด์ฉ
- Github
'Daily > Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
22.10.20_TIL (0) | 2022.10.21 |
---|---|
22.08.23_TIL (0) | 2022.08.23 |
22.08.18_TIL (0) | 2022.08.18 |
22.08.17_TIL (2) | 2022.08.17 |
22.08.16_TIL (0) | 2022.08.16 |