Name | ํฉ์ํ | ์ด์คํธ | ๋ฐ์ํ | ์ด์๋ฏผ | ์ ๋ํ |
---|---|---|---|---|---|
Profile | |||||
GitHub | @rjsej12 | @wujuno | @pySoo | @sangminlee98 | @robin14dev |
Name | ๊ฐ๋ช ์ฃผ | ๋ฐ๊ฒธ์ | ์ ์ ์ | ๊ณ ์์ฑ | ์ถํ์ฌ |
---|---|---|---|---|---|
Profile | |||||
GitHub | @myungju030 | @seoltang | @wjdwjdtn92 | @free-ko | @Chuhj |
๋๋ฃํ์ต์ ํตํด์ ํ์์ ์๊ฐํ ์ํฐ๋ ํ๋ฆฌ์จ๋ณด๋ฉ ํ๋ก ํธ์๋ ์ธํด์ญ ์ ๋ฐ ๊ณผ์ ์ Best Pratice๋ฅผ ๋ง๋ค๊ณ ์ ์ถํด์ฃผ์ธ์
Best Practice๋ ๋ชจ๋ฒ์ฌ๋ก๋ผ๋ ๋ง๋ก์, ํน์ ๋ฌธ์ ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ๊ธฐ ์ํ ๊ฐ์ฅ ์ฑ๊ณต์ ์ธ ํด๊ฒฐ์ฑ ๋๋ ๋ฐฉ๋ฒ๋ก ์ ์๋ฏธํฉ๋๋ค.
์งํ ๊ธฐ๊ฐ: 2023-04-25 ~ 2023-04-28
- ๐ ๋ฐฐํฌ ๋งํฌ
- ๐ฅ๏ธ ๋์ ํ๋ฉด
- ๐ ์ฌ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๐ ํ๋ก์ ํธ ๊ตฌ์กฐ
- ๐น๏ธ ํ๋ก์ ํธ ์คํ ๋ฐฉ๋ฒ
- ๐ ์ปจ๋ฒค์
- ๐ฏ ๊ณผ์ ์ํ ๋ฐฉํฅ
https://wanted-boram3-1.vercel.app/
๋ฉ์ธ ํ์ด์ง | ํ์๊ฐ์ ํ์ด์ง |
๋ก๊ทธ์ธ ํ์ด์ง | Todo ํ์ด์ง |
๐ฆsrc
โโโ ๐assets
โโโ ๐components
โ โโโ ๐AddTodoInput
โ โโโ ๐AuthForm
โ โโโ ๐Loading
โ โโโ ๐Navbar
โ โโโ ๐TodoItem
โโโ ๐constants
โโโ ๐hooks
โโโ ๐pages
โ โโโ ๐SignIn
โ โโโ ๐SignUp
โ โโโ ๐Todo
โ โโโ ๐Welcome
โโโ ๐routes
โโโ ๐services
โโโ ๐styles
โโโ ๐types
โโโ ๐utils
๋ ํ์งํ ๋ฆฌ ํด๋ก
$ git clone https://github.com/WANTED-TEAM03/pre-onboarding-10th-1-3.git
ํจํค์ง ์ค์น
$ npm install
์ ํ๋ฆฌ์ผ์ด์ ์คํ
$ npm start
๐ญ ํ์ฅ์ฑ ๋ฉด์์๋ interface
๊ฐ ์ข์ผ๋ ์ฌ๋ฌ ํ์
์ ์ ์ํ๋๋ฐ๋ type
์ด ์ข๋ค.
๐ญ interface
์ ๋ณ์๋ช
๋งจ ์์ โI
โ๋ฅผ ๋ถ์ฌ์ ๋ฌด์์ ์ํ ๋ณ์์ธ์ง ์ธ์งํ๊ธฐ ์ข๋ค.
๐ญ โI
โ๋ฅผ ๋ถ์ด๋ ๊ดํ์ด ์ฌ๋ผ์ง๋ ์ถ์ธ๋ค.
๊ฒฐ๋ก :
type
์ ์ฌ์ฉ
# <ํ์
> : <์ ๋ชฉ> ํ์์ผ๋ก ์์ฑํ๋ฉฐ ์ ๋ชฉ์ ์ต๋ 50๊ธ์ ์ ๋๋ก๋ง ์
๋ ฅ
# ์ ๋ชฉ์ ์๋ซ์ค์ ์์ฑ, ์ ๋ชฉ ๋์ ๋ง์นจํ ๊ธ์ง, ๋ฌด์์ ํ๋์ง ๋ช
ํํ๊ฒ ์์ฑ
๊ตฌ๋ถ | ๋ด์ฉ |
---|---|
FEAT | ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ |
FIX | ๋ฒ๊ทธ ์์ |
STYLE | ์ฝ๋ ์๋ฏธ์ ์ํฅ์ ์ฃผ์ง ์๋ ๋ณ๊ฒฝ์ฌํญ |
REFACTOR | ์ฝ๋ ๋ฆฌํฉํ ๋ง |
DOCS | ๋ฌธ์ ์์ |
TEST | ํ ์คํธ ์ฝ๋ ์ถ๊ฐ |
CHORE | ๋น๋ ๋ถ๋ถ ํน์ ํจํค์ง ๋งค๋์ ์์ ์ฌํญ |
- ์ด์ ํ ํ๋ฆฟ
---
name: "Custom issue template \U0001F60A"
about: ์ด์์์ฑ์ ์ด ํ
ํ๋ฆฟ์ ์ฌ์ฉํด์ฃผ์ธ์:)
title: ''
labels: ''
assignees: ''
---
## ๐ฃ ๋ง๋ค๊ณ ์ ํ๋ ๊ธฐ๋ฅ
๊ธฐ๋ฅ ๊ตฌํ
## ๐ฃ ํด๋น ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ํ ์ผ
- [ ] todo1
- [ ] todo2
## ๐ฃ ํด๋น ๊ธฐ๋ฅ์์ ์ ๊ฒฝ ์ธ ๋ถ๋ถ
## ๐ฃ ์์๊ธฐ๊ฐ
0์00์ผ ~ 0์00์ผ
- PR ํ ํ๋ฆฟ
## ๐ฃ ๊ฐ์
## ๐ฃ ์์
์ฌํญ
*
## ๐ฃ ๊ณต์ ์ฌํญ
*
- ์ปดํฌ๋ํธ ํจ์ ์ ์ธ์ export default function์ผ๋ก ์์ํด์ผ ํฉ๋๋ค.
- ํ์ด์ง ์ปดํฌ๋ํธ์ ํจ์๋ช ์ Page๋ก ๋๋์ผ ํฉ๋๋ค.
- ํจ์ ๋ค์ด๋ฐ์ handle๋ก ์์ํด์ผ ํฉ๋๋ค.
- boolean ํ์ ์ ๋ณ์๋ช ์ is๋ก ์์ํด์ผ ํฉ๋๋ค.
main ๋ธ๋์น์ develop ๋ธ๋์น์ branch protection rule
์ ์ค์ ํ์ฌ ๋ธ๋์น์ ์ง์ pushํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ ์ฝ๋ ๋ฆฌ๋ทฐ์ approve๋ฅผ ํตํด merge๋๋๋ก ์ค์ ํ์ต๋๋ค.
- Require approvals
- Require review from Code Owners
- Require conversation resolution before merging
best practice ์ ์ ๊ธฐ์ค
์ฝ๋์ ๊ฐ๋ ์ฑ ๋ฐ ์ฌ์ฌ์ฉ์ฑ
- ๊ฐ๋ ์ฑ์ด ์ข์ ์ฝ๋๋ ํ์ ํ๋ก์ ํธ์ ์์ด์ ์ค์ํ ์์์ ๋๋ค.
์ฑ๋ฅ ์ต์ ํ
- ์ฑ๋ฅ ์ต์ ํ๋ฅผ ํตํด ์ฌ์ฉ์ ๊ฒฝํ์ ๋ํ ์ ์๊ณ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์๊ฒ ๊ฒฝ์๋ ฅ์ ๊ฐ์ถ๊ฒ ํ ์ ์๋ ์์์ ๋๋ค.
์ ์ ํธ์์ฑ
- ํ๋ก ํธ์๋๋ ์ ์ ์ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ ํฌ์ง์ ์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
assignment ๋จ์๋ก B.P ์ ์ ๊ธฐ์ค์ ๋ฐ๋ฅธ B.P ์ ์
ํ์ ๊ณผ์ ์ ๋ณธ์ธ ๊ณผ์ ๋ฅผ ๋น๊ตํ์ฌ ์ดํํ ์ ์๋ ๋ถ๋ถ ์ฒดํฌ
- ๋ฆฌ๋ทฐํ ์๊ฒฌ์ ์ค์ ์ผ๋ก ๊ฐ์ธ์ด ํน๋ณํ ์ํ๋ ๋ถ๋ถ์ด๋ ๋งก์์ ์ ์ฉํด๋ณด๊ณ ์ถ์ assignment๋ฅผ ๋งก์ ์งํํฉ๋๋ค.
- ๊ฐ assignment๋จ์๋ก ์ด์๋ฅผ ์์ฑํ์ฌ ๋ธ๋์น๋ฅผ ์์ฑ ํ ์งํํฉ๋๋ค.
- ์์ ํ ์๋ก ๋ง๋๋ ๊ฒ์ด ์๋ Best Practice์ ๊ฐ๊น์ด ํ์ ๋ถ๋ค์ ์ฌ์ ๊ณผ์ ์ฝ๋๋ฅผ ๊ฐ์ ธ์จ ๋ค, ํ์์์ ์ ์ฉํด์ผ ํ๋ค๊ณ ๋์จ ๋ถ๋ถ์ ์ถ๊ฐ ๋ฐ ์์ ํฉ๋๋ค.
- ์๋ฃ๋ ์์ ์ ์ปค๋ฐ ํ PR์ ์ฌ๋ ค ํ์๋ค์ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์ต๋๋ค.
- ์์ ์ assignments 1-4 / 5-10 ์ผ๋ก ๋๋ ์ ์งํํฉ๋๋ค.
- ์ฝ๋์ ๊ฐ๋ ์ฑ์ ์ํด ํจ์/๋ณ์ ๋ค์ด๋ฐ์ ๋ช ์์ ์ผ๋ก ํฉ๋๋ค.
Assignment No. | ์ด๋ฆ |
---|---|
1 | ํฉ์ํ |
2 | ์ด์คํธ |
3 | ๋ฐ์ํ |
4 | ์ด์๋ฏผ |
5 | ์ ๋ํ |
6 | ๊ฐ๋ช ์ฃผ |
7 | ๋ฐ๊ฒธ์ |
8 | ๊ณ ์์ฑ |
9 | ์ ์ ์ |
10 | ์ถํ์ฌ |
-
์ฝ๋์ ๊ฐ๋ ์ฑ ๋ฐ ์ฌ์ฌ์ฉ์ฑ
- input state์ ๊ด๋ฆฌ์ validate๋ฅผ ์ต์
์ผ๋ก ํ ์ ์๋ useInput ์ปค์คํ
ํ
์ ์ฌ์ฉํ์ต๋๋ค.
- useInput hook์ initValue์ validator๋ฅผ ์ ๋ฌ๋ฐ์ input์ value, setValue, onChange๋ฅผ ๋ค๋ฃจ๋ ๊ฐ์ฒด์, validation์ Result๋ฅผ ๋ฐฐ์ด๋ก ๋ฐํํ์ต๋๋ค.
- ์์ํ
- route path, URL, ์ ํจ์ฑ ๊ฒ์ฌ ์ ๊ทํํ์, ์๋ฌ ๋ฉ์ธ์ง ๋ฑ ์ ์ ๋ฐ์ดํฐ๋ ์์ํํ์ฌ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ํ์ต๋๋ค.
- ํ์๊ฐ์ ๊ณผ ๋ก๊ทธ์ธ ํ์ด์ง๋ UI์ ๋ก์ง์ด ๋น์ทํ๊ธฐ ๋๋ฌธ์ ์ฝ๋์ ๋ฐ๋ณต์ ์ค์ด๊ธฐ ์ํด ์๋ก ๋ค๋ฅธ formType props๋ฅผ AuthForm component์ ์ ๋ฌํ์ฌ ์ฌ์ฉํ์ต๋๋ค.
- axios interceptor๋ฅผ ์ฌ์ฉํ์ฌ request๊ฐ ๋ฐ์ํ๋ ์์ ์์ ํค๋์ ํ ํฐ์ ๋ด์ ๋ณด๋ด์ฃผ๋๋ก ์ค์ ํ์ฌ ์ฝ๋์ ๋ฐ๋ณต์ ์ค์์ต๋๋ค.
- ๋ผ์ฐํ
๋ฐ ๋ก๊ทธ์ธ ์ฌ๋ถ์ ๋ฐ๋ผ ๋ฆฌ๋ค์ด๋ ํธ ์ฒ๋ฆฌํ์ต๋๋ค.
- useRoutes๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ํ์ด์ง๋ค์ โ/โ๊ฒฝ๋ก์ ์ค์ฒฉ๋ผ์ฐํ ์ผ๋ก ์ค์ ํ์ฌ GlobalLayout์ ์ค์ ํ ์ ์๋๋ก ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ์ต๋๋ค.
- useCheckAuth ์ปค์คํ ํ ์ ์ฌ์ฉํ์ฌ location.pathname์ด ๋ณํ ๋ ํ ํฐ ์ ๋ฌด๋ฅผ ํ์ธํ์ฌ ๋ก๊ทธ์ธ ์ฌ๋ถ๋ฅผ ํ๋จํ๋๋ก ํ์ต๋๋ค.
- ๋ก๊ทธ์ธ ์ฌ๋ถ๋ฅผ outlet์ context๋ก ์ ๋ฌํด ํ์ด์ง ์ปดํฌ๋ํธ์์ useOutletContextํ ์ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ธ ์ฌ๋ถ๋ฅผ ํ๋จํ๊ณ ๋ฆฌ๋ค์ด๋ ํธ ์ฒ๋ฆฌํ์ต๋๋ค.
- input state์ ๊ด๋ฆฌ์ validate๋ฅผ ์ต์
์ผ๋ก ํ ์ ์๋ useInput ์ปค์คํ
ํ
์ ์ฌ์ฉํ์ต๋๋ค.
-
์ฑ๋ฅ ์ต์ ํ
- lazy suspense๋ฅผ ์ฌ์ฉํ ์ฝ๋ ์คํ๋ฆฌํ ์ ํตํด ์ด๊ธฐ ํ์ด์ง ๋ ๋๋ง ์๋๋ฅผ ๋จ์ถํ์ต๋๋ค.
- React.Memo์ useMemo, useCallback์ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ์ ์ต์ ํํ์ต๋๋ค.
-
์ฌ์ฉ์ ๊ฒฝํ
- ๋ชจ๋ฐ์ผ, ๋ฐ์คํฌํฑ, ํ๋ธ๋ฆฟ ์ฌ์ด์ฆ์ ๋ง๋ ๋ฐ์ํ UI๋ฅผ ๊ตฌํํ์ต๋๋ค.
- input์์ ์ํฐ๋ฅผ ์ ๋ ฅํ์ฌ๋ Submit์ด ์ผ์ด๋๋๋ก ๊ตฌํํ์ต๋๋ค.
- ํฌ๋ ๋ฆฌ์คํธ๊ฐ ์ถ๊ฐ๋ ๋ ๋ฆฌ์คํธ๋ฅผ auto scrollํ๋๋ก ๊ตฌํํ์ต๋๋ค.
- ์๋ฌ ์ผ์ด์ค ๋ณ๋ก alertํ์ฌ ์ฌ์ฉ์๊ฐ ์์ธ์ ์ฝ๊ฒ ํ์ ํ ์ ์๋๋ก ๊ตฌํํ์ต๋๋ค.
- ์์ ๋ฒํผ ํด๋ฆญ ์ input์ auto focus๋๋๋ก ๊ตฌํํ์ต๋๋ค.
- error message ๋ ๋๋ง์ Layout shift๊ฐ ์ผ์ด๋์ง ์๋๋ก ๊ตฌํํ์ต๋๋ค.
- ํฌ๋ ์ฒดํฌ๋ฐ์ค ํด๋ฆญ ์ ์ทจ์์ ์ ํ์ํ์ฌ ์๋ฃ๋ ํฌ๋์์ ์ฌ์ฉ์์๊ฒ ์๋ดํ์ต๋๋ค.
- ํฌ๋ ์ญ์ ๋ฐ ๋ณ๊ฒฝ ์ ์ฌ์ฉ์์๊ฒ ์ฌํ์ธํ๋ ์๋ฆผ์ ๊ตฌํํ์ฌ ์ค์๋ฅผ ๋ฐฉ์งํ ์ ์๋๋ก ํ์ต๋๋ค.
- ํ์ด์ง๋ฅผ ์ฝ๊ฒ ์ด๋ํ๊ณ ๋ก๊ทธ์์์ ํ ์ ์๋๋ก Navbar๋ฅผ ๊ตฌํํ์ต๋๋ค.
- ๋ก์ปฌ์คํ ๋ฆฌ์ง๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํ ์ปค์คํ
ํ
๊ณผ ์ ํธํจ์ ์ฌ์ฉ์ ๋ํด
- ์ปค์คํ ํ ์ ์ฌ์ฉ ์ ๋คํธ์ํฌ ์์ฒญ์ด ์ผ์ด๋๋ service๋จ์์ ํ ์ ์ฌ์ฉํ์ฌ ๊ด๋ฆฌํ ์ ์์์ต๋๋ค.
- ์ ํธํจ์๋ก ๋ง๋ค์ด ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ฝ๋ ๋ถ๋ฆฌ์ ์๋ฏธ๊ฐ ํฌ๊ฒ ์๋ค๊ณ ํ๋จํ์ต๋๋ค.
์ปค์คํ ํ ๊ณผ ์ ํธํจ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ก์ปฌ์คํ ๋ฆฌ์ง ๋ก์ง์ด ํ์ํ ๋ถ๋ถ์์ localStorage ๊ฐ์ฒด๋ฅผ ์ง์ ์ฐธ์กฐํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
- Todo์ CRUD ๋น์ฆ๋์ค ๋ก์ง์ utilํจ์๋ก ๋ถ๋ฆฌํ ์ง ์ปดํฌ๋ํธ๋จ์์ ๋ง๋ค์ด ์ฌ์ฉํ ์ง์ ๊ดํ์ฌ
- CRUD๋ก์ง์ utilํจ์๋ก ๋ถ๋ฆฌํ๋ฉด ๋น์ฆ๋์ค ๋ก์ง์ ๋ถ๋ฆฌํ์ฌ ์ปดํฌ๋ํธ ์ฝ๋์ ์์ ์ค์ผ ์ ์๊ณ ์ ์ง๋ณด์๊ฐ ์ฌ์์ง๋ฉฐ ๋จ์ผ ์ฑ ์์ ์์น์ ์งํฌ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค.
- ์ปดํฌ๋ํธ๋จ์ CRUD ๋ก์ง์ ๊ตฌํํ๋ฉด ์ฝ๋์ ํด๋น state์ Setstate๊ฐ ์ผ์ด๋๋ ๊ณผ์ ์ ํ ๋์ ๋ณผ ์ ์์ด ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ์ข์ ์ดํดํ๊ธฐ ์ฝ๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
๊ณผ์ ํน์ฑ ์ Depth๊ฐ ๊น์ง ์๊ณ ๊ฐ๋ ์ฑ ์ธก๋ฉด์ ๊ณ ๋ คํ์ฌ ์ปดํฌ๋ํธ๋จ์์ ํฌ๋์ CRUD ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ๋๋ก ๊ฒฐ์ ํ์ต๋๋ค.