ํ๋ก์ ํธ๋ฅผ ํตํด ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฟ์ ๋ด ์๋ค!๐
packages/ : ํ๋ก์ ํธ ํด๋ homework/_workspace : ํ์ ์คํฌ๋ฆฝํธ ๋จ๋ฐ์ฑ ๊ณผ์ ํด๋
ํด๋น ์ ์ฅ์๋ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ๊ธฐ์ด๋ถํฐ ๊ณต๋ถํ์ง๋ง, ์ต๋ํ ์ ์ํ๊ธฐ ์ฝ๊ฒ ํ ์ด ํ๋ก์ ํธ ํ์์ผ๋ก ์งํํฉ๋๋ค.
- ํ์ ์คํฌ๋ฆฝํธ ๊ธฐ์ด๋ฅผ ๊ณต๋ถํ๊ณ ํ์๋ค๊ณผ ๊ณต์ ํ๋ฉฐ ๊ฐ์์ ํ๋ก์ ํธ๋ฅผ ๋ฆฌ๋ทฐํฉ๋๋ค.
- ์๊ฒ ๋ ์ , ๊ณ ๋ฏผํ๋ ์ , ํธ๋ฌ๋ธ์ํ ์ ๋ํ ๊ฒฝํ์ ์ด์ผ๊ธฐํจ์ผ๋ก์จ ๋ธ๋ ์ธ ์คํ ๋ฐ์ ์ด๋์ด ๋ ๋๋ค.
- ๊ธฐ์ด์ ํจ๊ป ์ดํํฐ๋ธํ ํ์ ์คํฌ๋ฆฝํธ ์์ฑ๋ฒ์ ๋ํด ๊ณต๋ถํฉ๋๋ค. ์๊ธฐํ๊ฑฐ๋ ๋ฌด์์ ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํ์ง ์๊ณ ์คํฐ๋๋ฅผ ํตํด ์ฒด๋ํ๋๋ก ๋ ธ๋ ฅํฉ๋๋ค.
์๋์ ํ์ ์๊ตฌ์ฌํญ
์ ์คํฐ๋ ๊ธฐ๊ฐ ๋ด์ ๋๋ด๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์์ฌ์ด ์๊ฑฐ๋ ์กฐ๊ธ ๋ ํด๋ณด์๋ ์๊ฐ์ด ๋ ๋ค๋ฉด ์ถ๊ฐ ๊ตฌํ์ฌํญ
, ๋ ํด๋ณด๊ธฐ
๋ฑ์ ์ฑ๋ฆฐ์ง๋ฅผ ์งํํด๋ณด์ธ์.
ํ์ฌ ์ํ ํ๋ก์ ํธ์ ํ๋ก ํธ์๋๋ ์ผ๋ถ๋ฌ ๊ตฌ์กฐํ, ์ฑ ์ ๋ถ๋ฆฌ, ํด๋ฆฐ ์ฝ๋๋ ๋ฆฌํฉํ ๋ง์ ๊ฐ๋ ์ ์์ ๋ฐฐ์ ํ๊ณ ๋ฌํํ๊ฒ ์์ฑ๋์ด ์์ต๋๋ค.
ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ฉํ๋ฉฐ ํ์ ์ฝ๋งค์ด์ง ์๊ณ ์์ ์ ์ฝ๋ ์์ฑ์ ํตํด ํ๋ก์ ํธ๋ฅผ ์ ๋๋ก ์์ฑํด๋ณด์ฃ !
- ๊ฐ์ ์ ์ฅ์๋ฅผ forkํฉ๋๋ค.
packages/{์์ ์ ๋๋ค์}
์ผ๋ก ํด๋๊ฐ ์์ฑ๋์ด ์์ต๋๋ค(๋ง์ฝ ์๋ก ํ๋ ๋ถ์ด๋ผ๋ฉด ์๋ก ์์ฑํ์ธ์!).- ๋ฐ๋์ ์์ ์ ํด๋์์๋ง ์์ ํด์ฃผ์ธ์.
- ์์ ํ PR์ ๋ธ๋ฐ์น๊ฐ ์๋๋ผ main์ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค๐
- Install
npm install # or npm i
-
Run
โ๏ธ์ฐธ๊ณ โ๏ธ
- ํ์ฌ ์คํฌ๋ฆฝํธ๋ก๋ ๋ฐฑ์๋๋ ํ๋ก ํธ์๋ ๊ฐ์ด ๋ชป ๋๋ฆฝ๋๋ค๐ฅ ํฐ๋ฏธ๋์ ๋๋ ์ ๋ฐฑ์๋/ํ๋ก ํธ์๋๋ฅผ ๊ฐ์ด ์คํ์์ผ์ฃผ์ธ์... ์ต๋ํ ๋น ๋ฅด๊ฒ ํด๊ฒฐํด๋ณด๊ฒ ์ต๋๋ค๐ญ
npm run start:api # backend: server npm run start:{๋๋ค์} # frontend: client
- ex)
npm run start:parang
- Build
npm run build
-
*.js
ํ์ผ์*.ts
๋ก ๋ณํํฉ๋๋ค. - any ํ์ ์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
-
type
๊ณผinterface
์ ์ฐจ์ด๋ฅผ ์๊ณ ์์ ๋ง์ ์ปจ๋ฒค์ ์ผ๋ก ์์ฑํฉ๋๋ค. - UI์ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌ(MVC ์ ์ฉ์ด๋ ํด๋ ๊ตฌ์กฐํ ๋ฑ)ํฉ๋๋ค.
-
์ด๋ฉ์ผ ์ค๋ณต ํ์ธ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค(API ์ค๋น X: 2022-03-15 ์ผ์). -
๋ถ๋งํฌ ์ค๋ณต ํ์ธ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค(API ์ค๋น X: 2022-03-15 ์ผ์). - ๋ถ๋งํฌ ์ ๊ฑฐ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค.
- API ๋ชจ๋์ ์์ฑํฉ๋๋ค.
- ๋ฌดํ ์คํฌ๋กค์ ๊ฐ์ ํฉ๋๋ค.
- ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
- ํ๋กํ ํญ์ ์ถ๊ฐํฉ๋๋ค.
- ๋ก๊ทธ์์ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค.
- ํ๋ ์์ํฌ(React, Vue, Svelt)๋ฅผ ์ ์ฉํฉ๋๋ค.
http://localhost:3000
method | uri |
---|---|
POST | /api/user |
{
requestBody: {
"email": "string",
"password": "string"
},
response: {
"_id": "string",
"email": "string",
"password": "boolean",
"bookmark": [
{
"_id": "string",
"url": "string",
},
]
}
}
method | uri |
---|---|
POST | /api/user/login |
{
requestBody: {
"email": "string",
"password": "string"
},
response: {
"_id": "string",
"email": "string",
"password": "boolean",
"bookmark": [
{
"_id": "string",
"url": "string",
},
]
}
}
method | uri |
---|---|
POST | /api/user/bookmark |
{
requestBody: {
"_id": "string",
},
response: [
{
"_id": "string",
"url": "string",
},
]
}
method | uri |
---|---|
POST | /api/user/bookmark/:bookmarkId |
{
requestBody: {
"_id": "string",
},
response: {
"_id": "string",
"email": "string",
"password": "boolean",
"bookmark": [
{
"_id": "string",
"url": "string",
},
]
}
}
method | uri |
---|---|
DELETE | /api/user/bookmark/:bookmarkId |
{
requestBody: {
"_id": "string",
},
response: "number"
}
ํ๋ ๐ป |
์กฐ์ด ๐ป |
Seal ๐ป |
๋๋ฌด ๐ป |
์์ธ ๐ป |
์ฝ์ ๐ป |
ํ๊ทธ | ์ค๋ช |
---|---|
โ๏ธFeat: |
์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ฒฝ์ฐ |
๐ Fix: |
๋ฒ๊ทธ๋ฅผ ๊ณ ์น ๊ฒฝ์ฐ |
โ๏ธDesign: |
CSS ๋ฑ ์ฌ์ฉ์ UI ๋์์ธ ๋ณ๊ฒฝ |
โ๏ธโป๏ธBREAKING CHANGE: |
์ปค๋ค๋ API ๋ณ๊ฒฝ์ ๊ฒฝ์ฐ |
โ๏ธโ๏ธHOTFIX: |
๊ธํ๊ฒ ์น๋ช ์ ์ธ ๋ฒ๊ทธ๋ฅผ ๊ณ ์ณ์ผํ๋ ๊ฒฝ์ฐ |
๐Style: |
์ฝ๋ ํฌ๋งท ๋ณ๊ฒฝ, ์ธ๋ฏธ ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ์์ ์ด ์๋ ๊ฒฝ์ฐ |
๐Refactor: |
ํ๋ก๋์ ์ฝ๋ ๋ฆฌํฉํ ๋ง |
๐ฌComment: |
ํ์ํ ์ฃผ์ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ |
๐Docs: |
๋ฌธ์๋ฅผ ์์ ํ ๊ฒฝ์ฐ |
๐งชTest: |
ํ ์คํธ ์ถ๊ฐ, ํ ์คํธ ๋ฆฌํฉํ ๋ง(ํ๋ก๋์ ์ฝ๋ ๋ณ๊ฒฝ X) |
๐ฌChore: |
๋น๋ ํ์คํธ ์ ๋ฐ์ดํธ, ํจํค์ง ๋งค๋์ ๋ฅผ ์ค์ ํ๋ ๊ฒฝ์ฐ(ํ๋ก๋์ ์ฝ๋ ๋ณ๊ฒฝ X) |
โ๏ธRename: |
ํ์ผ ํน์ ํด๋๋ช ์ ์์ ํ๊ฑฐ๋ ์ฎ๊ธฐ๋ ์์ ๋ง์ธ ๊ฒฝ์ฐ |
๐งบRemove: |
ํ์ผ์ ์ญ์ ํ๋ ์์ ๋ง ์ํํ ๊ฒฝ์ฐ |