์ธ์์ ์ท์ ์ถฉ๋ถํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ฒ๋ ค์ง๋ ์ท์ ์จ๊ฒจ์ง ๊ฐ์น๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๊ทธ ์ท์ ์ ์จ์ ๋ถ์ด๋ฃ์ต๋๋ค.
์ด๊ฒ์ ์์์ ๋ถ๊ณผํฉ๋๋ค.
ํฉ๋ฆฌ์ ์ธ ๋น์ฉ์ผ๋ก ๋ ๋ง์ ์ฌ๋๋ค์ด ์์ ๋ง์ ์ ๋ํฌํ ์คํ์ผ์ ์ฐพ๊ณ
ํ๊ฒฝ์ ๋ณดํธํจ์ผ๋ก์จ ์ฌ๋ก์ฐ ํจ์ ์ ๊ฐ์น๋ฅผ ์ธ์์ ํผํธ๋ฆฝ๋๋ค.
๋ฐ๋ก ์ด๊ฒ์ด fluff๊ฐ ๊ทธ๋ฆฌ๋ ๋ฏธ๋์ ๋๋ค.
- ์๋์ ์ด๋ฏธ์ง ํด๋ฆญ ์ ์์์ผ๋ก
"dependencies": {
"content-based-recommender": "^1.4.0",
"mongoose": "^5.8.3",
"multer": "^1.4.2",
"multer-s3": "^2.9.0",
}
content-based-filtering์ ๋น ๋ฅธ ์๊ฐ๋ด์ ๊ตฌํํ ์ ์๋ content-based-recommender ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์ถ์ฒ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ์๊ณ , ๊ทธ ์ธ์ ๊ด๋ จ๋ ์ ๋ณด๋ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ผ๊ด์ฑ์๊ฒ ์ ์ฅ ํ์๋ค.
"dependencies": {
"dotenv": "^8.2.0",
"jsonwebtoken": "^8.5.1",
"nodemailer": "^6.4.2",
"passport": "^0.4.1",
"rand-token": "^0.4.0",
"redis": "^2.8.0",
"sequelize": "^5.21.3",
}
dotenv๋ฅผ ์ด์ฉํด ๋ด๋ถ์ ์ผ๋ก security key๋ฅผ ํตํฉ์ ์ผ๋ก ๊ด๋ฆฌํ์๊ณ , redis ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด์ฉํ ๋ฐ์ดํฐ ์์ ์ ์ฅ, ๋ง์ง๋ง์ผ๋ก JWT๋ฅผ ์ด์ฉํด์ ํ์์ธ์ฆ๊ณผ ๊ฐ์ ๋ณด์์ ์ ๊ฒฝ์ ์ผ๋ค.
"dependencies": {
"socket.io": "^2.3.0",
"sse": "0.0.8",
"moment": "^2.24.0",
}
์ค์๊ฐ ๊ฒฝ๋งค ๊ธฐ๋ฅ์ ์ํญ ์๋ฐฉํฅ ํต์ ์ธ socket.io๋ฅผ ์ด์ฉํ์ฌ ์ค์๊ฐ์ผ๋ก ๊ฒฝ๋งค ์ฐธ์ฌ์๋ค์ด ์ต๊ณ ๊ฐ๋ฅผ ์๋ฆผ ๋ฐ์ ์ ์๋๋ก ํ์๋ค. ๋ํ ๋จ๋ฐฉํฅ ํต์ server send event๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์์ ์ค์๊ฐ์ผ๋ก ํด๋ผ์ด์ธํธ์๊ฒ ํ์ฌ ์๊ฐ์ ์ ์กํจ์ผ๋ก์จ ํด๋ผ์ด์ธํธ์์ ์๊ฐ์ ์กฐ์ํ์ฌ ๋ถ์ ํฉํ ๊ฒฝ๋ก๋ก ๊ฒฝ๋งค์ ์ฐธ์ฌํ๋ ๊ฒ์ ๋ฐฉ์งํ์๋ค.
Microservices Architecture
์ถ์ฒ ์๊ณ ๋ฆฌ์ฆ
ํ์๊ฐ์ ์ด๊ธฐ์ ์กฐ์ฌํ ์ ์ ์ ์ทจํฅ์ ๋ฐํ์ผ๋ก ๋ชจ๋ ์ํ์ score๋ฅผ ๋งค๊ฒจ์ contest based filtering์ ์ฌ์ฉํ ์ถ์ฒ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ์ฌ ์ ์ ์๊ฒ ๋ง์ถคํ ์ํ์ ์ ๊ณตํ๋ค.
socket์ ์ด์ฉํ์ฌ ์ค์๊ฐ์ผ๋ก ๊ฒฝ๋งค์ ์ฐธ์ฌํ ์ ์๋ค. ๋ํ server sent event๋ก ํด๋ผ์ด์ธํธ์๊ฒ 1์ด์ ํ๋ฒ์ฉ ์ค์๊ฐ์ผ๋ก ๊ฒฝ๋งค ๋ง๊ฐ์๊ฐ์ ์ ์กํจ์ผ๋ก์จ ํด๋ผ์ด์ธํธ์์ ์๊ฐ์ ๋ณ๊ฒฝํ์ฌ ์๋ฒ์ ์ ๊ทผํ๋ ๋ณด์ ์ฌ๊ณ ๋ฅผ ์ฌ์ ์ ์ฐจ๋จํ์๋ค.
docker๋ฅผ ์ด์ฉํ ๋ฉํฐ ์ปจํ ์ด๋ ๋ฐฐํฌ๋ก ๋ฐฐํฌ์ ํจ์จ์ฑ์ ๋๋ฆฌ๊ณ , ๋ง์ดํฌ๋ก ์๋น์ค๋ค์ ๋ด๋ถ ํต์ ๋ง์ผ๋ก ๋ฌถ์ด ์ํคํ ์ฒ ๊ด๋ฆฌ๋ฅผ ํ์๋ค.
์ผํ๋ชฐ ํน์ฑ์ ์ด๋ฏธ์ง ์ ๋ก๋ ์์ด ๋ง๊ธฐ ๋๋ฌธ์ AWS์ ๋ํ์ ์ธ serverless ์๋น์ค์ธ Lambda๋ฅผ ์ด์ฉํ์ฌ ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง ๊ธฐ๋ฅ์ ์ถ๊ฐํ์๋ค.
Redis๋ฅผ ์ฌ์ฉํ์ฌ์ ํ์๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ฐ์ ์ํ๋ก ๋ถ๋ฆฌํ๊ณ , ํ์๊ฐ์ ์ ์ ๋ ฅํ ์ด๋ฉ์ผ๋ก ํ ํฐ ๊ฐ์ ํฌํจํ ์ธ์ฆ ๋ฉ์ผ์ ๋ฐ์กํ์ฌ, ์ธ์ฆ์๋ฃ์ Database๋ก ํ์์ ๋ณด๋ฅผ ์ ์ฅํ์ฌ ํ์๊ฐ์ ๋ก์ง์ ์๋ฃํ๋ค.
ย์ถ์ฒ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๊ฐ์ ๋ฅ๋ฌ๋ ๊ธฐ๋ฐ ๊ธฐ๋ฅ๋ค๋ก ์ธํ, cpu์ ๋ถํ๋ฅผ cluster์ multi processing์ ์ด์ฉํ์ฌ Node.js์ ์ฑ๊ธ์ค๋ ๋์ ํจ์จ์ฑ์ ๊ทน๋ํํ๋ค.
ย
ย
NoSQL | RDB |
---|---|
ํ์ฌ๋ NoSQL์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ์์ง๋ง, ์ถํ์ RDB๋ก ๋ณ๊ฒฝํ ์ฌ์ง๊ฐ ์๋ค.
ย