Skip to content

Team Rule

anniemon edited this page Nov 10, 2021 · 35 revisions

❗ 이것은 κΌ­ μ§€ν‚΅μ‹œλ‹€!

  • PR μ „ μ΄μœ μ—†λŠ”μ£Όμ„μ΄λ‚˜ console λ“± μ§€μš°μž!
  • PR μ‹œ 양식 톡일 ν•˜μž!
  • img, btn, idx λ“± λ³€μˆ˜λͺ… 쀄여쓰지 말자!
  • ν•¨μˆ˜ λͺ…은 무쑰건 λ™μ‚¬λ‘œ ν†΅μΌν•˜μž!
  • Boolean 값은 is(ex. isLogin)λͺ…μ‚¬λ‘œ ν†΅μΌν•˜μž!
  • 배포 μ£ΌκΈ°λŠ” feature ν•˜λ‚˜ ν•©μΉ  λ•Œλ§ˆλ‹€ 닀같이 ν•˜μž!
  • λ…Όμ˜λ˜μ§€ μ•Šμ€ μƒˆλ‘œμš΄ μŠ€νƒ μ‚¬μš© ν•˜μ§€λ§μž!
  • ν˜Όμžμ„œ MERGE,PR κΈˆμ§€! ν•„μš”ν•  μ‹œ μƒμ˜ν›„ PR ν•˜μž!

πŸ’… Front-end

  • μŠ€ν¬λ‘€λ°” 항상보기 ν‘œμ‹œν•˜μž !
  • λ°˜μ‘ν˜• λ””μžμΈ μ‹ κ²½μ“°μž (ex. λ―Έλ””μ–΄ 쿼리) !
  • μ»΄ν¬λ„ŒνŠΈ 이름 PascalCase둜 톡일 ν•˜μž! (ex. WebDesign )
  • 이미 λ””μžμΈ κ°€μ΄λ“œκ°€ λ§Œλ“€μ–΄μ ΈμžˆλŠ” CSS ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•˜μ§€ 말자! (ex. Material UI, Ant design, bootstrap)
  • UX상 λ‚˜μœ λ””μžμΈμœΌλ‘œ ν‰κ°€λ°›λŠ” λΈŒλΌμš°μ € λ‚΄μž₯ κΈ°λŠ₯의 μ§€λ‚˜μΉœ μ‚¬μš©ν•˜μ§€ 말자!(ex. `alert, prompt, confirm)
  • μ½˜ν…μΈ κ°€ μ‘΄μž¬ν•˜λ‚˜ 슀크둀 ν•  수 μ—†λŠ” μ˜μ—­μ΄ 쑴재 ν•˜λ©΄ μ•ˆλœλ‹€!
  • "μŠ€ν¬λ‘€λ°” 항상보기" μ˜΅μ…˜μ„ μ‚¬μš©μ‹œ, λΆˆν•„μš”ν•˜κ²Œ μŠ€ν¬λ‘€λ°”κ°€ λ³΄μž„ κ·ΈλŸ¬λ―€λ‘œ μ‚¬μš©ν•˜μ§€ 말자!
  • 데이터가 μ—†κ±°λ‚˜ μ—λŸ¬κ°€ μžˆμ„κ²½μš° μ•ˆλ‚΄κ°€ λ‚˜μ™€μ„œ λͺ…μ‹œμ μœΌλ‘œ λ³΄μ΄κ²Œλ” ν•˜μž!
  • λ‘œλ”© μ‹€νŒ¨ μ‹œ μ μ ˆν•œ ν”Όλ“œλ°±μ„ 제곡 ν•˜μž!
  • λ‘œλ”© μ‹œ λ ˆμ΄μ•„μ›ƒμ΄ 깨짐 ν˜„μƒμ΄ μ—†κ²Œ λ‘œλ”©μ²˜λ¦¬λ₯Ό ν•˜μž!
  • 개발자 μ½˜μ†”μ„ μ—΄μ—ˆμ„ λ•Œ μžλ°”μŠ€ν¬λ¦½νŠΈ μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•Šκ²Œ ν•˜μž!
  • λ‘œκ·ΈμΈμ„ ν•˜μ§€ μ•Šμ„ 경우 일뢀 κΈ°λŠ₯에 μ œν•œμ„ λ‘κ²Œ λ§Œλ“€μž!

πŸ“š Back-end

  • μ—λŸ¬ λ©”μ‹œμ§€λŠ” 무쑰건 ν•œκΈ€λ‘œ 적자!
  • νŒŒλΌλ―Έν„°μ— λ―Όκ°ν•œ 정보가 λ…ΈμΆœλ˜μ§€ μ•Šκ²Œ ν•˜μž!
  • EndPoint, DataBase Table λͺ¨λ‘ λ‹¨μˆ˜ ν˜•μ‹μœΌλ‘œ 톡일 ν•˜μž! (ex. number , list)
  • μ†Œμ…œ 둜그인 κ΅¬ν˜„μ‹œ passport.js μ‚¬μš©μ„ ν•˜μ§€ 말자!

πŸ“‚ API

  • λ¦¬μ†ŒμŠ€ CRUDμ‹œ λͺ©μ μ— λ§žλŠ” HTTP λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μž!
  • λ¦¬μ†ŒμŠ€ CRUDμ‹œ μ—”λ“œν¬μΈνŠΈμ— 동사λ₯Ό μ‚¬μš©ν•˜μ§€ 말자!
  • λ¦¬μ†ŒμŠ€ μš”μ²­/μ‘λ‹΅μ‹œ ν•„μš”ν•œ json의 ν‚€/κ°’ νƒ€μž…μ„ λͺ…μ‹œν•˜μž!
  • λ¦¬μ†ŒμŠ€ μ—¬λŸ¬ 개 쑰회 μ‹œ 배열을 μ‚¬μš©ν•˜μž!
  • HTTP 응닡 μ½”λ“œμ˜ μ‚¬μš©μ΄ μ μ ˆν•˜κ²Œ ν‘œμ‹œλ˜κ²Œ ν•˜μž!
  • 응닡 μ—λŸ¬ λ©”μ‹œμ§€μ˜ 일관성이 있게 μž‘μ„±ν•˜μž!
  • λ¦¬μ†ŒμŠ€ 쑰회 μ‹œ jsonκ³Ό μŠ€ν‚€λ§ˆ fieldκ°„μ˜ 일관성이 있게 λ§Œλ“€μž!
  • λ¦¬μ†ŒμŠ€ 생성 μ‹œ μ‹ κ·œ 아이디λ₯Ό λ¦¬ν„΄ν•˜μž!
  • μ‚¬μš©μž 정보λ₯Ό ν•„μš”λ‘œ ν•˜λŠ” μš”μ²­μ— 토큰 λ˜λŠ” μ„Έμ…˜μ„ μ‚¬μš©ν•΄μ„œ λ§Œλ“€μž!
  • νŠΉμ • μ‚¬μš©μžμ™€ μ—°κ΄€λœ λ¦¬μ†ŒμŠ€ μ‘°νšŒμ‹œ κΆŒν•œ 문제λ₯Ό κ³ λ €ν•΄μ„œ λ§Œλ“€μž!
  • JWT μ‚¬μš©μ‹œ 헀더에 토큰을 μ „λ‹¬ν•˜λŠ” λ‚΄μš©μ„ λͺ…μ‹œν•΄μ„œ λ§Œλ“€μž!
  • μ—”λ“œν¬μΈνŠΈκ°€ spinal-case (μ†Œλ¬Έμžμ™€ λŒ€μ‹œ λ¬Έμžμ—΄) λ₯Ό λ”°λ₯΄κ²Œλ” λ§Œλ“€μž!
  • GET μš”μ²­μ—μ„œ 쿼리 νŒŒλΌλ―Έν„° λŒ€μ‹  HTTP bodyλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  λ§Œλ“€μž!
  • HTTP bodyλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” μƒν™©μ—μ„œ 쿼리 νŒŒλΌλ―Έν„°λ₯Ό μ‚¬μš©ν•˜μ§€μ•Šκ³  λ§Œλ“€μž!

πŸ” Schema

  • μŠ€ν‚€λ§ˆμ˜ 1:N, N:M 관계가 μ μ ˆν•˜κ²Œ λ§Œλ“€μž!
  • Join Table의 이름이, κ΄€κ³„μžˆλŠ” ν…Œμ΄λΈ” 이름을 ν¬ν•¨ν•˜κ²Œ λ§Œλ“€μž!
  • λ¦¬μ†ŒμŠ€μ˜ CRUD에 ν•„μš”ν•œ ν…Œμ΄λΈ”μ΄ μ‘΄μž¬ν•˜λ„λ‘ ν•΄μ„œ λ§Œλ“€μž!
Clone this wiki locally