๐ฟ ShowTime
ย
- ๊ด๋ฆฌ์: admin10@email.com / 123456
- ์ฌ์ฉ์: test10@email.com / 123456
ย
๐ฏ๋ฐ์งํ |
๐ฐ๊น์ฌ์ง |
๐ถ์ต์์ |
๐ฑ์ ์ํ |
๐ฑ์กฐ์ ๋ฌด |
|---|---|---|---|---|
| ๊ด๋ฆฌ์ ์ผ์ ๊ด๋ฆฌ ํ์ด์ง | layout ์ค์ ๋์์ธ ํ ํฐ, ํฐํธ ์ค์ ๋ฒํผ, ๋ก๋ฉ, ์๋ฌ ๊ณตํต ์ปดํฌ๋ํธ ์์ redux, redux-persist ์์ฑ supabase, redux ํ์ฉ ์ผ์ ๊ด๋ฆฌ CRUD ๊ตฌํ react-calendar ์ฌ์ฉ ์ฌ์ฉ์ ์ผ์ ๊ด๋ฆฌ ํ์ด์ง |
๋ชจ๋ฌ ๊ณตํต ์ปดํฌ๋ํธ ์์
๊ธ์ฌ ์ ์ ์ ์ฒญ ์กฐํ ๋ฐ ์ฒ๋ฆฌ ํ์ด์ง ์ง์๋ณ ๊ธ์ฌ ๋ชฉ๋ก ์กฐํ |
ํ์ด์ง๋ค์ด์
, ํ
์ด๋ธ, ์ธํ ๊ณตํต ์ปดํฌ๋ํธ ์์ ๊ธ์ฌ ๋ด์ญ ์กฐํ ๋ฐ ๋ฐ์ดํฐ ์ ์ ์ ์ฒญ ๊ธฐ๋ฅ |
ํ๋ก์ ํธ ์ธํ
eslint, prettier, git ์ปจ๋ฒค์ ์ธํ Firebase ๋ฐ supabase ์ค์ ์ฌ์ฉ์ ํ์ด์ง ์์ฑ ๊ทผ๋ฌด์๊ฐ ๋ ์ด์์ ์์ |
ย
ํจ์จ์ ์ธ ๊ทผ๋ฌด๋ฅผ ์ํ ๊ฐ์์ ์ํ๊ด ์ผํ์์ ๊ธ์ฌ ๋ฐ ์ ๋ฌด ๊ด๋ฆฌ ์๋น์ค์ ๋๋ค.
ย
ํจ์จ์ ์ด๊ณ ์ ์ง๋ณด์ ๊ฐ๋ฅํ ์ฝ๋ ์์ฑ์ ์ํด React, TypeScript, Redux๋ฅผ ์ฌ์ฉ
์ฌ์ฉ์ ์ธ์ฆ์๋ Firebase, ๊ทธ ์ธ ๋ฐ์ดํฐ ๊ด๋ฆฌ์๋ supabase๋ฅผ ์ฌ์ฉ
์คํ์ผ๋ง, ์ฝ๋ ํ์ง, ์ผ๊ด๋ ์ฝ๋ ํฌ๋งทํ
์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ eslint, prettier ์ค์
ย
-
ํ๋ก์ ํธ ํด๋ก ํ๊ธฐ: ๋จผ์ , Git ์ ์ฅ์์์ ํ๋ก์ ํธ๋ฅผ ๋ก์ปฌ๋ก ํด๋ก ํด์ผ ํฉ๋๋ค. ํฐ๋ฏธ๋(๋๋ ๋ช ๋ น ํ๋กฌํํธ)์ ์ด๊ณ ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํฉ๋๋ค.
git clone https://github.com/Dev-FE-2/toy-project2-team1.gitํด๋น ๋ช ๋ น์ด๋ ์ง์ ๋ Git ์ ์ฅ์์์ ํ๋ก์ ํธ๋ฅผ ๋ก์ปฌ ์ปดํจํฐ๋ก ๋ณต์ฌํด์ต๋๋ค.
-
์์กด์ฑ ์ค์น: ํ๋ก์ ํธ๊ฐ ๋ก์ปฌ์ ํด๋ก ๋ ํ, ํ๋ก์ ํธ ํด๋๋ก ์ด๋ํ ๋ค์, ํ์ํ ํจํค์ง๋ค์ ์ค์นํด์ผ ํฉ๋๋ค. Node.js ๊ธฐ๋ฐ ํ๋ก์ ํธ์ธ ๊ฒฝ์ฐ, npm ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์กด์ฑ์ ์ค์นํ ์ ์์ต๋๋ค.
npm install์ด ๋ช ๋ น์ด๋
package.jsonํ์ผ์ ์ ์๋ ๋ชจ๋ ์์กด์ฑ(dependencies)์ ์๋์ผ๋ก ์ค์นํด ์ค๋๋ค. -
๊ฐ๋ฐ ์๋ฒ ์คํ ๋ชจ๋ ์์กด์ฑ์ด ์ค์น๋๋ฉด, ๊ฐ๋ฐ ์๋ฒ๋ฅผ ์คํํ์ฌ ํ๋ก์ ํธ๋ฅผ ๋ก์ปฌ์์ ํ ์คํธํ ์ ์์ต๋๋ค.
npm run dev์ด ๋ช ๋ น์ด๋ฅผ ํตํด ๊ฐ๋ฐ ๋ชจ๋์์ ์๋ฒ๋ฅผ ์์ํ๋ฉฐ, ๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๋ ์๋์ผ๋ก ๊ฐฑ์ ๋ฉ๋๋ค. ์ดํ, ๋ธ๋ผ์ฐ์ ์์ http://localhost:5173 ์ฃผ์๋ก ์ ์ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ธํ ์ ์์ต๋๋ค.
ย npm
๐ฆgithub
๐ฆhusky
๐ฆvscode
๐ฆpublic
๐ฆsrc
โฃ ๐assets
โฃ ๐components
โฃ ๐constants
โฃ ๐hooks
โฃ ๐layout
โฃ ๐pages
โฃ ๐redux
โฃ ๐routes
โฃ ๐styles
โฃ ๐types
โฃ ๐utils
โฃ App.tsx
โฃ Main.tsx
โฃ firebaseConfig.ts
ย
- ์ปค๋ฐ ์ปจ๋ฒค์
- ์์) feat: ํํ์ด์ง ์คํ์ผ๋ง (#์ด์๋ฒํธ)
feat: ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐfix: ๋ฒ๊ทธ ์์ docs: ๋ฌธ์ ์์ style: ์ฝ๋ ํฌ๋งทํ , ์ธ๋ฏธ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐrefactor: ์ฝ๋ ๋ฆฌํํ ๋งtest: ํ ์คํธ ์ฝ๋, ๋ฆฌํํ ๋ง ํ ์คํธ ์ฝ๋ ์ถ๊ฐchore: ๋น๋ ์ ๋ฌด ์์ , ํจํค์ง ๋งค๋์ ์์
- ๋ธ๋์น ์ปจ๋ฒค์
- ์ด์ ๋ธ๋์น๋ช ์์: feat/login-signup-148
- ์ด์ ๋ธ๋์น์์ PR ์ฌ๋ฆฌ๋ฉด ๊ฒํ ํ dev ๋ธ๋์น๋ก ๋ณํฉ
- PR, Issue template ์ถ๊ฐํ๊ธฐ
- MileStone ์ฌ์ฉํด์ ์ผ์ ํ์ธ ๋ฐ ๊ด๋ฆฌํ๊ธฐ
- ํจ์ ๋๋ ํด๋์ค ์ด๋ฆ ์ปจ๋ฒค์
- ๋ณธ์ธ๋ง ์๋ ์ด๋ฆ ์ฌ์ฉ x
- ํจ์, ๋ณ์ ์ด๋ฆ: Camel Case (ex: userName, handleOnclick)
- ํด๋์ค ์ปดํฌ๋ํธ ์ด๋ฆ: Title Case (ex: Button)
ย
๊ธฐํ ๋ฐ ERD, API ๋ฌธ์ํ๋ฅผ ์งํํ์์ต๋๋ค.
์ฌ์ ์ธํ
(Figma) ๋ฐ ๋ ์ด์์ (2024.11.22 ~ 2024.11.28)
Figma ์์ ๋ฐ ๊ธฐ๋ณธ ๋งํฌ์ ์์ ๊ณผ ๋ ์ด์์ ์์ ์ ์งํํ์์ต๋๋ค.
์ญํ ์ ๋ถ๋ดํด ์ ์ฒด์ ์ธ ๊ธฐ๋ฅ์ ๋ณด์ํ๊ณ ์๋ฒ๋ฅผ ์ฐ๋ํ์ต๋๋ค.
๊ฐ๋ฐ ๊ธฐ๋ฅ์ ๋ํ ํ ์คํธ ๋ฐ ๊ธฐ๋ฅ์ ๋ํ ๋ฌธ์๋ฅผ ์ ๋ฆฌํ์์ต๋๋ค.
ย
- ๊ทผ๋ฌด ์๊ฐ: supabase์์ ๋ฐฐ์น์์ ์ผ๋ก ํ์๊ฐ๋ง๋ค ํ์ฌ ๊ทผ๋ฌด๊ฐ ๋๋ ์ผ์ ์ ๋ฐ์ํ๊ณ work_hours์์ ๋ถ๋ฌ์ ํ์
- ์บ๋ฆฐ๋: ๊ฐ์ธ ์ค์ผ์ค(์ฌ์ฉ์), ์ ์ฒด ์ง์ ์ค์ผ์ค(๊ด๋ฆฌ์) ํ์
- ๊ธ์ฌ ๋ช ์ธ์: ์บ๋ฆฐ๋์์ ์ ํ๋ ๋ ์ง์ ๋ฌ์ ํด๋นํ๋ ๊ธ์ฌ ๋ช ์ธ์(์ฌ์ฉ์), ์ง์๋ค์ ๊ธ์ฌ ๋ชฉ๋ก(๊ด๋ฆฌ์) ํ์
(์ฌ์ฉ์)
- ์ ์ฒญ : ๋ฏธ๋ฐ์ ๊ธ์ก, ์ฌ์ , ์ฒจ๋ถ ์๋ฃ๋ฅผ ์ ๋ ฅํด supabase์ ์ถ๊ฐ
- ์ ์ฒญ ๋ด์ญ ํ์ธ
(๊ด๋ฆฌ์)
- ์ ์ฒญ ์กฐํ : ์ฐ, ์์ ๊ธฐ์ค์ผ๋ก supabase์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ์กฐํ
- ์ ์ฒญ ์ฒ๋ฆฌ : ์น์ธ/๋ฐ๋ ค ์ฒ๋ฆฌ
- react-calendar ์ฌ์ฉํด month view์ ์บ๋ฆฐ๋ ๊ตฌํ
- ์ ๋ฌด ์นดํ ๊ณ ๋ฆฌ์ ๋ฐ๋ผ ํํฐ๋ง ๊ธฐ๋ฅ ๊ตฌํ
- ์ถ๊ฐ, ์์ , ์ญ์ ์์ด์ฝ ํด๋ฆญํด ์ผ์ ๊ด๋ฆฌ ๊ฐ๋ฅ
-
์ผ์ ์ถ๊ฐ
- ์ ํจ์ฑ ๊ฒ์ฌ
- ๋ฐ๋ณต ์ค์ (๋ฐ๋ณต์ฃผ๊ธฐ, ๋ฐ๋ณต ๋๋๋ ๋ ์ง), description ์ธ ๋ชจ๋ ํ๋ ๊ฐ ์์ด์ผ ํจ
- ๋ฐ๋ณต ์ค์ ์์๋ ๋๋๋ ๋ ์ง๊ฐ ์์ ๋ ์ง ์ดํ์ฌ์ผ ํจ
- description ๊ธ์ ์ ์ ํ
- ์ฌ์ฉ์๋ ์ค๋ ์ผ์ ์ดํ๋ง ๊ฐ๋ฅ
- ๊ด๋ฆฌ์๋ ์ฌ์ฉ์๋ฅผ ๊ฒ์ํด ํด๋น ์ฌ์ฉ์์ user_id๋ก ์ค์ผ์ค ์ถ๊ฐ
- redux-thunk๋ฅผ ์ฌ์ฉํด supabase, ์ ์ญ ์ํ์ ๋น๋๊ธฐ๋ก ๋ฐ์ดํฐ ์ถ๊ฐ
- ์ ํจ์ฑ ๊ฒ์ฌ
-
์ผ์ ์กฐํ
- ์ฟผ๋ฆฌ๋ฌธ ์กฐ์ํด supabase์์ userId ์์ผ๋ฉด ์ฌ์ฉ์, ์์ผ๋ฉด ๊ด๋ฆฌ์(์ ์ฒด ์ค์ผ์ค ๊ฐ์ ธ์ค๊ธฐ), value ์์ผ๋ฉด ํน์ ์นดํ ๊ณ ๋ฆฌ, ์์ผ๋ฉด ์ ์ฒด ์ค์ผ์ค ๊ฐ์ ธ์ค๊ฒ ํจ
- ์ ์ญ ์ํ์ ์กฐํ๋ ๋ฐ์ดํฐ ๋ฃ์
-
์ผ์ ์์
- ์ ํจ์ฑ ๊ฒ์ฌ ์คํ
- ์ฌ์ฉ์๋ ์ค๋ ์ผ์ ์ดํ๋ง ๊ฐ๋ฅ
- ๋ฐ๋ณต ์ผ์ ์ ์ฒด ์์ or ๋จ์ผ ์ผ์ ์์ ๋ฐ์ ์ฒ๋ฆฌ
-
์ผ์ ์ญ์
- ์ฌ์ฉ์๋ ์ค๋ ์ผ์ ์ดํ๋ง ๊ฐ๋ฅ
- ๋ฐ๋ณต ์ผ์ ์ ์ฒด ์ญ์ or ๋จ์ผ ์ผ์ ์ญ์ ๋ฐ์ ์ฒ๋ฆฌ
ย
-
KEEP
- ํ์๋ค๊ณผ ์์ฌ์ํต ํ๋ฉฐ ์งํ ์ํฉ ์ฒดํฌํ๊ธฐ
- ๊ถ๊ธํ๋ ๋ถ๋ถ ์ง๋ฌธํ๊ธฐ
- ์๋ก์ด ๊ธฐ์ ํ์ตํ๋ฉฐ ์ ์ฉํ๊ธฐ
-
PROBLEM
- ๊ธฐ๋ฅ๋ช ์ธ์ ์์ฑ์ด๋ ๋ง์ผ์คํค๊ณผ ์๊ตฌ์ฌํญ ์ค๊ฐ์ ๊ฒ์ด ๋ถ์กฑํ์
-
TRY
- ๋ง์ผ์คํค์ด๋ ๊ธฐ๋ฅ๋ช ์ธ์ ๊ฐ์ ๋ถ๋ถ ์ด๊ธฐ์ ํ์คํ๊ฒ ์ ํด๋๊ณ ์์ํ๊ธฐ
-
KEEP
- ๋ชจ๋ฅด๊ฑฐ๋ ์ ๋งคํ ๋ถ๋ถ์ด ์์ ๋ ํ์ ๋ถ๋ค๊ณผ ์๊ธฐํด๋ณด๊ธฐ
- ๋ถ์กฑํ ๋ถ๋ถ ๊ตฌ๊ธ๋ง๊ณผ AI๋ฅผ ํตํด ๊ณ์ ์ฑ์ฐ๊ธฐ
- ๊ณตํต์ ์ผ๋ก ์์ ํ๋ ๋ถ๋ถ์ ๋ํด์ ์ง์์ ์ผ๋ก ์ํตํ๊ธฐ
-
PROBLEM
- ์ด๊ธฐ ์๊ตฌ์ฌํญ์ ์์ผํ๊ฒ ์ฒดํฌํ์์
- ๋จผ์ ๋นจ๋ฆฌ ์์ฑํ๊ณ ์ดํ์ ์ฒดํฌํด๋ณด์ ํ๋ ์๊ฐ์ด ๋ง์ ๊ฒฐ์ ์ ๋ณ์์
- ์ปจ๋ฒค์ ์ ๋ํ ์ ํํ ์ดํด์์ด ์งํํ์ฌ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํจ
-
TRY
- ์ด๊ธฐ์ ํ์์ฌํญ๋ค์ ํ์คํ ์๊ณ ์์ํ๊ธฐ
- ์๋๋ฅด์ง ์๊ณ ๊ผผ๊ผผํ๊ฒ ์์ ํ๊ธฐ
-
KEEP
- ๋ชจ๋ฅด๋ ๊ฒ ์์ผ๋ฉด ๋ฐ๋ก ์ง๋ฌธํ๊ธฐ
- ๊ถ๊ธํ๋ ์ ๋ฉํ ๋๊ป ์ ๊ทน์ ์ผ๋ก ์ง๋ฌธํ๊ธฐ
- ๋ถํธ์บ ํ ์๊ฐ๋์ ์๋ฆฌ ๋น์ฐ์ง ์๊ธฐ
- ๊ธฐ๋ฅ ๊ตฌํ ์ ํ์๋ค๊ณผ ์ถฉ๋ถํ ๋ ผ์๋ฅผ ํตํด ์ค๊ณํ๊ธฐ
-
PROBLEM
- ์ฝ๋ ๋ฆฌ๋ทฐ๊ฐ ์กฐ๊ธ ๋ถ์งํ์
- ์ผ์ ์ด ์ ๊ณต์ ๋์ง ์์์
-
TRY
- ์ฝ๋ ๋ฆฌ๋ทฐ ์ ๊ทน์ ์ผ๋ก ํ๊ณ , ์์ฉํ๊ธฐ
- ๊ฐ์ ํ๊ณ ์๋ ์์ ์ ํํ๊ณ ๋น ๋ฅด๊ฒ ๊ณต์ ํ๊ธฐ
-
KEEP
- ์ ๋ง ๋ชจ๋ฅด๊ฒ ๋ ๋ถ๋ถ์ ์ง๋ฌธํ๊ธฐ
- ์ํต ์ ํ๊ธฐ
-
PROBLEM
- ์ฝ๋ ๋ฆฌ๋ทฐ๊ฐ ์ ์ด๋ฃจ์ด์ง์ง ์์๋ ๊ฒ ๊ฐ์
-
TRY
- ๋ ์ ๊ทน์ ์ผ๋ก ์ํตํ๊ธฐ
- ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์ ๊ฒฝ์ฐ๊ธฐ
-
KEEP
- ํ์๋ค๊ณผ ์์ฌ์ํต ํ๋ฐํ๊ฒ ํ๊ธฐ
- ํ๋ก์ ํธ ๊ธฐ๊ฐ๋ด์ ๊ธฐ๋ฅ ๊ฐ๋ฐ ์๋ฃํ๊ธฐ
-
PROBLEM
- ์น ์ ๊ทผ์ฑ์ ๊ณ ๋ คํ์ง ๋ชปํจ
- ๋ ์ง์ ์๊ฐ์ ๋ํด ์ ํํ๊ฒ ์ดํดํ์ง ๋ชปํ๊ณ ์ฌ์ฉํ๋ค
- ์ค๋ณต๋๋ ์ฝ๋๊ฐ ์ค๊ฐ์ค๊ฐ ์์
- Typescript์ ๋ํ ์ง์์ด ๋ถ์กฑํ์ฌ ์ ์ฌ์ ์์ ๋ง๊ฒ ์ฌ์ฉํ์ง ๋ชปํจ
- any ํ์ ์ ์ง์ํ์ง ๋ชปํ์
-
TRY
- any ํ์ ์ Unknown ํ์ ์ผ๋ก ๋ณ๊ฒฝ
- ๊ธฐ๋ณธ์ ์ธ ํ ์คํธ ์ฝ๋ ์์ฑํด๋ณด๊ธฐ
- ์ ์ฌ์ ์์ ๋ง๋ Typescript type ์ฌ์ฉํ๊ธฐ
- ์ค๋ณต ์ฝ๋ ๊ฐ์ ํ๊ธฐ