- λμμΈ ννΈμλ€μ΄ UXκ°μ μ μν΄ κΈ°μ‘΄μ μλΉμ€λ₯Ό 리λμμΈ ν΄μ¨ κ²μ μλ²ννΈμ ν¨κ» νμ νμ¬ κ΅¬ννκ³ λμμΈ ννΈ, κΈ°νννΈμ νμ μ κ²½νν΄λ³Ό μ μλ μΈλ―Έλμ λλ€.
- μΉ 4νμ λ ΈνΈν΄λ¦¬μ€ 리λμμΈμ μ§ννμ΄μ!
μ μ° |
건ν |
μ μ§ |
@jungwoo3490 | @KIMGEONHWI | @sinji2102 |
μν | μ’ λ₯ |
---|---|
Library | |
Programming Language | |
Styling | |
Data Fetching | |
Formatting | |
Package Manager | |
Version Control | |
Deployment |
μ’ λ₯ | λͺ©λ‘ |
---|---|
setting βοΈ | husky & lint-staged ν΄λ ꡬ쑰 λΌμ°ν
|
view π± | κ³΅ν΅ μ»΄ν¬λνΈ(Chip 리μ€νΈ) Recruit νμ΄μ§ Search νμ΄μ§ |
api π‘ | ν¬λ¦¬μμ΄ν°λΈ κ²μ (GET) |
μ’ λ₯ | λͺ©λ‘ |
---|---|
setting βοΈ | GlobalStyle VITE svg eslint & prettier |
view π± | κ³΅ν΅ μ»΄ν¬λνΈ(μλ¨ Header) Home νμ΄μ§ |
api π‘ | ν¬λ¦¬μμ΄ν°λΈ μ‘°ν (GET) ν¬λ¦¬μμ΄ν°λΈ μ’μμ (POST) ν¬λ¦¬μμ΄ν°λΈ μ’μμ μ·¨μ (DELETE) |
μ’ λ₯ | λͺ©λ‘ |
---|---|
setting βοΈ | stylelint theme |
view π± | κ³΅ν΅ μ»΄ν¬λνΈ(Sticky Navigation λ°) Community νμ΄μ§ |
api π‘ | μν¬μ΅ μ 체 μ‘°ν(GET) νλ‘κ·Έλ¨ μ 체 μ‘°ν (GET) |
1οΈβ£ Commit 컨벀μ
ν€μλ: λ΄μ©
- μμ:
init: μ΄κΈ° μΈν
feat: κΈ°λ₯ κ°λ°
Commit λ©μμ§ μ’ λ₯ μ€λͺ
μ λͺ© | λ΄μ© |
---|---|
init | μ΄κΈ° μΈν |
feat | μλ‘μ΄ κΈ°λ₯μ μΆκ°ν κ²½μ° |
style | κΈ°λ₯μ μν₯μ μ£Όμ§ μλ 컀λ°, μ½λ μμ, css λ±μ ν¬λ§·μ κ΄ν μ»€λ° |
fix | λ²κ·Έλ₯Ό κ³ μΉ κ²½μ° |
refactor | νλ‘λμ μ½λ 리ν©ν λ§ |
docs | λ¬Έμλ₯Ό μμ ν κ²½μ°, νμΌ μμ , νμΌλͺ μμ λ± ex) README.md |
chore | λΉλ ν μ€νΈ μ λ°μ΄νΈ, ν¨ν€μ§ 맀λμ λ₯Ό μ€μ νλ κ²½μ°, μ£Όμ μΆκ°, μμν λ¬Έμ μμ |
code review | μ½λ 리뷰 λ°μ |
2οΈβ£ Branch μ λ΅
νμ΄μ§λͺ
/#μ΄μλ²νΈ-κΈ°λ₯λͺ
- λΈλμΉ μ΄μ
main
: μμ ν μμ νλ€κ³ νλ¨λμμ λ, μ¦ λ°°ν¬κ° κ°λ₯ν μ΅μ’ mergeνλ λΈλμΉdevelop
: λ°°ν¬νκΈ° μ κ°λ° μ€μΌ λ κ°μμ λΈλμΉμμ mergeνλ λΈλμΉ (default λΈλμΉ)feature/νμ΄μ§λͺ
: κ° νμ΄μ§λ³ κΈ°λ₯ κ°λ° λΈλμΉ, κ°λ°μ΄ μλ£λλ©΄develop
λΈλμΉλ‘ λ³ν©νμ΄μ§λͺ /#μ΄μλ²νΈ-κΈ°λ₯λͺ
: feature λΈλμΉ. μλ‘μ΄ κΈ°λ₯ κ°λ°. κ°λ°μ΄ μλ£λλ©΄feature/νμ΄μ§λͺ
λΈλμΉλ‘ λ³ν©
3οΈβ£ μ½λ© 컨벀μ
- μμλ μλ¬Έ λλ¬Έμ μ€λ€μ΄ν¬ νκΈ°λ² (μλ₯Ό λ€λ©΄ ν€κ°)
- ν΄λμ€λ μ»΄ν¬λνΈλ λλ¬Έμ νμ€μΉΌ μΌμ΄μ€ μ¬μ© (ν¨μν μ»΄ν¬λνΈ)
- μ»΄ν¬λνΈλ rfce, λλ¨Έμ§ ν¨μλ νμ΄ν ν¨μ μ΄μ©
- μμμ λ°νμ μ΅λν νμ© (early return)
- axios μΈ λ then & catch, async await μΈ λ try & catch μ¬μ©
- ꡬ쑰λΆν΄ν λΉ μ κ·Ή μ΄μ©
// ꡬ쑰λΆν΄ μ¬μ© X
const SearchBar = (props) => {
const { a, b, c } = props;
...
// ꡬ쑰λΆν΄ μ¬μ© O
const SearchBar = ({ a, b, c }) => {
...
- ꡬ쑰λΆν΄ν λΉ μ κ·Ή μ΄μ©
- λ³μ λ±μ μ‘°ν©ν΄μ λ¬Έμμ΄μ μμ±ν λλ λ°λμ 리ν°λ΄μ μ΄μ©
- switch-case μ¬μ©μ break κ°μ
- 쑰건문μ λ°λμ μΌν μ°μ°μ μ¬μ©
- forλ μ§μνκ³ forEach, mapμ μ¬μ©
- μ£Όμμ μμ±νλ €κ³ νλ λμ λ°λ‘ μμ μμ±
- button νκ·Έμλ typeμ λͺ μ
- λ²νΌ, ν€λμ κ°μ΄ common componentμμλ children μ κ·Ή νμ©
- styleds-components λ tsx 맨 μλμ μ μΈ
- μ»΄ν¬λνΈ μ΅μλ¨μ κ°μΈλ κ²μ {μ»΄ν¬λνΈλͺ }Wrapper
- μ»΄ν¬λνΈ μ μΈκ³Ό μ²μ styled-components μ μΈ μ¬μ΄ νμ€ λμ΄μ°κΈ°
- μ»΄ν¬λνΈμμ propsλ‘ μ λ¬λ°μ interfaceλ₯Ό μ μΈν΄μ€ λ, μ»΄ν¬λνΈλͺ + Propsλ‘ μ μΈ
|-- π .github
|-- π .husky
|-- π node_modules
|-- π public
|-- π src
|-- π apis
|-- π assets
|-- π components
|-- π constants
|-- π hooks
|-- π libs
|-- π pages
|-- π styles
|-- π types
|-- π utils
|-- π Router.tsx
|-- .env
|-- .eslintignore
|-- .eslintrc.json
|-- .gitignore
|-- .prettierignore
|-- .prettierrc
|-- .stylelintrc.json
|-- index.html
|-- package.json
|-- svg.d.ts
|-- README.md
|-- tsconfig.json
|-- tsconfig.node.json
|-- vite.config.ts
|-- yarn.lock