ํฐ์คํ ๋ฆฌ ๋ทฐ

์์์์ฑ์ด๋? ๊ธฐ์ ์ด๋ ์กฐ์ง์ด ํน์ ์ ๋ฌด๋ฅผ ์ธ๋ถ ์ ๋ฌธ ์ ์ฒด๋ ๊ฐ์ธ์๊ฒ ์ํ
→ ํ ํ์ฌ์ ๊ฐ๋ฐ์๊ฐ ๋์๋ค ์๊ฐํ๊ณ ์ฃผ์ด์ง ์๊ตฌ์ฌํญ์ ์ ๋ฐ์ํด์ ์์์์ฑ ํ๋ก์ ํธ๋ฅผ ์ฑ๊ณต์์ผ ๋ด ์๋ค!
๋ ๋ฒ์งธ ํ์ ํ๋ก์ ํธ.
์ด๋ฒ์๋ ์ธ ๊ฐ์ง ์๋น์ค ์ค ํ ๊ฐ์ง ์ด์์ ํฌํจํ ์น์ฌ์ดํธ๋ฅผ ๊ตฌํํด์ผ ํ๋ค.
์ฐ๋ฆฌ ์กฐ(ํ์ดํ์ด๋ธโ)๋ ์ง๋ ์๋น์ค, ์ ํ๋ธ ์์ ์ง์, ์ค๋ฌธ์กฐ์ฌ์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ ์ค ์นด์นด์ค ์ง๋, ์ ํ๋ธ ๋ฅผ ์ ํํ์๋ค.
2025.02.26 (์) Works
1. ์์ด๋์ด ์ค์ผ์น - ํผ๊ทธ๋ง
2. S.A(Starting Assignments) ์ ํ๊ธฐ
- ํ๋ก์ ํธ ์ฃผ์
- ํฌํจํ ๋ด์ฉ
- ๊ตฌ์ฑ
- ๊ธฐ๋ฅ
3. ํ ๊ท์น ์ ํ๊ธฐ
- ์ปค๋ฐ ์ปจ๋ฒค์
- git rules
์์ด๋์ด ์ค์ผ์น
์ธ ๊ฐ์ง ์๋น์ค ์ค ํ ๊ฐ์ง ์ด์์ ๊ณจ๋ผ์ ํ์ด์ง๋ฅผ ๊ตฌํํด์ผํ๊ธฐ ๋๋ฌธ์ ์กฐ์ ๊ฐ์์ ์์ ๋ก์ด ์์ด๋์ด๋ฅผ ๋ชจ์๋ณด์๋ค.
๋๋ AI๋ฅผ ํ์ฉํ์ฌ ์ ํ๋ธ ์์์ ๋ด์ฉ์ ๊ฐ๋ตํ ์์ฝํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํด์ฃผ๋ ์ฌ์ดํธ๋ฅผ ์๊ฐํ๋ค.
ํ์ง๋ง ์๊ฐํด๋ณด๋ฉด ์ด๊ฒ์ ๊ทธ์ ํ๊ฐ์ง์ ๊ธฐ๋ฅ์ด์๊ณ , ๋ค๋ฅธ ์ฃผ์ ์ ํ๋ก์ ํธ๋ฅผ ์งํํ ๋ ๋ฐ์ํด๋ณด๋ฉด ์ข์ ๋ฏ ํ๋ค.
์ ํด์ง ์ฃผ์ ๋ 'ํซํ ๊ณต์ ์ง๋'
์ด ์ฃผ์ ๋ก ๊ฐ์ธ์ ์ผ๋ก ์๊ฐํ๋ ๊ธฐ๋ฅ ๋ฐ ๋ ์ด์์์ ํผ๊ทธ๋ง์ ๋๋ต์ ์ผ๋ก ๊ทธ๋ ค๊ฐ๋ฉฐ ํจ๊ป ์ด์ผ๊ธฐ ๋๋์๋ค.
์ฌ๋ฌ ์๊ฒฌ์ ์กฐํฉํ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ฌ์ฉ์์๊ฒ ์นด์นด์ค ์ง๋๋ฅผ ํตํด ์์ธ ํ์ ์ผ๋ก ์ง์ญ๋ณ ํซํ์ ์ถ์ฒํด์ฃผ๋ฉฐ ๊ด๋ จ ์ ํ๋ธ ์์๋ ํจ๊ป ์ ๊ณตํ๋ค.
๋ํ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์ ํํ์ฌ ์ฃผ๋ณ ์์์ ๊ณผ ์นดํ๋ฅผ ์ง๋์์ ๋ํ๋ธ๋ค.
ํ์๊ฐ์ ๊ณผ ๋ก๊ทธ์ธ ํ ์ฌ์ฉ์๋ ํด๋น ์ง์ญ์ ๋ถ๋งํฌํ ์ ์์ผ๋ฉฐ ๋ง์ดํ์ด์ง์์ ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
S.A ์์ฑ
๐ํ๋ก์ ํธ ์ฃผ์ ๋ฐ ํ ์ค ์ ๋ฆฌ
์์ ๋งํ ๋ฏ, ์นด์นด์ค์ง๋์ ์ ํ๋ธ๋ฅผ ํ์ฉํ์ฌ ์์ธ ๋ด ์ง์ญ๋ณ ํซํ ๊ณต์ ์ง๋์ด๋ค.
๐ํฌํจํ ๋ด์ฉ
- ํ์๊ฐ์ , ๋ก๊ทธ์ธ์ผ๋ก ํ์ ๊ด๋ฆฌ
- ์นด์นด์ค ์ง๋
- ์ฃผ๋ณ ์ฅ์ ๋ฆฌ์คํธ ๋ํ๋ด๊ธฐ
- ์ฐ๋ฆฌ๊ฐ ์ ๊ณตํ๋ ํซํ ๋ง์ปค ์ง๋์ ํ์
- ๋ง์ปค ํด๋ฆญ ์
- ํด๋น ์ฅ์ ์ ๋ณด(์์์ ์ด๋ฆ, ์ฃผ์, ์ด์์๊ฐ, ๋ฒํธ, ์ฃผ์ฐจ ์ฌ๋ถ, ์ ํ๋ฒํธ ๋ฑ)
- ํซํ ๊ด๋ จ ์์ ์ ๋ณด
- ํซํ ์ข์์
- ํซํ ๋ง์ปค ๋ถ๋งํฌ
- ์ ํ๋ธ
- ํซํ ์ฅ์ ๊ด๋ จ ์์ 3~5๊ฐ ์ ๊ณต
๐ํ์ด์ง ๊ตฌ์ฑ
- ๋ก๊ทธ์ธ
- ํ์๊ฐ์
- ๋ฉ์ธํ์ด์ง
- ์ง์ญ ์นดํ ๊ณ ๋ฆฌ & ์ง๋(๊ณ ์ )
- ์์๋ฆฌ์คํธ
- ๋ง์ดํ์ด์ง
- ํ๋กํ ํ์ธ ๋ฐ ์์
- ๋ถ๋งํฌ ํ ํซํ
๐๊ธฐ๋ฅ
- ํ์๊ฐ์ ์ ํตํด ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์ ์ฅ
- ๋ก๊ทธ์ธ์ ํตํด ํ์ด์ง ๋ฐ ๊ธฐ๋ฅ ์ด์ฉ ๊ถํ ๋ถ์ฌ
- ์ง์ญ๋ณ ํซํ ์ ๋ณด ์ ๋ฌ
- ์นด์นด์ค์ง๋ API
- ํซํ ์ฅ์ ์ ๋ณด ๋ํ๋ด๊ธฐ(์์์ ์ด๋ฆ, ์ฃผ์, ์ด์์๊ฐ, ๋ฒํธ, ์ฃผ์ฐจ ์ฌ๋ถ, ์ ํ๋ฒํธ ๋ฑ)
- [์์์ , ์นดํ] ์นดํ ๊ณ ๋ฆฌ๋ก ์ฃผ๋ณ ์ฅ์ ๋ฆฌ์คํธ๋ก ๋ํ๋ด๊ธฐ (๋ฌดํ์คํฌ๋กค)
- ์ ํ๋ธ API
- ํซํ ์ฅ์ ๊ด๋ จ ์ ํ๋ธ ์์ ํ๋ ์ด์ด
- ์ฃผ๋ณ ๊ฐ๊ฒ ๋ฌดํ์คํฌ๋กค
ํ ๊ท์น ์ ํ๊ธฐ
๐git rules
- ์ด์ ํ์ฑํ
- ๊ธฐ๋ฅ ๊ตฌํ ์ ์ด์๋ฅผ ๋จผ์ ์์ฑํ์ฌ ์ด์ ๋ฒํธ๋ฅผ ํ์ธํ๊ธฐ
- ๋ธ๋์น๋ช
์์ฑ
- `Feature/[issue-number]-setting_project`

์ ๊ฐ์ด ๋ธ๋์น ๋ช ์ ์ ํ์ฌ ์ด์ ๋ฒํธ์ ๋ํ ๋ธ๋์น๋ฅผ ์์ฑํ๋ค.
๋ง์ ๋ธ๋์น๋ช ์ด ์์ง๋ง ์๋ง Feature/ ์ ๋ง์ด ์ฌ์ฉํ๊ฒ ๋ ๊ฒ์ด๋ผ๊ณ ์ด์ผ๊ธฐ ๋๋์๋ค.
- ์ปค๋ฐ ๋ฉ์ธ์ง
- update:#10 title change
(ํ์ :#์ด์๋ฒํธ ๋ด์ฉ)
- update:#10 title change

์์ ํ์ ๊ณผ ํจ๊ป ๋ง์ฐฌ๊ฐ์ง๋ก ์ด์ ๋ฒํธ์ ๋ํ ์ปค๋ฐ ๋ฉ์ธ์ง๋ฅผ ์์ฑํ๋ค.
๋ฉ์ธ์ง์ ๋ด์ฉ๊ณผ ํ์์ ์์ ๋กญ๊ฒ ~
- PR
- ์๋์ ๊ฐ์ ํ์์ผ๋ก PR์ ์์ฑํ๊ฒ ๋๋ฉฐ ํ์ ๋ฐ๋ก ์ฌ์ฉ๋ ์ ์๋๋ก ์ค์ !
### ์ด์ ๋ฒํธ
> ํด๋น ์ด์ ๋ฒํธ๋ฅผ ์ ์ต๋๋ค.
### ์์
์ค๋ช
> ์์
ํ ๋ด์ฉ์ ์ ์ต๋๋ค.
### ๋ฆฌ๋ทฐ ์๊ตฌ ์ฌํญ
> ๋ฆฌ๋ทฐ ์์ ์๊ฐ ๋ฐ ๊ณ ๋ฏผ ์ฌํญ์ ์ ์ต๋๋ค.
> ๋
ผ์๊ฐ ํ์ํ ๋ถ๋ถ ๋จ๊ฒจ์ฃผ์ธ์ฉ
### ๋ฏธ๋ฆฌ๋ณด๊ธฐ
> ํ๋ก ํธ์์ ๋์์ธ์ ๋ณ๊ฒฝ์ฌํญ ๋๋ ์๋ก์ด ๋์์ธ์ ๋จธ์งํ๋ ๊ฒฝ์ฐ ์ด๋ฏธ์ง๋ฅผ ์ฒจ๋ถํฉ๋๋ค.
๐Code Convention
- src ํ์์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ ๋ฐ ํ์ผ๊ตฌ์กฐ
- app/: router, compositeProvider ๋ฑ ํ๋ก์ ํธ์ ํ๊ฒฝ ์ค์ ๊ฐ์ ํ์ผ์ ์ ์ฅ
- public/: ์ด๋ฏธ์ง, ํ๋น์ฝ, ํฐํธ ๋ฑ์ ์ ์ ํ์ผ์ ์ ์ฅ
- components/: ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๋ฅผ ์ ์ฅํฉ๋๋ค. ํด๋ ํ์์ ํ์ผ์ ์์ฑํจ
- common/: ํ๋ก์ ํธ ์ ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๊ณตํต ์ปดํฌ๋ํธ
- layout/: header, footer๋ฑ layout์์ ์ฌ์ฉ๋๋ ์ปดํฌ๋ํธ
- (์์ญ)/: ๊ฐ์ธ๋ง๋ค ์ฌ์ฉํ ๋๋ ํฐ๋ฆฌ (์: my-page/)
- lib/: ์ ํธ๋ฆฌํฐ ํจ์, API ํธ์ถ ๊ด๋ จ ํจ์, ํฌํผ ๋ฑ์ ์ ์ฅ
- api/: supabase ์ฌ์ฉํ๊ธฐ ์ฝ๋๋ก ์บก์ํํ ํจ์๋ค
- hooks/: ์ปค์คํ ํ ⇒ ๊ฐ์ธ ๋ธ๋์น์์ Tanstack ์ฟผ๋ฆฌ ์ฌ์ฉํ
- utils/: ๋ค์ํ ์ ํธ๋ฆฌํฐ ํจ์
- store/ : zustand, ํด๋ผ์ด์ธํธ ์ ์ญ ์ํ๊ด๋ฆฌ ๋๋ ํฐ๋ฆฌ
- data/: ํ๋ก์ ํธ ์ ๋ฐ์ ์ฌ์ฉ๋๋ ์์๋ฅผ ์ ์ฅํฉ๋๋ค.
- ๋๋ ํ ๋ฆฌ ๋ค์ด๋ฐ : kebab-case
- ํ์ผ ๋ค์ด๋ฐ : ์ปดํฌ๋ํธ๋ฅผ ํฌํจํ ํ์ผ์ ์ด๋ฆ์ PascalCase
- React Hook : ‘use’๋ก ์์ํ๋ camelCase
- ์ด์ธ์ ํ์ผ : camelCase
- API ํจ์๋ช
- GET API - get[๋ก์ง ๋ช ] / ์์ : getPeeds
- POST/PATCH/PUT/UPDATE/DELETE API - ์์ฒญํ์ [๋ก์ง ๋ช ] / ์์ : postSignIn (๋ก๊ทธ์ธ ํจ์)
- ์ด๋ฒคํธ ํธ๋ค๋ฌ
- handle[๋ก์ง] - ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์ ์ํ ๋ handle๋ก ์์ / ์์ - handleAddPokemon
- on[์ ์ ํ ๋ก์ง ๋ช ] - ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ๋ ์ธ์๋ช ์ด on ์ผ๋ก ์์ / ์์ - onRemovePokemon
- ๋ณต์๋ช ์ ๋ํ๋ด๋ ๋ณ์๋ช : 's' ๋ถ์ด๊ธฐ / ์์ - pokemons
- Named Function VS Arrow Function
// Named Function //์ปดํฌ๋ํธ, ํ์ด์ง
function helloWorld() {
console.log('hello world!');
}
// Arrow Function // ์ปดํฌ๋ํธ์ ํ์ด์ง๋ฅผ ์ ์ธ!ํ ๋ด๋ถ ํจ์ ๋ฑ ๋๋จธ์ง
const helloWorld = () => {
console.log('hello world!');
}
// or
const helloWorld = () => console.log('hello world!');
Tomorrow Task
- ์์ด์ดํ๋ ์ ์ง๊ธฐ(์ ์ฒด์ ์ธ ๋ ์ด์์)
- ๊ธฐ๋ฅ ํ์คํ ์ ํ๊ธฐ
- supabase ํ ์ด๋ธ ์๊ฒฌ ๋๋๊ธฐ
'Project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Outsourcing_Day 3] HotPlace In Seoul ๐ฅ - tanstack query & custom hook (0) | 2025.03.02 |
|---|---|
| [Outsourcing_Day 2] HotPlace In Seoul ๐ฅ (0) | 2025.03.01 |
| [MBTI-Test PJ_Final] MBTI Test (0) | 2025.02.25 |
| [MBTI-Test PJ_Day 3] Visibility, isOwner (0) | 2025.02.25 |
| [MBTI-Test PJ_Day 2] JWT ์ธ์ฆ API ์ฐ๊ฒฐ (0) | 2025.02.25 |