๋น์ ์ ์ด๋ ํํธ๋ WeFit: ์ด๋ ์์์ ์ ์ฅํ๊ณ ๊ณต์ ํ๋ฉฐ ์ํตํ๋ ํผํธ๋์ค ํ๋ซํผ์ ๋๋ค.
We + Fitness: ์ฐ๋ฆฌ๋ ํญ์ ํจ๊ป ์ด๋ํ๋ค๋ ์๋ฏธ๋ฅผ ๋ด์ ์๋น์ค๋ช ์ ๋๋คโ๏ธ
ย
Type | Tool |
---|---|
Library | |
Language | |
Styling | |
BaaS | |
State Management | |
Data Fetching | |
Test | |
Formatting | |
Package Manager | |
Version Control | |
Collaboration |
ย
git clone https://github.com/Dev-FE-2/toy-project3-team2-wefit.git
npm install
npm run dev
์คํ ํ http://localhost:5173
์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
ย
๐ src
โโ๐ api # ํ์ผ๋ช
: PascalCase
โโ๐ assets # ํด๋๋ช
: kebab-case
โโ๐ components
โ โโ๐ auth
โ โโ๐ author
โ โโ๐ bookmark
โ โโ๐ comment
โ โโ๐ common
โ โโ๐ empty
โ โโ๐ header
โ โโ๐ my-page
โ โโ๐ navigation-bar
โ โโ๐ playlist
โ โโ๐ skeleton
โ โโ๐ thumbnail
โ โโ๐ video
โโ๐ constants
โโ๐ hooks
โโ๐ layout
โโ๐ mocks
โโ๐ pages
โโ๐ routes
โโ๐ schema
โโ๐ store
โโ๐ styles
โโ๐ types
โโ๐ utils
// ํจ์
const ComponentName = () => { ... }
// ๋ณ์
const userInput = '...' // camelCase
const API_KEY = '...' // UPPER_SNAKE_CASE
feat: ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ
style: css ์์ ๋ฐ ์ฝ๋์ ์๋ฏธ์ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๋ณ๊ฒฝ์ฌํญ
fix: ๋ฒ๊ทธ ์์
refactor: ๋ฆฌํฉํ ๋ง, ๊ธฐ๋ฅ ๋ณํ ์์ด ์ฝ๋ ๊ตฌ์กฐ ๊ฐ์
chore: ์ฝ๋ ์์ ์ธ ์ก๋คํ ์์
(๋น๋ ๊ณผ์ ์ด๋ ์ค์ ๋ณ๊ฒฝ ๋ฑ)
docs: ๋ฌธ์ ๋ณ๊ฒฝ
test: ํ
์คํธ ์ฝ๋ ์ถ๊ฐ ๋๋ ์์
revert: ์ด์ ์ปค๋ฐ์ ๋๋๋ฆผ
main (๋ฐฐํฌ์ฉ)
โ
โโโ develop (๊ฐ๋ฐ์ฉ main)
โ
โโโ feat/video-fetch-15 # ๊ธฐ๋ฅ๋ณ ๋ธ๋์น
โโโ feat/user-auth-22
โโโ feat/api-integration-39
- main: ๋ฐฐํฌ ์ค๋น๊ฐ ์๋ฃ๋ ์ฝ๋๋ง ๊ด๋ฆฌ
- develop: ๊ฐ๋ฐ ์ค์ธ ์ฝ๋์ ์ค์ฌ ๋ธ๋์น
- feat/*: ๊ธฐ๋ฅ๋ณ ๋
๋ฆฝ ๊ฐ๋ฐ ํ๊ฒฝ
- ๋ค์ด๋ฐ: feat/๊ธฐ๋ฅ-์ธ๋ถ๊ธฐ๋ฅ-์ด์๋ฒํธ
- ์์: feat/video-fetch-15
- ESLint: ์ ์ ์ฝ๋ ๋ถ์์ ํตํด ์ ์ฌ์ ๋ฌธ์ ๋ฅผ ๊ฐ์งํ๊ณ ์ผ๊ด๋ ์ฝ๋ ํ์ง์ ๋ณด์ฅํฉ๋๋ค.
- Prettier: ๊ฐ๋ฐ์๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ์๋์ผ๋ก ํฌ๋งทํ ํ์ฌ ํ๋ก์ ํธ ์ ๋ฐ์ ๊ฑธ์ณ ์ผ๊ด๋ ์ฝ๋ ์คํ์ผ์ ์ ์งํฉ๋๋ค.
- Commitlint: ์ปค๋ฐ ๋ฉ์์ง๊ฐ ์ ํด์ง ๊ท์น์ ๋ฐ๋ฅด๋๋ก ๊ฒ์ฌํ์ฌ ๋ช ํํ๊ณ ์ผ๊ด๋ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- Husky: Git Hooks๋ฅผ ํตํด ์ปค๋ฐ ์ ๋ฆฐํธ ๊ฒ์ฌ, ํธ์ ์ ํ ์คํธ ์คํ ๋ฑ ์๋ํ๋ ํ์ง ๊ฒ์ฌ๋ฅผ ์ํํฉ๋๋ค.
ย
ํ๋ก์ ํธ์ ๋ฐฉํฅ์ฑ์ ์ค์ ํ๊ณ ํต์ฌ ๊ธฐ๋ฅ์ ์ ์ํ๋ ์๊ฐ์ ๊ฐ์ก์ต๋๋ค. ํ์๋ค๊ณผ ํจ๊ป ์๊ตฌ์ฌํญ ๋ช ์ธ์๋ฅผ ์์ฑํ๊ณ ์๋น์ค ํ๋ก์ฐ๋ฅผ ๊ตฌ์ฒดํํ์ต๋๋ค.
์์ด์ดํ๋ ์ ์ ์ (2025.01.02 ~ 2025.01.05)
์ ์๋ ๊ธฐ๋ฅ ๋ช ์ธ๋ฅผ ๋ฐํ์ผ๋ก Figma๋ฅผ ํ์ฉํ์ฌ ์์ด์ดํ๋ ์์ ์ ์ํ์ต๋๋ค. ํ๋ก์ ํธ์ ์ผ๊ด์ฑ์ ์ํด ๋์์ธ ์์คํ ์ ๊ตฌ์ถํ๊ณ ์ปดํฌ๋ํธ๋ฅผ ์ค๊ณํ์ต๋๋ค.
์ค๊ณ๋ ์์ด์ดํ๋ ์์ ๊ธฐ๋ฐ์ผ๋ก ํต์ฌ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค. ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ UI ์ปดํฌ๋ํธ๋ค์ ์ง์ ์ค๊ณํ๊ณ ๊ฐ๋ฐํ ํ, ์ธ๋ถ ๊ธฐ๋ฅ์ ๋จ๊ณ์ ์ผ๋ก ๊ตฌํํ์ต๋๋ค. ๋งค์ผ ์์นจ ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ์ ํตํด ์งํ ์ํฉ์ ๊ณต์ ํ๊ณ , ํ์ ๊ฐ ์ ๊ทน์ ์ธ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์งํํ์ต๋๋ค.
Supabase๋ฅผ BaaS(Backend as a Service)๋ก ๋์ ํ์ฌ ๋ด์ฅ ๋ฉ์๋๋ฅผ ํ์ฉํ API๋ฅผ ์ค๊ณํ์ต๋๋ค. ์ด๋ฅผ TanStack Query์ ์ฐ๋ํด ํจ์จ์ ์ธ ๋ฐ์ดํฐ ํ์นญ๊ณผ ์ํ ๊ด๋ฆฌ๋ฅผ ๊ตฌํํ์ต๋๋ค.
์ฝ๋ ํ์ง ํฅ์์ ์ํ ๋ฆฌํฉํ ๋ง์ ์งํํ๊ณ , ์ปดํฌ๋ํธ ๋ถ๋ฆฌ ๋ฐ ๋ฐ๊ฒฌ๋ ๋ฒ๊ทธ๋ฅผ ์์ ํ์ต๋๋ค.
ย
DBDiagram์ ํ์ฉํด ์ด๊ธฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค๊ณํ์ผ๋ฉฐ, ๊ฐ๋ฐ ๊ณผ์ ์์ ํ์ํ ํ ์ด๋ธ ๊ตฌ์กฐ ๋ณ๊ฒฝ์ Supabase ๋์๋ณด๋์์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ํ์ต๋๋ค.
ย
- ๋ฒ๊ฑฐ๋ก์ด ํ์๊ฐ์ ์ ์ฐจ ์์ด ์์ ๋ฏธ๋์ด ๊ณ์ ์ ํตํด ์ฆ์ ์๋น์ค์ ์ ๊ทผํ ์ ์์ต๋๋ค.
- ์ด๋ฅผ ํตํด ์ฌ์ฉ์์ ์ง์ ์ฅ๋ฒฝ์ ๋ฎ์ถ๊ณ ์๋น์ค ์ ๊ทผ์ฑ์ ํฌ๊ฒ ํฅ์์์ผฐ์ต๋๋ค.
- ๊ฐ์ด, ๋ฑ, ์ด๊นจ ๋ฑ ๋ค์ํ ์นดํ ๊ณ ๋ฆฌ์ ์์์ ๋ฌดํ ์คํฌ๋กค๋ก ํ์ํ ์ ์์ต๋๋ค. ์คํฌ๋กค์ด ํ๋จ์ ๋๋ฌํ ๋๋ง๋ค ์๋ก์ด ์ปจํ ์ธ ๊ฐ ์๋์ผ๋ก ๋ก๋๋ฉ๋๋ค.
- ์ ์ฒด ๋ถ์๋ณ ํํฐ๋ง์ ํตํด ์ฌ์ฉ์๊ฐ ์ํ๋ ์ด๋ ์์์ ์ฝ๊ฒ ์ฐพ์ ์ ์์ต๋๋ค.
- ์ ํ๋ธ ์์์ ๋ณ๋์ ์ฑ ์ ํ ์์ด ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ๋ฐ๋ก ์์ฒญํ ์ ์์ต๋๋ค. ์๋ฒ ๋๋ ํ๋ ์ด์ด๋ฅผ ํตํด ๋๊น ์๋ ์์ฒญ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
- ๋ง์์ ๋๋ ์์์ ์ข์์๋ฅผ ๋๋ฅด๊ฑฐ๋ ๋ถ๋งํฌ์ ์ ์ฅํ์ฌ ๋์ค์ ๋ค์ ์ฐพ์๋ณผ ์ ์์ต๋๋ค.
- ์์์ ๋ํ ์๊ฐ๊ณผ ๊ฒฝํ์ ๋๊ธ๋ก ๊ณต์ ํ ์ ์์ผ๋ฉฐ, ๋ค๋ฅธ ์ฌ์ฉ์์ ๋๊ธ์ ๋๋๊ธ์ ์์ฑํ์ฌ ํ๋ฐํ ์ํต์ด ๊ฐ๋ฅํฉ๋๋ค.
- ๋ณธ์ธ์ด ์์ฑํ ๋๊ธ์ ์ธ์ ๋ ์ง ์ญ์ ํ ์ ์์ต๋๋ค.
- ์์ฑ์์ ๋ํด์ ํ๋ก์ฐ๋ฅผ ํ ์ ์๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
- ์์ฑ์๊ฐ ์ ๋ก๋ํ ๋ชจ๋ ์์์ ์ต์ ์ ๋๋ ์ธ๊ธฐ์์ผ๋ก ์ ๋ ฌํ์ฌ ํ์ธํ ์ ์์ต๋๋ค.
- ๊ด์ฌ ์๋ ์์์ ๋ถ๋งํฌ์ ์ถ๊ฐํ๊ณ ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ์ ์ฅ๋ ์์๋ค์ ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ๊ทธ๋ฃนํ๋ฅผ ํตํด ํ๋ ์ด๋ฆฌ์คํธ๋ก ์์ฒญํ ์ ์์ต๋๋ค.
- ๋ถ๋งํฌ ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ์์ฑ๋ ํ๋ ์ด๋ฆฌ์คํธ๋ฅผ ํ๋์ ํ์ธํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ๊ฐ ํ๋ ์ด๋ฆฌ์คํธ์ ์์ธ ํ์ด์ง์์ ์์ ์์ ๋ณ๊ฒฝ, ์์ ์ถ๊ฐ/์ ๊ฑฐ ๋ฑ ์์ ๋ก์ด ์ปค์คํฐ๋ง์ด์ง์ด ๊ฐ๋ฅํฉ๋๋ค.
- ๋ ์ด์ ํ์ ์๋ ํ๋ ์ด๋ฆฌ์คํธ๋ ์ญ์ ํ ์ ์์ผ๋ฉฐ, ์ด๋ ์ฐ๊ฒฐ๋ ๋ถ๋งํฌ ์นดํ ๊ณ ๋ฆฌ๋ ํจ๊ป ์ญ์ ๋ฉ๋๋ค.
react-beautiful-dnd
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ ์ง๊ด์ ์ธ ๋๋๊ทธ ์ค ๋๋กญ ์ธํฐํ์ด์ค๋ก ์์ ์์๋ฅผ ์์ฝ๊ฒ ์กฐ์ ํ ์ ์์ต๋๋ค.
- ์ ํ๋ธ URL๋ง์ผ๋ก ์์ฝ๊ฒ ์์์ ์๋ฒ ๋ํ์ฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐํ ์ ์์ต๋๋ค.
- ์์ ์ ๋ชฉ, ๊ด๋ จ ํด์ํ๊ทธ, ๋ํ ์ธ๋ค์ผ์ ์ค์ ํด ์์ ์ ๋ก๋๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ์๋จ์ ๋ก๊ทธ์์ ๋ฒํผ์ผ๋ก ๊ฐํธํ๊ฒ ๋ก๊ทธ์์ํ ์ ์์ผ๋ฉฐ, ์์ ๋ก๊ทธ์ธ ํ ํฐ์ด ์๋์ผ๋ก ์ญ์ ๋ฉ๋๋ค.
- ํ๋กํ ์์ ๊ธฐ๋ฅ์ ํตํด ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ธ์ ๋ ์ง ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
- ๋ด๊ฐ ์ข์์ํ ์์ ๋ชฉ๋ก, ์ง์ ์ ๋ก๋ํ ์์ ๋ชฉ๋ก, ์์ฑํ ๋๊ธ ํ์คํ ๋ฆฌ ๋ฑ ๋์ ํ๋ ๋ด์ญ์ ํ๋์ ํ์ธํ ์ ์์ต๋๋ค.
ย
๐ช ๋ฐ์ฐฌํฌ | ๐ช ์กฐ๋ณ์ฐฌ | ๐ช ์ฐจ์ฌ์ |
๊ณตํต ์ปดํฌ๋ํธ ์ ์ ๋ง์ดํ์ด์ง, ์์ ์ ๋ก๋ ๋ฐ ์์ , ํ๋กํ ์์ ๋ด๊ฐ ์ ๋ก๋ํ ๋์์ ํผ๋ธ๋ฆฌ์ฑ ๋ฐ ๊ฐ๋ฐ |
๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ, ๊ณตํต ์ปดํฌ๋ํธ ์ ์ supabase ์์ ๋ก๊ทธ์ธ ์ฐ๋, ๋ก๊ทธ์ธ ํ์ด์ง ๋ฉ์ธ ํ์ด์ง, ์์ ์์ธ ํ์ด์ง ์์ฑ์ ์์ธ ํ์ด์ง ํผ๋ธ๋ฆฌ์ฑ ๋ฐ ๊ฐ๋ฐ |
๋์์ธ ํ ํฐ ์ธํ
, ๊ณตํต ์ปดํฌ๋ํธ ์ ์ ๋ถ๋งํฌ ํ์ด์ง, ๋๋๊ทธ & ๋๋กญ ํ๋ ์ด๋ฆฌ์คํธ ํ์ด์ง ํผ๋ธ๋ฆฌ์ฑ ๋ฐ ๊ฐ๋ฐ |