์๋ ์ ๋ฐฐ ์์ด๋ ๊ด์ฐฎ์. ์ฐ๋ฆฌ ๊ฐ์ด ์๋ก์ ์ ๋ฐฐ๊ฐ ๋์ด์ฃผ์!
๋๋์ ๋ฐฐ๋ ํ๊ธฐ์ ๊ณผ๋ฐฉ ํญ์ ํตํด ์ธ์ ๋คํธ์ํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
SOPT 29th APPJAM
ํ๋ก์ ํธ ๊ธฐ๊ฐ: 2021.12.18 ~
๋ฆด๋ฆฌ์ฆ: 2022.03
Git Workflow
1. local - feature์์ ๊ฐ์ ๊ธฐ๋ฅ ์์
2. ์์
์๋ฃ ํ remote - develop์ PR
3. ์ฝ๋ ๋ฆฌ๋ทฐ ํ Confirm ๋ฐ๊ณ Merge
4. remote - develop ์ Merge ๋ ๋ ๋ง๋ค ๋ชจ๋ ํ์ remote - develop pull ๋ฐ์ ์ต์ ์ํ ์ ์ง
Branch Name | ์ค๋ช |
---|---|
main | ์ด๊ธฐ ์ธํ ์กด์ฌ |
develop | ๋ชจ๋ ๊ธฐ๋ฅ merge ๋ธ๋์น |
juhyeon | ์ฃผํ ๋ก์ปฌ ๋ธ๋์น |
eunji | ์์ง ๋ก์ปฌ ๋ธ๋์น |
seol | ์ง์ ๋ก์ปฌ ๋ธ๋์น |
localdevelop_feature/#issue | ๊ฐ์ ๊ธฐ๋ฅ ์ถ๊ฐ ๋ธ๋์น |
Commit Convention
- [ํ๊ทธ] ๋ด์ฉ ์ ํํ๋ก ์์ฑ
ex) [FEAT] implement postGET
ํ๊ทธ ์ด๋ฆ | ์ค๋ช |
---|---|
CHORE | ๋น๋ ํ์คํธ ์ ๋ฐ์ดํธ, ํจํค์ง ๋งค๋์ ๋ฅผ ์ค์ ํ๋ ๊ฒฝ์ฐ(ํ๋ก๋์ ์ฝ๋ ๋ณ๊ฒฝ X) |
FEAT | ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ |
!HOTFIX | ๊ธํ๊ฒ ์น๋ช ์ ์ธ ๋ฒ๊ทธ๋ฅผ ๊ณ ์ณ์ผํ๋ ๊ฒฝ์ฐ |
FIX | ๋ฒ๊ทธ, ์ค๋ฅ ํด๊ฒฐ |
STYLE | ์ฝ๋ ํฌ๋งท ๋ณ๊ฒฝ, ์ธ๋ฏธ ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ์์ ์ด ์๋ ๊ฒฝ์ฐ |
DELETE | ์ธ๋ชจ์๋ ์ฝ๋ ์ญ์ |
DOCS | README๋ WIKI ๋ฑ์ ๋ฌธ์ ๊ฐ์ |
MOVE | ํ๋ก์ ํธ ๋ด ํ์ผ์ด๋ ์ฝ๋์ ์ด๋ |
RENAME | ํ์ผ ์ด๋ฆ ๋ณ๊ฒฝ |
REFACTOR | ํ๋ก๋์ ์ฝ๋ ๋ฆฌํฉํ ๋ง |
COMMENT | ํ์ํ ์ฃผ์ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ |
TEST | ํ ์คํธ ์ถ๊ฐ, ํ ์คํธ ๋ฆฌํฉํ ๋ง(ํ๋ก๋์ ์ฝ๋ ๋ณ๊ฒฝ X) |
Issue, PR Convention
- ๋ณ์๋ ํด๋๋ช ์ ์์ด๋ก ์ฐ๋, ์ค๋ช ์ ํ๊ธ๋ก ์์ฑ
- Issue
- [์์ด ๋๋ฌธ์] ๋ด์ฉ
- PR
- [์์ด ๋๋ฌธ์] #์ด์ ๋ฒํธ - ํด๋น ์ด์ ๋ด์ฉ
- ์ด์์ ๋ด์ฉ์ด ๋์ผํ ํ์๋ ์์
- ์ด์ ๋ฒํธ๋ ๋์ผ ํด์ผ ํจ
- ์ด์์ ๋ด์ฉ์ด ๋์ผํ ํ์๋ ์์
- [์์ด ๋๋ฌธ์] #์ด์ ๋ฒํธ - ํด๋น ์ด์ ๋ด์ฉ
Coding Convention
- ๋ณ์๋ช
- Camel Case ์ฌ์ฉ
- ํจ์์ ๊ฒฝ์ฐ ๋์ฌ+๋ช ์ฌ ์ฌ์ฉ ex) getInformation()
- ๊ธธ์ด๋ 20์๋ก ์ ํ
- flag๋ก ์ฌ์ฉ ๋๋ ๋ณ์๋ ์กฐ๋์ฌ + flag ์ข ๋ฅ๋ก ๊ตฌ์ฑ
- ์ฝ์ด๋ ๋๋๋ก ์ฌ์ฉํ์ง ์๋๋ค.
- ์ฃผ์
- ํ์ค ์ฃผ์์ // ๋ฅผ ์ฌ์ฉํ๋ค.
- ๊ทธ ์ด์์ /** */ ๋ฅผ ์ฌ์ฉํ๋ค.
- ํจ์ ์ค๋ช ์ฃผ์์ 2๋ฒ์ ์ฌ์ฉํ๋ค.
- Bracket
// ํ์ค if ๋ฌธ - ์ฌ๋ฌ ์ค๋ก ์์ฑ
if(trigger) {
return;
}
// ๊ดํธ ์ฌ์ฉ ํ์นธ ๋์ฐ๊ณ ์ฌ์ฉํ๋ค.
if (left == true) {
return;
}
// ๋์ด์ฐ๊ธฐ
if (a == 5) { // ์์ชฝ ์ฌ์ด๋ก ๋์ด์ฐ๊ธฐ
return;
}
- ๋น๋๊ธฐ ํจ์์ ์ฌ์ฉ
- async, await ํจ์ ์ฌ์ฉ์ ์งํฅํ๋ค.
- Promise ์ฌ์ฉ์ ์ง์ํ๋ค.
ํผ์ณ๋ณด๊ธฐ
|-๐ firebaserc
|-๐ firebase.json
|-๐ .gitignore
|-๐ functions_
|- ๐ index.js
|- ๐ package.json
|- ๐ .gitignore
|- ๐ .env
|- ๐ api_
| |- ๐ index.js
| |- ๐ routes_
| |- ๐ index.js
|
|- ๐ config_
| |- ๐ dbConfig.js
| |- ๐ firebaseClient.js
|
|- ๐ constants_
| |- ๐ appVersion.js
| |- ๐ jwt.js
| |- ๐ notificationType.js
| |- ๐ postType.js
| |- ๐ reportPeriodType.js
| |- ๐ reportType.js
| |- ๐ responseMessage.js
| |- ๐ reviewPostContent.js
| |- ๐ statusCode.js
|
|- ๐ db_
| |- ๐ db.js
| |- ๐ index.js
| |- ๐ block.js
| |- ๐ classroomPost.js
| |- ๐ comment.js
| |- ๐ image.js
| |- ๐ like.js
| |- ๐ major.js
| |- ๐ notification.js
| |- ๐ relationReviewPostTag.js
| |- ๐ report.js
| |- ๐ reviewPost.js
| |- ๐ tag.js
| |- ๐ university.js
| |- ๐ user.js
|
|- ๐ lib_
| |- ๐ convertSnakeToCamel.js
| |- ๐ dateHandlers.js
| |- ๐ jwtHandlers.js
| |- ๐ pushAlarmHandlers.js
| |- ๐ util.js
|
|- ๐ middlewares_
|- ๐ auth.js
|- ๐ slackAPI.js
ํผ์ณ๋ณด๊ธฐ
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"lint": "eslint .",
"serve": "cross-env NODE_ENV=development firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "cross-env NODE_ENV=production firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "16"
},
"main": "index.js",
"dependencies": {
"axios": "^0.25.0",
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
"dayjs": "^1.10.7",
"dotenv": "^10.0.0",
"eslint-config-prettier": "^8.3.0",
"express": "^4.17.2",
"firebase": "^9.6.2",
"firebase-admin": "^9.8.0",
"firebase-functions": "^3.18.1",
"floor": "^0.0.0",
"helmet": "^5.0.1",
"hpp": "^0.2.3",
"jsonwebtoken": "^8.5.1",
"lodash": "^4.17.21",
"math-random": "^2.0.1",
"pg": "^8.7.1"
},
"devDependencies": {
"eslint": "^7.6.0",
"eslint-config-google": "^0.14.0",
"firebase-functions-test": "^0.2.0"
},
"private": true
}
Name | Role |
---|---|
juhyeon | DB ์ค๊ณ, API ๋ช ์ธ์ ์์ฑ, API ๊ตฌํ, README ์์ฑ |
eunji | DB ์ค๊ณ, API ๋ช ์ธ์ ์์ฑ, API ๊ตฌํ, ์๋ ํ ์คํธ ํ๊ฒฝ ๊ตฌ์ถ |
seol | DB ์ค๊ณ, API ๋ช ์ธ์ ์์ฑ, ์ด๊ธฐ ์ธํ , API ๊ตฌํ |
๋ณ์ฃผํ | ๊น์์ง | ์ค์ง์ |
---|---|---|
wngus4296 | eunji8784 | seoljiwon |