- ๋ฐฅ์จ๋ ํ๋ผ ์ ํ์ด ์ด๋ ค์ด ๊ณ ๊ฐ๋ค ์ํ์ฌ
"ํ๋ผ ์ถ์ฒ ๊ธฐ๋ฅ์ ํตํ ๋ง์กฑ์ค๋ฌ์ด ์์ฌ๋ฅผ ์ ๊ณตํ์ฌ ์ฆ๊ฑฐ์๊ณผ ๊ธฐ์จ์ ๋๋ฆฌ๊ณ ์ ๊ฐ๋ฐ ๋ ์๋น์ค์ ๋๋ค."
๐น [์ธ์คํ๊ทธ๋จ DB ๊ตฌ์ถ]
-
์์์ด ๊ฐ์ง๊ณ ์๋ ์ ๋ณด๋
์ธ์คํ๊ทธ๋จ ํฌ๋กค๋ง์ ํตํด ์ป์ ์ธ์คํ๊ทธ๋จDB์ ์์์ด ๊ฐ์ง๋ ๊ณ ์ ์ ํน์ง์ธ, ์ฌ๋ฃDB๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
-
์ธ์คํ๊ทธ๋จ DB ๊ตฌ์ถ์ ์ํด
Selenuim ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ 1๊ฐ ์์๋น 200๊ฐ์ ์ธ์คํ๊ทธ๋จ ๊ฒ์๊ธ์ ํฌ๋กค๋งํ์์ต๋๋ค.
ย ย ย ย ย ๐ 1๊ฐ ์์์ด ์ธ์คํ๊ทธ๋จDB๋ก ๊ตฌ์ถ๋๋ ์ ๋ฐ์ ์ธ ๊ณผ์ ๐
๐น [๋ชจ๋ธ๋ง]
-
์ถ์ฒ ๋ชจ๋ธ์ ๋น์ง๋ํ์ต(Unsupervised learning) ์ค ํ๋์ธ
ํ์ ํํฐ๋ง(Collaborative Filtering, CF) ๋ชจ๋ธ์ ์ฌ์ฉํ์์ต๋๋ค.
-
์ฌ์ฉ์ ๊ธฐ๋ฐ ํ์ ํํฐ๋ง(User Based CF, UBCF)์ด ์๋
์ปจํ ์ธ ๊ธฐ๋ฐ ํ์ ํํฐ๋ง(Contents Based CF, CBCF)์ ์ฌ์ฉํ์์ต๋๋ค.
ย ย ย ย ย ๐ UBCF๊ฐ ์๋ CBCF๋ฅผ ์ ์ ํ ์ด์ ๐
-
์์์ด ๊ฐ์ง๊ณ ์๋ ์ ๋ณด๋ฅผ ๋ฒกํฐ๋ก ํํํ๊ณ , ๊ฐ ์์๋ค๊ฐ์ ์ฝ์ฌ์ธ ์ ์ฌ๋๋ฅผ ๊ตฌํด
๊ฐ์ฅ ์ ์ฌ๋๊ฐ ๋์ ์์์ 3์ข ์ ์ถ์ฒํ๊ณ ์์ต๋๋ค.
-
์ถ์ฒ ๋ชจ๋ธ์ ์ฑ๋ฅ๊ฐ์ ์ ์ํด ๋ณ๋์ ๊ฐ์ค์น๋ฅผ ์ ์ฉํ์์ต๋๋ค.
๊ฐ์ค์น ์ ์ฉ ๊ฒฐ๊ณผ ์ ์ฒด 130์ข ์์ ์ค 105์ข ์ ์์์ด ์ถ์ฒ๋๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์์ต๋๋ค.
(๊ฐ์ค์น ์ ์ฉ ์ : ์ ์ฒด 130์ข ์์ ์ค 89์ข ์ ์์ ์ถ์ฒ ์ด๋ฃจ์ด ์ง)
๐น [Flask ์๋ฒ์ ์ฑ๋ฅ ๊ฐ์ ]
-
Java์๋ฒ๋ฅผ ํตํด ์ ์ ๊ฐ ์ ํํ ์์ ๋ฆฌ์คํธ๋ฅผ ๋ฐ์ต๋๋ค.
๋ฐ์ ์์ ๋ฆฌ์คํธ๋ฅผ Input์ผ๋กํ๋ฉฐ, CBCF์ ๊ฒฐ๊ณผ์ธ ์ถ์ฒํ ์์ 3์ข ๋ฅ๋ฅผ Java ์๋ฒ๋ก ๋ณด๋ ๋๋ค.(POST)
-
๋์ฉ๋ ํธ๋ํฝ์ ๋๋นํด ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ฑ๋ฅ ๊ฐ์ ์ ํ์์ต๋๋ค.
๋น๋๊ธฐ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ฏธ๋ค์จ์ด์ธ gunicorn์ ์ ์ฉํ์๊ณ ๋ก๋๋ฐธ๋ฆฐ์ฑ์ ์ํด ์๋จ์ Nginx๋ฅผ ์ ์ฉํ์์ต๋๋ค.
ย ย ย ย ย ๐ ์คํธ๋ ์ค ํ ์คํธ๋ก ์์๋ณด๋ Nginx์ gunicorn ์ ์ฉ์ ๋ฐ๋ฅธ ์ฑ๋ฅ์ฐจ์ด ๐
- python 3.7.10
- scikit-learn 0.24.2
- flask 2.0.1
- flask-cors 3.0.10
- pandas 1.3.0
- konlpy 0.5.2
- selenium 3.141.0
master : ํ
์คํธ ์๋ฒ์์ ํ
์คํธ๊ฐ ๋๋๊ณ ์ด์์๋ฒ๋ก ๋ฐฐํฌ ํ ์ ์๋ ๋ธ๋์น
develop : ๋ค์ ๋ฒ์ ์ ์ถ์์ ํ
์คํธ๋ฅผ ์ํ ๋ธ๋์น
feature : ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น
release : ์ด๋ฒ ์ถ์ ๋ฒ์ ์ ์ค๋นํ๋ ๋ธ๋์น
hotfix : ์ด์์ค์ธ ๋ฒ์ ์์ ๋ฐ์ํ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ ๋ธ๋์น