๋ฆด๋ฆฌ์ฆ ํ๊ธฐ ์ ํ๋กํ ํ์ ์๋ฒ์ ๋๋ค. ๋ฐฐํฌํ(Private repository)์์๋ ๋๋ถ๋ถ์ ์ฝ๋ ๋ฆฌํฉํ ๋ง๊ณผ ๋ ๋ง์ ๊ธฐ๋ฅ ์ถ๊ฐ๊ฐ ์ด๋ฃจ์ด์ก์ต๋๋ค. ๋ํ URL ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ๋ง์ ๋ณํ๊ฐ ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ฐธ๊ณ ๋ฐ๋๋๋ค.
-
S.O.P.T 26th Sever ํํธ ์ฑ์ผ ํ๋ก์ ํธ
-
ํ๋ก์ ํธ ๊ธฐ๊ฐ: 2020.06.29 ~ 2020.07.18
- Ulink : ์๊ฐํ ๊ธฐ๋ฐ, ๋ํ์ ์ง์๊ต๋ฅ ํ๋ซํผ
- ๋ ธ์ ๋งํฌ
์ฌ์ฉ์๊ฐ ํด๋นํ๋ ํ๊ต ์๊ฐํ๋ฅผ ํํฐ๊ฒ์๊ณผ ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ์์ ์๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์์๊ฒ ํธ๋ฆฌํ๊ฒ ์๋ ค์ค๋๋ค.
์์ ๋ณ ์ผ์ ์ ์ต์ ์์ผ๋ก ํ์ธํ๊ณ ๋ํ๋ฐฉ์ ์์ ๊ณต์ง์ ์ฐ๋ํ์ฌ ์์ ๋ณ ์ํ, ๊ณผ์ , ์์ , ์ค์ต ๊ณต์ง๋ฑ์ ์ฌ์ฉ์์๊ฒ ์๋ ค์ค๋๋ค.
๋ํ๋ณ ์๊ฐํ ์ ๋ณด๋ฅผ ๋ํ๋ณ ์ฌ์ดํธ์์ ํ์ด์ฌ์ Selenium๊ณผ BeautifulSoup์ ํ์ฉํ์ฌ ํฌ๋กค๋งํฉ๋๋ค. ํด๋น ํฌ๋กค๋ง ์ฝ๋๋ ์์กด์ฑ์ ์ค์ด๊ธฐ ์ํด Google Cloud Function์ ์ด์ฉํ์ฌ Google Cron ์๋น์ค๋ก ํ๊ธฐ๋ณ DB๋ฅผ ์ ๋ฐ์ดํธ ํฉ๋๋ค.
์๊ฐํ ์์ฑ ํ, ์๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฒ ํ๊ธฐ ์์ ๋ณ ์ํต๋ฐฉ์ด ์์ฑ๋ฉ๋๋ค. ์์ฑ๋ ์ํต๋ฐฉ์์๋ ํด๋ผ์ด์ธํธ์์ ์ํํ ์ํต์ ์ํด Firebase RealTime Database๋ฅผ ์ด์ฉํ ์ฑํ ์๋น์ค๋ฅผ ํฉ๋๋ค.
โโโโapi/
โ โโโโdocs/
โ โ โโโโcart/
โ โ โ โโโโcart.yaml
โ โ โ โโโโcartIdx.yaml
โ โ โโโโchat/
โ โ โ โโโโchat.yaml
โ โ โโโโnotice/
โ โ โ โโโโnotice.yaml
โ โ โ โโโโnoticeIdx.yaml
โ โ โ โโโโnoticeSubject.yaml
โ โ โโโโschedule/
โ โ โ โโโโschedule.yaml
โ โ โ โโโโscheduleIdx.yaml
โ โ โ โโโโscheduleList.yaml
โ โ โ โโโโscheduleMain.yaml
โ โ โ โโโโscheduleMainIdx.yaml
โ โ โ โโโโscheduleName.yaml
โ โ โ โโโโschedulePersonal.yaml
โ โ โ โโโโschedulePersonalIdx.yaml
โ โ โ โโโโscheduleSchool.yaml
โ โ โ โโโโscheduleSchoolIdx.yaml
โ โ โ โโโโscheduleSpecificIdx.yaml
โ โ โโโโschema/
โ โ โ โโโโfail.yaml
โ โ โโโโsubject/
โ โ โ โโโโsubject.yaml
โ โ โ โโโโsubjectCourse.yaml
โ โ โ โโโโsubjectRecommend.yaml
โ โ โ โโโโsubjectSearch.yaml
โ โ โโโโuser/
โ โ โโโโprofile.yaml
โ โ โโโโprofileId.yaml
โ โ โโโโsignIn.yaml
โ โ โโโโsignUp.yaml
โ โโโโswagger.yaml
โโโโcontrollers/
โ โโโโcart.js
โ โโโโchat.js
โ โโโโnotice.js
โ โโโโschedule.js
โ โโโโsocial.js
โ โโโโsubject.js
โ โโโโuser.js
โโโโmiddlewares/
โ โโโโauth.js
โโโโmodels/
โ โโโโcart.js
โ โโโโnotice.js
โ โโโโschedule.js
โ โโโโsocial.js
โ โโโโsubject.js
โ โโโโuser.js
โโโโroutes/
โโโโcart.js
โโโโchat.js
โโโโindex.js
โโโโnotice.js
โโโโschedule.js
โโโโsocial.js
โโโโsubject.js
โโโโuser.js
- Coding Convention
- Git Convention
๐ ๋ค์ด๋ฐ ๊ท์น
1. **๋ณ์๋ช
** : ์นด๋ฉ์ผ์ด์ค (`inputBox`)
2. **ํด๋๋ช
, ํ์ผ๋ช
** : ์๋ฌธ์ (`inputbox`)
3. **ํด๋์ค๋ช
** : ์ฒซ๊ธ์ ๋๋ฌธ์ (`InputBox`)
โ more...
var
์ง์ /let, const
์งํฅ- ๋น๋๊ธฐ๋ promise์
then
๋ณด๋คasync/await
์ฌ์ฉ
branch
-
master
-
develop
-
feature
- debugging
-
commit message
CREATE - ๊ธฐ๋ฅ ๊ตฌํ(ํ๊ธ)
UPDATE - ์ฝ๋ ์์ (ํ๊ธ)
MERGE - ์ฝ๋ ๋ณํฉ(ํ๊ธ)
FIX - ๋ฒ๊ทธ ์์ (ํ๊ธ)
RELEASE - ๋ฒ์ ๋ฐฐํฌ(ํ๊ธ)
DELETE - ๊ธฐ๋ฅ ์ญ์ (ํ๊ธ)
DOCS - ๋ฌธ์ ํธ์ง(ํ๊ธ)
ex) [UPDATE] ๊ตฌํ๋ด์ฉ
์ฌ์ฉ ํจํค์ง(๋ชจ๋)์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
"dependencies": {
"aws-sdk": "^2.708.0",
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"express": "~4.16.1",
"hangul-js": "^0.2.6",
"http-errors": "~1.6.3",
"jade": "~1.11.0",
"jsonwebtoken": "^8.5.1",
"moment": "^2.27.0",
"morgan": "~1.9.1",
"multer": "^1.4.2",
"multer-s3": "^2.9.0",
"promise-mysql": "^4.1.3",
"rand-token": "^1.0.1",
"unique-names-generator": "^4.2.0"
}
nodejs
์npm
์ ์ค์นํฉ๋๋ค. (์ค์น ๋ฐฉ๋ฒ : nodejs.org ๋ฅผ ์ฐธ๊ณ )- Node.js 12 LTS ๋ฒ์ ์ ์ค์นํฉ๋๋ค.
- ์คํ์ ํ์ํ ์์กด์ฑ์ ์ค์นํฉ๋๋ค.
- ๋ฒ์ ์ ๋ณด : ์ ๋ฐ์ดํธ ์์
npm install -g express express-generator
npm start
- AWS EC2 - ํด๋ผ์ฐ๋ ํ๊ฒฝ ์ปดํจํ ์์คํ
- AWS RDS - ํด๋ผ์ฐ๋ ํ๊ฒฝ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
- AWS S3 - ํด๋ผ์ฐ๋ ํ๊ฒฝ ๋ฐ์ดํฐ ์ ์ฅ์
- Node.js - Chrome V8 ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ผ๋ก ๋น๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์
- Express.js - Node.js ์น ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ
- NPM - ์๋ฐ ์คํฌ๋ฆฝํธ ํจํค์ง ๊ด๋ฆฌ์
- PM2 - Express ์ฑ์ฉ ํ๋ก์ธ์ค ๊ด๋ฆฌ์
- vscode - ํธ์ง๊ธฐ
- Mysql - DataBase
๐จโ๐ป๊น๋ณด๋ฐฐ
- ์๊ฐํ ์กฐํ, ์์ฑ ๊ธฐ๋ฅ
- ๋ฉ์ธ ์๊ฐํ ์ค์ , ์์ ๊ธฐ๋ฅ
- ์์ ์ผ์ ๋ฑ๋ก, ์์ , ์ญ์ ๊ธฐ๋ฅ
- ๊ณต์ง ๋ฑ๋ก, ์์ , ์ญ์ ๊ธฐ๋ฅ
- ๊ณต์ง ์กฐํ (๋ฌ๋ ฅ, ๋ฆฌ์คํธ) ๊ธฐ๋ฅ
- ํ๊ต ์์ ๋ฐ์ดํฐ ํฌ๋กค๋ง
- DB ์ค๊ณ
๐ฉโ๐ปํฉ์งํ
- ์ ์ ๋ก๊ทธ์ธ, ํ์๊ฐ์ ๊ธฐ๋ฅ
- ์๊ฐํ ์์ , ์ญ์ ๊ธฐ๋ฅ
- ์์ (ํ๋ก์ฐ, ํ๋ก์) ๊ธฐ๋ฅ
- ๊ฐ์ธ์ผ์ ๋ฑ๋ก, ์์ , ์ญ์ ๊ธฐ๋ฅ
- ๊ฐ์ธํ๋กํ ์กฐํ, ์ ๋ฐ์ดํธ ๊ธฐ๋ฅ
- ์ฑํ (Firebase) ๊ธฐ๋ฅ
- DB ์ค๊ณ