Skip to content
This repository was archived by the owner on Jun 1, 2022. It is now read-only.

cnu-ev/ev-commentService

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โ“’ Team EV
2019 BottomUp
์ด์„ธํ˜•, ์ด๊ทœ๋ด‰, ์ตœ์ˆ˜๋ฏผ

๐Ÿ“‹ Purpose

๊ฐ์„ฑ๋ถ„์„์„ ์ด์šฉํ•ด ๊ธ€์˜ ๊ฐ์„ฑ์„ ์ƒ‰์œผ๋กœ ํ‘œํ˜„ (์‹œ๊ฐํ™”)

์ฝ”๋ฉ˜ํŠธ์— ๋Œ€ํ•ด ๊ฐ์„ฑ๋ถ„์„์„ ํ•˜์—ฌ ๊ธ์ • ๋ฐ ๋ถ€์ •์— ๋Œ€ํ•œ ์ •๋„๋ฅผ ์ƒ‰์œผ๋กœ ํ‘œํ˜„ํ•จ์œผ๋กœ์จ
์•„๋ž˜์™€ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์•…์„ฑ ๋Œ“๊ธ€ ์ž‘์„ฑ์ž๋“ค์—๊ฒŒ ์ž์‹ ์ด ์“ด ๊ธ€์— ๋Œ€ํ•œ ๊ฒฝ๊ฐ์‹ฌ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.
  • ๋‹จ์ˆœ ํ‰์  ๋ฆฌ๋ทฐ ๊ฐ™์€ ๊ฒฝ์šฐ, ๊ฐ์„ฑ์˜ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฆฌ๋ทฐ์— ๋Œ€ํ•œ ์‹ ๋ขฐ์„ฑ์„ ๋ณด๊ฐ• ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์œ ์•„, ์•„๋™์šฉ ํ”Œ๋žซํผ์— ์ ์šฉ ์‹œ ๊ต์œก์šฉ์œผ๋กœ ํ™œ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.

โ›ท๏ธ Outline

CNU-EV๋Š” ๊ฐ์ • ๋ถ„์„ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋Œ“๊ธ€ ์ปดํฌ๋„ŒํŠธ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑ๋œ 3๊ฐœ์˜ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

  • ev-commentService : ์ง€ํ‚ฌํ˜• ๋ธ”๋กœ๊ทธ์— ๋Œ“๊ธ€์„ ๋‹ฌ ์ˆ˜ ์žˆ๊ฒŒ ์ปดํฌ๋„ŒํŠธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์™ธ '์ตœ๊ทผ ์ƒ์„ฑ๋œ ๋Œ“๊ธ€', '์ข‹์€ ํ‰๊ฐ€๋ฅผ ๋ฐ›์€ ๊ฒŒ์‹œ๋ฌผ', '์ธ๊ธฐ ํฌ์ŠคํŒ… ๋ถ„์„', '๋Œ“๊ธ€์ด ๋งŽ์€ ๊ฒŒ์‹œ๋ฌผ' ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ev-backend : ๋ถ„์„์‚ฌ์ดํŠธ๋ฅผ ์ œ์ž‘ํ•˜๋Š” Team-Ev์˜ backend repository ์ž…๋‹ˆ๋‹ค. Django๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ์ž‘๋˜์—ˆ์œผ๋ฉฐ, konlpy์™€ tensorflow ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฐ์ •๋ถ„์„ ํŒ๋ณ„๊ธฐ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

  • ev-sentimentalAnalysis : ์Ÿ๊ณ  ์„œ๋ฒ„ ๋‚ด ๋Œ“๊ธ€ ๊ฐ์ • ๋ถ„์„ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค.

๐Ÿ“‹ Asset

ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ๋œ svg ์•„์ด์ฝ˜์€ ๋ชจ๋‘ ์•„๋ž˜ ํŽ˜์ด์ง€์—์„œ ๋‹ค์šด๋กœ๋“œํ•ด ์‚ฌ์šฉํ•œ ๊ฒƒ์ด๋‹ค.

https://feathericons.com

โœ”๏ธ Development Environment Details

##### Front, PHP Server #####
xampp for windows 7.1.30, xampp control panel 3.2.4
Apache 2.4.39
MariaDB 10.3.16 (MySQL)
phpMyAdmin 4.9.0.1
Bootstrap 4.3.1, popper.js, mdb.js, chart.js
JQuery 3.2.1
Ruby Sass 3.7.4

##### Emotion Analasis Djanjo Server #####
absl-py==0.7.1
astor==0.8.0
boto==2.49.0
boto3==1.9.194
botocore==1.12.194
certifi==2019.6.16
chardet==3.0.4
Django==2.0.13
django-cors-headers==3.0.2
docutils==0.14
gast==0.2.2
gensim==3.8.0
google-pasta==0.1.7
grpcio==1.22.0
h5py==2.9.0
idna==2.8
jmespath==0.9.4
joblib==0.13.2
JPype1==0.7.0
Keras-Applications==1.0.8
Keras-Preprocessing==1.1.0
konlpy==0.5.1
Markdown==3.1.1
mecab-python==0.996
numpy==1.16.4
pkg-resources==0.0.0
protobuf==3.9.0
pybind11==2.3.0
python-dateutil==2.8.0
pytz==2019.1
requests==2.22.0
s3transfer==0.2.1
scikit-learn==0.21.2
scipy==1.3.0
six==1.12.0
smart-open==1.8.4
tensorboard==1.14.0
tensorflow==1.14.0
tensorflow-estimator==1.14.0
termcolor==1.1.0
urllib3==1.25.3
uWSGI==2.0.18
Werkzeug==0.15.5
wrapt==1.11.2

๋ฐฑ์—”๋“œ๋Š” php ์„œ๋ฒ„ (evCommentService.ga) ์™€ ์Ÿ๊ณ  ์„œ๋ฒ„ (emotionanalysisservice.ga) ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

evcommentservice.ga ํ™ˆํŽ˜์ด์ง€ ๋ฐ Comment.php์—” ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์—์„œ๋„ ์šฉ์ดํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก Bootstrap์„ ์ ์šฉํ–ˆ๋‹ค.

๊ทธ ์™ธ ๋„๋ฉ”์ธ ์ž„๋Œ€๋Š” freenom (https://www.freenom.com/en/index.html?lang=en),

https ํ”„๋กœํ† ์ฝœ ๋“ฑ๋ก์€ cloudFlare (https://jsdev.kr/t/https-cloudflare-flexible-ssl/1973) ๋ฅผ ์ด์šฉํ–ˆ๋‹ค.

๐Ÿ„ How to use

Jekyll-Script.html์€ Github Page ๋“ฑ ์ง€ํ‚ฌ ๊ธฐ๋ฐ˜์˜ ๋ธ”๋กœ๊ทธ์—์„œ ์‰ฝ๊ฒŒ ๋Œ“๊ธ€ ์„œ๋น„์Šค๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ์ปดํฌ๋„ŒํŠธ ํŒŒ์ผ์ด๋‹ค.

์ง€ํ‚ฌ ๊ธฐ๋ฐ˜์˜ ๋ธ”๋กœ๊ทธ์—์„œ URL์„ ์„œ๋น„์Šค์— ๋“ฑ๋กํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ์ ˆ์ฐจ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

1 - https://evcommentservice.ga์— ๊ฐ€์ž…ํ•˜๊ณ , + ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด, ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ํ™ˆํŽ˜์ด์ง€์˜ URL์„ ๋“ฑ๋กํ•œ๋‹ค.  
URL์„ ๋“ฑ๋กํ•  ๋•Œ https:{domain}.ga ์ฒ˜๋Ÿผ ๋“ฑ๋กํ•ด์•ผ ํ•˜๊ณ , ๋’ค์— / ๊ฐ€ ๋ถ™์œผ๋ฉด ์•ˆ ๋˜๋Š” ๊ฒƒ์— ์ฃผ์˜.

2 - _config.yml (ํ”„๋กœ์ ํŠธ ์„ค์ • ํŒŒ์ผ) ์— ์•„๋ž˜์™€ ๊ฐ™์€ ์„ค์ •์„ ์ถ”๊ฐ€ํ•œ๋‹ค. User ID๋Š” ์œ„์—์„œ ๊ฐ€์ž…ํ•œ ํ™ˆํŽ˜์ด์ง€์˜ ID๋ฅผ ๋“ฑ๋กํ•œ๋‹ค.

ev_username: {User ID}

3 - EV-Script.html ํŒŒ์ผ์„ post layout ๋˜๋Š” ์›ํ•˜๋Š” ํŽ˜์ด์ง€์— ์ถ”๊ฐ€ํ•œ๋‹ค.
({% include EV-Script.html %}๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ง์ ‘ ์Šคํฌ๋ฆฝํŠธ ๋‚ด์šฉ์„ ๋ถ™์—ฌ๋„ฃ๋Š”๋‹ค.)

4 - ๋Œ“๊ธ€ ์ฐฝ์„ ๋„ฃ์„ ๊ณต๊ฐ„์— div ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค๊ณ  id๋ฅผ EV-Start๋กœ ์„ค์ •ํ•œ๋‹ค.

๋ธ”๋กœ๊ฑฐ๋Š” ์ž์‹ ์˜ ๋ธ”๋กœ๊ทธ ๋Œ“๊ธ€ ์„œ๋น„์Šค์— ๊ฐ์ • ๋ถ„์„ ์„œ๋น„์Šค๋ฅผ ์ ์šฉํ•  ์ง€ ์•ˆ ํ• ์ง€, ์ ์šฉํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์Šคํƒ€์ผ๋ง ๋  ์ง€๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

์•„๋ž˜ ev_mode๋Š” ๋””ํดํŠธ ๊ฐ’์œผ๋กœ, full์„ ๊ฐ–๋Š”๋‹ค.

๋ธ”๋กœ๊ทธ ์„ค์ • ํŒŒ์ผ _config.yml ๋‚ด ev_mode์— ์•„๋ž˜ ์ค‘ ํ•˜๋‚˜์˜ ๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค.

ev_username: { full, binary, none, debug }

full : ๋Œ“๊ธ€ ๋‚ด์šฉ์˜ ๋ถ€์ • ~ ๊ธ์ • ์ •๋„์— ๋”ฐ๋ผ ์ƒ‰์ƒ์„ 10 ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ  ์ ์šฉํ•œ๋‹ค.

binary : ๋Œ“๊ธ€ ๋‚ด์šฉ์— ๋”ฐ๋ผ ๊ธ์ •, ๋ถ€์ •, ์ค‘๋ฆฝ ์„ธ ๋‹จ๊ณ„๋กœ๋งŒ ๋‚˜๋ˆ  ์Šคํƒ€์ผ์„ ์ ์šฉํ•œ๋‹ค.

none : ๊ฐ์ • ๋ถ„์„ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š๋Š”๋‹ค. (๊ฐ์ •๋ถ„์„ ๊ฐ’์€ ์„œ๋ฒ„์— ์ €์žฅํ•ด ๋†“๋Š”๋‹ค.)

debug : ๋Œ“๊ธ€ ๊ฐ์ • ๋ถ„์„ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. (๊ฐ’์„ ์„œ๋ฒ„์— ์ €์žฅํ•˜์ง€ ์•Š์Œ)

๐Ÿ“– How to evaluate comment

์ž…๋ ฅ๋ฐ์ดํ„ฐ(๋ฌธ์žฅ) -> ์ „์ฒ˜๋ฆฌ๋œ ๋ฌธ์žฅ -> ๋ฒกํ„ฐ๋กœ ์ž„๋ฒ ๋”ฉ -> ๋ชจ๋ธ์— ๋”ฐ๋ฅธ ๊ฐ์„ฑ๋ถ„์„ ๊ฒฐ๊ณผ

  • ์ „์ฒ˜๋ฆฌ - ํ˜•ํƒœ์†Œ ๋ถ„์„(ํƒœ๊น…)

    Konlpy - Mecab ์‚ฌ์šฉ

  • ๋‹จ์–ด ์ž„๋ฒ ๋”ฉ

    1.word2vec

    from : https://becominghuman.ai/how-does-word2vecs-skip-gram-work-f92e0525def4

    Word2Vec์€ ์ค‘์‹ฌ๋‹จ์–ด์™€ ์ฃผ๋ณ€๋‹จ์–ด ๋ฒกํ„ฐ์˜ ๋‚ด์ ์ด ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„๊ฐ€ ๋˜๋„๋ก ๋‹จ์–ด๋ฒกํ„ฐ๋ฅผ ๋ฒกํ„ฐ๊ณต๊ฐ„์— ์ž„๋ฒ ๋”ฉ.
    ์ค‘์‹ฌ๋‹จ์–ด์— ํ•ด๋‹นํ•˜๋Š” ๋ฒกํ„ฐ์™€ ์ฃผ๋ณ€๋‹จ์–ด์— ํ•ด๋‹นํ•˜๋Š” ๋ฒกํ„ฐ์˜ ๋‚ด์ ๊ฐ’์„ ๋†’์ด๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž„๋ฒ ๋”ฉ์„ ํ•œ๋‹ค.
    ๋ฒกํ„ฐ ๋‚ด์ ์€ ์ฝ”์‚ฌ์ธ์ด๋ฏ€๋กœ ๋‚ด์ ๊ฐ’ ์ƒํ–ฅ์€ ๋‹จ์–ด๋ฒกํ„ฐ ๊ฐ„ ์œ ์‚ฌ๋„๋ฅผ ๋†’์ธ๋‹ค

    2.Glove

    from : https://nlp.stanford.edu/projects/glove/

    GloVe์€ ์ž„๋ฒ ๋”ฉ๋œ ๋‘ ๋‹จ์–ด๋ฒกํ„ฐ์˜ ๋‚ด์ ์ด ๋ง๋ญ‰์น˜ ์ „์ฒด์—์„œ์˜ ๋™์‹œ ๋“ฑ์žฅํ™•๋ฅ  ๋กœ๊ทธ๊ฐ’์ด ๋˜๋„๋ก ๋ชฉ์ ํ•จ์ˆ˜๋ฅผ ์ •์˜
    ์ž„๋ฒ ๋”ฉ๋œ ๋‹จ์–ด๋ฒกํ„ฐ ๊ฐ„ ์œ ์‚ฌ๋„ ์ธก์ •์„ ์ˆ˜์›”ํ•˜๊ฒŒ ํ•˜๋ฉด์„œ๋„ ๋ง๋ญ‰์น˜ ์ „์ฒด์˜ ํ†ต๊ณ„ ์ •๋ณด๋ฅผ ์ข€ ๋” ์ž˜ ๋ฐ˜์˜ํ•˜๋„๋ก ํ•œ๋‹ค.
    ์ž„๋ฒ ๋”ฉ ๋œ ์ค‘์‹ฌ ๋‹จ์–ด์™€ ์ฃผ๋ณ€ ๋‹จ์–ด ๋ฒกํ„ฐ์˜ ๋‚ด์ ์ด ์ „์ฒด ์ฝ”ํผ์Šค์—์„œ์˜ ๋™์‹œ ๋“ฑ์žฅ ํ™•๋ฅ ์ด ๋˜๋„๋ก ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•.

  • ํ•™์Šต๋ชจ๋ธ

    • Logistic Regression (Multi Layer Neural Network)

    • LSTM+Attension (Recurrent Neural Network)

๐Ÿ“‰ Performance evaluation

๋‘ ๋ฐฉ๋ฒ•์˜ ์„ฑ๋Šฅ ์ฐจ์ด

75000๊ฐœ์˜ test set์— ๋Œ€ํ•ด์„œ

		Glove_ACC 	= 0.8672    				Word2Vec_ACC = 0.8509
		Glove_SN 	= 0.8458    				Word2Vec_SN = 0.8271
		Glove_PREC 	= 0.8847    				Word2Vec_PREC = 0.8697
		Glove_SP 	= 0.8888    				Word2Vec_SP = 0.8749

		Glove_ERR = 0.1327     					Word2Vec_ERR = 0.1483
		Glove_FPR = 0.1111    					Word2Vec_FPR = 0.1250

โ— How to Work

  • ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ, ์ •๋ณด๋ณ€๊ฒฝ

evCommentService.ga์— ํšŒ์›๊ฐ€์ž…ํ•  ๋• ํ•„์ˆ˜ ์ž…๋ ฅ ๊ฐ’์œผ๋กœ ID, PW, PW ํ™•์ธ์„ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ ์™ธ ์„ ํƒ ์ž…๋ ฅ ๊ฐ’์œผ๋กœ ์„ฑ๋ณ„, ์ด๋ฆ„ (์„ฑ, ์ด๋ฆ„), ์ด๋ฉ”์ผ ์ฃผ์†Œ, ์ฃผ์†Œ, ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์•„์ด๋””, ์ด๋ฉ”์ผ, ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ๋Š” ์ •๊ทœ์‹์„ ํ†ตํ•ด ์•Œ๋งž์€ ๊ฐ’์ธ์ง€๋ฅผ ๊ฒ€์‚ฌํ•œ๋‹ค.

๊ทธ ์™ธ ์›ํ•˜๋Š” ํ”„๋กœํ•„ ์‚ฌ์ง„์„ ์—…๋กœ๋“œํ•ด ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœํ•„ ์‚ฌ์ง„์œผ๋กœ ์—…๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ์€ png, jpg, jpeg์ด๋‹ค.

์ž…๋ ฅํ•œ ์ •๋ณด์™€ ์—…๋กœ๋“œ๋œ ํ”„๋กœํ•„ ์‚ฌ์ง„์€ PHP ์„œ๋ฒ„์— ์ €์žฅ๋˜๋ฉฐ, ์ •๋ณด ๋ณ€๊ฒฝ ํŽ˜์ด์ง€์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

์ •๋ณด ๋ณ€๊ฒฝ ํŽ˜์ด์ง€์—์„œ ํ”„๋กœํ•„ ์‚ฌ์ง„์„ ๋‹ค์‹œ ์—…๋กœ๋“œํ•˜๋ฉด ๊ธฐ์กด์˜ ํ”„๋กœํ•„ ์‚ฌ์ง„ ํŒŒ์ผ์€ ์ง€์›Œ์ง€๊ณ , ์ƒˆ๋กœ ์—…๋กœ๋“œ๋œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

์—…๋กœ๋“œ๋œ ํ”„๋กœํ•„ ์‚ฌ์ง„์€ Comment.php์—์„œ ์ œ์ถœํ•œ ๋Œ“๊ธ€์— ํ‘œ์‹œ๋œ๋‹ค.

๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ์€ ์„ธ์…˜์„ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ–ˆ๋‹ค.


  • ๋กœ๊ทธ์ธ ํ™”๋ฉด


  • ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด


  • ์ •๋ณด ์ˆ˜์ •



  • ์„œ๋น„์Šค ๋“ฑ๋ก ๋ฐ ์‚ญ์ œ

evCommentService.ga์— ํšŒ์›๊ฐ€์ž…ํ•ด, ์•„์ด๋””๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์ž์‹ ์˜ ์ง€ํ‚ฌ ๋ธ”๋กœ๊ทธ URL์„ ์ž…๋ ฅํ•จ์œผ๋กœ์จ, ๋Œ“๊ธ€ ์„œ๋น„์Šค๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.

์„œ๋น„์Šค๋ฅผ ๋“ฑ๋กํ•œ ์‹œ์ ์—์„œ ๋“ฑ๋ก๋œ URL์˜ ํ•ด์‹ฑ ๊ฐ’์œผ๋กœ ์ƒˆ DB๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ, ์ด DB์— ํŠน์ˆ˜ํ•œ ํ…Œ์ด๋ธ”์ธ

pageTitlePairs์™€ visitorCounter๋ฅผ ์ƒ์„ฑํ•ด๋‘”๋‹ค.

์„œ๋น„์Šค๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๋“ฑ๋กํ•ด๋†“์€ DB๋ฅผ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ, ๊ทธ ์•ˆ์˜ ๋Œ“๊ธ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”๋„ ๋ชจ๋‘ ์ œ๊ฑฐ๋œ๋‹ค.

  • ์„œ๋น„์Šค ์ถ”๊ฐ€


  • ์„œ๋น„์Šค ํ™ˆํŽ˜์ด์ง€


  • ํด๋ผ์ด์–ธํŠธ ๋ธ”๋กœ๊ทธ์—์„œ PHP ์„œ๋ฒ„์— ๋Œ“๊ธ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ณผ์ •

ํ”„๋ก ํŠธ๋Š” Jekyll ๊ธฐ๋ฐ˜์˜ ๋ธ”๋กœ๊ทธ๋ผ๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ (๋ธ”๋กœ๊ฑฐ)๋Š” Jekyll-Script.html๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ฑฐ๋‚˜ ๋ณต์‚ฌํ•˜์—ฌ, ์ž์‹ ์˜ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ ํ…œํ”Œ๋ฆฟ์— ์ธํด๋ฃจ๋“œ ์‹œ์ผœ์•ผ ํ•œ๋‹ค. ํฌ์ŠคํŠธ ํ…œํ”Œ๋ฆฟ์€ site.url, page.id, page.title ๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. (Jekyll ๊ธฐ๋ฐ˜์˜ ๋ธ”๋กœ๊ทธ์— ๋ชจ๋‘ ๋ช…์‹œ๋˜์–ด ์žˆ๋Š” ๊ฐ’)

ํด๋ผ์ด์–ธํŠธ๋Š” _config.yml ํŒŒ์ผ์— site.ev_username ์†์„ฑ์„ ๋ช…์‹œํ•ด์•ผ ํ•˜๋ฉฐ, ev_mode ์†์„ฑ์„ ๋ช…์‹œํ•ด ์„œ๋น„์Šค๋ฅผ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ด์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์ธํด๋ฃจ๋“œ ๋œ Jekyll-Script.js ํŒŒ์ผ์€ ๋“ฑ๋ก๋œ ๋ธ”๋กœ๊ทธ์˜ ํฌ์ŠคํŒ… ๊ธ€์ด ๋กœ๋“œ๋  ๋•Œ, PHP ์„œ๋ฒ„์—์„œ script.js ํŒŒ์ผ์„ ๋‚ด๋ ค๋ฐ›์•„, ๋น„๋™๊ธฐ๋กœ ์‹คํ–‰ํ•œ๋‹ค.

(script.js๋ฅผ async๋กœ ์‹คํ–‰ํ•˜๋Š” ์ด์œ ๋Š”, iframe์˜ ๋กœ๋”ฉ์€ ์™ธ๋ถ€ ํŽ˜์ด์ง€ (์ง€ํ‚ฌ ๋ธ”๋กœ๊ทธ)์˜ ๋กœ๋”ฉ์— ๊ฑฐ์˜ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.)

์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ Jekll-Script.js์™€ script.js ํŒŒ์ผ๋กœ ๋‘ ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ ๋†“์€ ๊ฒƒ์€, ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์‚ฌ์šฉ๋˜์–ด์•ผํ•  ๋กœ์ง๊ณผ ์„œ๋ฒ„ ๋‹จ๊ณ„์—์„œ ์‹คํ–‰๋˜์–ด์•ผ ํ•  ๋กœ์ง์„ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ, ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ์˜ ๋ณต์žก์„ฑ์„ ๋‚ฎ์ถ”๊ณ  ์˜ค์ž‘๋™์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค. (ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„ ์ธก ๋กœ์ง์ธ script.js๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค)

script.js ํŒŒ์ผ์—์„ , ๋“ค์–ด์˜จ ์š”์ฒญ์ด ์˜ฌ๋ฐ”๋ฅธ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’๋“ค์„ ๊ฐ–์ถ”๊ณ  ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•˜๊ณ , ํ•„์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์ด ๊ฒฐ์—ฌ๋˜์–ด ์žˆ๋‹ค๋ฉด PHP ์„œ๋ฒ„์— ์š”์ฒญํ•˜์ง€ ์•Š๋Š”๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’๋“ค์ด ๊ฐ–์ถฐ์ ธ ์žˆ๋‹ค๋ฉด, PHP ์„œ๋ฒ„์˜ URLVerification.php ํŒŒ์ผ์„ ajax๋กœ ์š”์ฒญํ•œ๋‹ค.

URLVerification.php๋Š” DB๋ฅผ ํƒ์ƒ‰ํ•ด evCommentService.ga ์‚ฌ์ดํŠธ์— ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š” ์‚ฌ์ดํŠธ์˜ ์š”์ฒญ์ธ์ง€๋ฅผ ํ™•์ธํ•œ๋‹ค. ์ด ๋•Œ DB์— ๋“ฑ๋ก๋˜์–ด ์žˆ์ง€ ์•Š์€ ์‚ฌ์ดํŠธ์ธ ๊ฒฝ์šฐ์—”, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋ฉฐ ์„œ๋น„์Šค์— ๋“ฑ๋กํ•  ๊ฒƒ์„ ๊ถŒ์œ ํ•œ๋‹ค.

DB์— ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š” ์‚ฌ์ดํŠธ์˜ ์š”์ฒญ์ธ ๊ฒฝ์šฐ, ์ •๋‹นํ•œ ์š”์ฒญ์œผ๋กœ ํŒ์ •ํ•˜๊ณ , URL์— ํ•ด๋‹นํ•˜๋Š” DB์—์„œ ํ•ด๋‹น ์„œ๋ธŒ URL์— ํ•ด๋‹นํ•˜๋Š” ํ…Œ์ด๋ธ”์ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค. ์ด ์‹œ์ ์—์„œ ํ…Œ์ด๋ธ”์ด ์—†๋Š” ๊ฒฝ์šฐ ์ƒˆ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ ๋‹ค. ๊ทธ ํ›„, ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” script.js๋กœ ์ฝ”๋ฉ˜ํŠธ ํŽ˜์ด์ง€์˜ iframe์„ ์ „์†กํ•œ๋‹ค.

์ด iframe์€ Comment.php๋ฅผ ์ฐธ์กฐํ•˜๋ฉฐ, Get ๋ฐฉ์‹์œผ๋กœ URL_ID, pageID, mode, paginationID ๋ผ๋Š” 4๊ฐœ์˜ ๋ณ€์ˆ˜ ๊ฐ’์„ ๋„˜๊ฒจ์ค€๋‹ค.

Get ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ ๊ฒƒ์€ ๊ฐ™์€ ๊ฐ’์„ ํ†ตํ•œ ์š”์ฒญ์ผ ๊ฒฝ์šฐ ํ•ญ์ƒ ๊ฐ™์€ ์ถœ๋ ฅ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ค˜์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ๊ณผ, ์œ„ 4๊ฐœ์˜ ๋ณ€์ˆ˜๋“ค์ด ๋ณด์•ˆ ์ƒ

ํฌ๊ฒŒ ๋ณดํ˜ธ๋˜์–ด์•ผ ํ•  ๊ฐ’์€ ์•„๋‹ˆ๋ผ๊ณ  ํŒ๋‹จํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

4๊ฐœ์˜ ๊ฐ’์„ ๋„˜๊ฒจ ๋ฐ›์€ Comment.php๋Š” ๋„˜๊ฒจ ๋ฐ›์€ ๊ฐ’์„ ํ†ตํ•ด DB์—์„œ ๋Œ“๊ธ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€ PaginationDivision (10)๊ฐœ ๋งŒํผ ๋Œ“๊ธ€ ์ฐฝ์— ์ถœ๋ ฅํ•œ๋‹ค.

๋„˜๊ฒจ๋ฐ›์€ ๊ฐ’ ์ค‘ mode๋ฅผ ํ†ตํ•ด ๋ธ”๋กœ๊ฑฐ๊ฐ€ ์„ค์ •ํ•œ ๋Œ“๊ธ€ ์Šคํƒ€์ผ์ด ๊ฒฐ์ •๋˜๊ณ , ๋Œ“๊ธ€์— ๊ฐ์ • ๋ถ„์„ ๊ฐ’๋“ค๋กœ ์Šคํƒ€์ผ์„ ์ž…ํžŒ๋‹ค.

  • full

  • binary

  • none, debug

ํ…Œ์ด๋ธ”์— ๋Œ“๊ธ€์ด ์—†๋‹ค๋ฉด ๋“ฑ๋ก๋œ ๋Œ“๊ธ€์ด ์—†๋‹ค๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.


  • ๋Œ“๊ธ€์„ ์ œ์ถœํ–ˆ์„ ๋•Œ์˜ ๋™์ž‘ ๊ณผ์ •

๋กœ๊ทธ์ธ ๋˜์–ด ์žˆ์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ๋Œ“๊ธ€ ์ œ์ถœ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์šฐ์„  ์•„๋ž˜์ฒ˜๋Ÿผ evCommentService.ga์— ๊ฐ€์ž…์„ ๊ถŒ์œ ํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋„์›Œ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๊ทธ ์ƒํƒœ์—์„œ ์ œ์ถœ ๋ฒ„ํŠผ์„ ํ•œ ๋ฒˆ ๋” ํด๋ฆญํ•˜๋ฉด ์ต๋ช…์œผ๋กœ ๋Œ“๊ธ€์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ๋กœ๊ทธ์ธ ๋œ ์ƒํƒœ์—์„œ ์ œ์ถœํ•œ ๋Œ“๊ธ€์€ ์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š๋Š”๋‹ค.

ํด๋ผ์ด์–ธํŠธ ํŽ˜์ด์ง€์—์„œ ๋ˆ„๊ตฐ๊ฐ€ ๋Œ“๊ธ€์„ ๋“ฑ๋กํ•˜๋ฉด, ์šฐ์„ ์ ์œผ๋กœ cross origin ajax๋ฅผ ํ†ตํ•ด ์Ÿ๊ณ  ์„œ๋ฒ„๋กœ ๋Œ“๊ธ€ ๋‚ด์šฉ์„ ์ „์†กํ•œ๋‹ค.

์Ÿ๊ณ  ์„œ๋ฒ„์—์„ , ๊ฐ์ • ๋ถ„์„ ๋ชจ๋“ˆ์ด ์ž‘๋™๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ด ๋ชจ๋“ˆ์— ๋Œ“๊ธ€ ๋‚ด์šฉ์„ input์œผ๋กœ ๋„ฃ์œผ๋ฉด ๊ฐ์ •๋ถ„์„ ๊ฒฐ๊ณผ๊ฐ’์ด ๋ฐ˜ํ™˜๋˜์–ด ํด๋ผ์ด์–ธํŠธ ํŽ˜์ด์ง€๋กœ ์ „์†ก๋œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ ํŽ˜์ด์ง€์—์„  ์ด ๊ฐ’์ด ๋˜๋Œ์•„ ์˜ค๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค๊ฐ€, ๊ฐ’์„ ๋ฐ›์œผ๋ฉด PHP ์„œ๋ฒ„์˜ AddComment.php์— ๋‹ค์‹œ ajax๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค.

AddComment.php๋Š” PHP ์„œ๋ฒ„์— ๊ฐ์ • ๋ถ„์„ ๊ฒฐ๊ณผ ๋ฐ ๋Œ“๊ธ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฉฐ, AddComment.php๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰์„ ๋งˆ์น˜๊ณ , ํด๋ผ์ด์–ธํŠธ ํ™ˆํŽ˜์ด์ง€์˜

comment.js์— ์„ฑ๊ณตํ–ˆ์Œ์„ ์•Œ๋ฆฌ๋ฉด, ํŽ˜์ด์ง€๋ฅผ ๋ฆฌ๋กœ๋“œ ํ•œ๋‹ค. ์ด ๋•, iframe ๋‚ด๋ถ€๊ฐ€ ๋ฆฌ๋กœ๋“œ ๋˜๋Š” ๊ฒƒ์œผ๋กœ, ์™ธ๋ถ€ ํŽ˜์ด์ง€๋Š” ๋ฆฌ๋กœ๋“œ ๋˜์ง€ ์•Š๋Š”๋‹ค.

comment.php๊ฐ€ ๋ฆฌ๋กœ๋“œ ๋˜๋ฉด, (์ƒˆ๋กœ ๋“ฑ๋กํ•œ ๋Œ“๊ธ€์ด) ์—…๋ฐ์ดํŠธ ๋œ DB์—์„œ ๋‹ค์‹œ PaginationDivision (10)๊ฐœ์˜ ๋Œ“๊ธ€์ด ์ตœ๊ทผ ๋“ฑ๋ก๋œ ์ˆœ์œผ๋กœ ์ถœ๋ ฅ๋˜๊ฒŒ ๋œ๋‹ค.


  • ๋Œ“๊ธ€์˜ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ

๋Œ“๊ธ€์˜ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ๋Š”, ๋Œ“๊ธ€์„ ์ œ์ถœํ–ˆ๋˜ ๋ณธ์ธ์˜ ID๋กœ ๋กœ๊ทธ์ธ ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋Œ“๊ธ€์„ ์ˆ˜์ •ํ•˜๋ฉด, ๋‹ค์‹œ ์Ÿ๊ณ  ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด

๊ฐ์ •๋ถ„์„ ๊ฐ’์„ ๋‹ค์‹œ ๋ฐ›์•„์˜ค๊ฒŒ ๋˜๋ฏ€๋กœ, ๊ฐ์ • ๋ถ„์„ ๊ฒฐ๊ณผ ๊ฐ’ ์—ญ์‹œ ๊ฐฑ์‹ ๋˜๊ณ , ๋Œ“๊ธ€์˜ ์Šคํƒ€์ผ๋„ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.


  • ๊ฐ์ •๋ถ„์„ ๊ฐ’ ๋ฆฌํฌํŠธ

๋Œ“๊ธ€์— ์‚ฌ์šฉ๋œ ๊ฐ์ •๋ถ„์„ ๊ฐ’์ด ์ ์ ˆํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ๊ฒฝ์šฐ, ์–ด๋–ค ์œ ์ €๋ผ๋„ ๋ฆฌํฌํŠธ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์Ÿ๊ณ  ์„œ๋ฒ„๋กœ ์ ์ ˆํ•˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ผ๋Š”

๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ฒ„ํŠผ์€ evMode๊ฐ€ none์ผ ๋• ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š”๋‹ค.


  • ๊ฐ„๋‹จํ•œ ํ†ต๊ณ„ ์„œ๋น„์Šค์˜ ๋™์ž‘ ๊ณผ์ •

evCommentService.ga์—์„ , ์ž์‹ ์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์„œ๋น„์Šค์— ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ ์™ธ์— ๊ฐ„๋‹จํ•œ ํ†ต๊ณ„ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ, ํ†ต๊ณ„ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด,

๊ฐ ์„œ๋น„์Šค DB ๋‚ด์— ํŠน์ˆ˜ํ•œ ํ…Œ์ด๋ธ”์„ ๋‘ ๊ฐœ์”ฉ ๊ฐ–๊ณ  ์žˆ๋‹ค.

ํ•˜๋‚˜๋Š”, ๊ฐ ํŽ˜์ด์ง€์˜ ์ œ๋ชฉ์— ํ•ด๋‹นํ•˜๋Š” MEDIUMTEXT ํ˜•์‹์˜ ๊ฐ’๋“ค์„ ์ €์žฅํ•˜๋Š” pageTitlePairs ํ…Œ์ด๋ธ”์ด๋‹ค. ์ด ํ…Œ์ด๋ธ”์€ '์ตœ๊ทผ ๋“ฑ๋ก๋œ ๋Œ“๊ธ€' ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰๋  ๋•Œ,

์ด์šฉ๋˜๋Š”๋ฐ, ์ตœ๊ทผ ๋“ฑ๋ก๋œ ๋Œ“๊ธ€ ์ด์™ธ์— ์ด ๋Œ“๊ธ€์ด ๋“ฑ๋ก๋œ ๊ธ€ ์ œ๋ชฉ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๋”ฐ๋กœ ํŽ˜์ด์ง€์˜ ์ œ๋ชฉ์„ ์ €์žฅํ•ด ๋‘” ํ…Œ์ด๋ธ”์ด๋‹ค.

๊ฐ ํฌ์ŠคํŒ… ๊ธ€์— ํ•ด๋‹นํ•˜๋Š” ํ…Œ์ด๋ธ”๋“ค์— ์ปฌ๋Ÿผ ํ˜•ํƒœ๋กœ ์ œ๋ชฉ์„ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๋”ฐ๋กœ ์œ„ ๊ฐ™์€ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“  ์ด์œ ๋Š”, ๋Œ“๊ธ€์ด ๋‹ฌ๋ฆด ๋•Œ ๋งˆ๋‹ค ์ „๋ถ€ ๊ฐ™์€ ์ œ๋ชฉ์„ ์ €์žฅํ•˜๊ฒŒ

๋˜๋Š” ๋น„ํšจ์œจ์„ฑ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.

๋˜ ํ•˜๋‚˜๋Š”, visitorCounter ํ…Œ์ด๋ธ”์ด๋‹ค. evCommentService.ga๋Š” ์กฐํšŒ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ธ๊ธฐ ํฌ์ŠคํŒ…์„ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ,

์ด ๋•Œ ํฌ์ŠคํŒ… ๋ณ„ ์กฐํšŒ์ˆ˜๋ฅผ ๊ธฐ๋กํ•  ํ…Œ์ด๋ธ”์ด ํ•„์š”ํ•˜๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ํฌ์ŠคํŒ…์˜ ๋Œ“๊ธ€๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•˜๊ธฐ์—” ์ ์ ˆํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ๋ณ„๋„์˜ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“  ๊ฒƒ์ด๋‹ค.

4๊ฐœ์˜ ํ†ต๊ณ„ ์„œ๋น„์Šค๋Š” CommentManageService.php์—์„œ ์™ผ์ชฝ 4๊ฐœ์˜ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ„์œผ๋กœ์จ, ServiceSection์— ajax๋กœ ๋กœ๋“œ๋˜๋Š” ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค.

๊ฐ๊ฐ์˜ ํ†ต๊ณ„ ์„œ๋น„์Šค๋Š” '๋‚ ์งœ', '๊ฐ์ •๋ถ„์„ ๊ฐ’์˜ ํ‰๊ท ', '์กฐํšŒ ์ˆ˜', '๋Œ“๊ธ€ ์ˆ˜' ๋ฅผ ๊ฐ€์ค‘์น˜๋กœ ํ•˜๋Š” ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ณ ,

chart.js์˜ ์ฐจํŠธ๋กœ ๋‚˜ํƒ€๋‚ธ ํ›„ CommentManageService.php์— echo ํ•œ๋‹ค.

  • ์ข‹์€ ํ‰๊ฐ€๋ฅผ ๋ฐ›์€ ๊ฒŒ์‹œ๋ฌผ


  • ์ธ๊ธฐ ํฌ์ŠคํŒ… ๋ถ„์„


  • ๋Œ“๊ธ€์ด ๋งŽ์ด ๋‹ฌ๋ฆฐ ๊ฒŒ์‹œ๊ธ€


  • ์ตœ๊ทผ ์ƒ์„ฑ๋œ ๋Œ“๊ธ€



  • Sass

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ, css์— ์ค‘๋ณต๋˜๋Š” ๊ฐ’๋“ค์ด ๋งŽ์ด ๋‚˜ํƒ€๋‚˜ ๋ณต์‚ฌ, ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•ด์•ผํ•  ์ผ์ด ๋งŽ์•„์กŒ๋‹ค. (๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋“ฑ)

์ด๋Œ€๋กœ๋Š” css ์ฝ”๋“œ๋ฅผ ๋ณด์ˆ˜ํ•˜๊ธฐ ์ ์  ์–ด๋ ค์›Œ์งˆ ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•˜์—ฌ, Ruby์˜ Sass๋ž€ ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ด CSS์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์˜€๋‹ค.

โ— Documentations

ํ”„๋กœ์ ํŠธ ๋‚ด ์‚ฌ์šฉ๋œ ๋Œ“๊ธ€ ์„œ๋น„์Šค ์ฝ”๋“œ ํŒŒ์ผ๋“ค์˜ ์„ค๋ช…์„ ํ…Œ์ด๋ธ”๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

  • PHP Files
File Name Description
AddComment.php ๋Œ“๊ธ€์„ ์ œ์ถœํ•  ๋•Œ Ajax๋กœ ํ˜ธ์ถœ๋˜์–ด, ๊ฐ์ •๋ถ„์„ ๊ฐ’์„ ํฌํ•จํ•œ ๋Œ“๊ธ€ ๋ฐ์ดํ„ฐ๋ฅผ DB์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
CommentPageLogin.php Comment.php์—์„œ ๋กœ๊ทธ์ธํ•  ๋•Œ ajax๋กœ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. evCommentService.ga์—์„œ ๋กœ๊ทธ์ธ ํ•  ๋• SignInAction.php๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
CommentPageLogout.php Comment.php์—์„œ ๋กœ๊ทธ์•„์›ƒ ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜์„ ์‚ญ์ œํ•˜๋Š” ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
DeleteComment.php ๋Œ“๊ธ€์„ ์‚ญ์ œํ•˜๋Š” ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ, ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ธ์ž๋กœ ๋„˜์–ด์˜จ UserID ๊ฐ’์ด ์ง€์šฐ๋ ค ํ•˜๋Š” ๋Œ“๊ธ€์˜ ID์™€ ๊ฐ™๋‹ค๋ฉด DB์—์„œ ๋Œ“๊ธ€์„ ์ง€์›๋‹ˆ๋‹ค.
DeleteService.php evCommentService.ga์—์„œ ์„œ๋น„์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
EditComment.php ๋Œ“๊ธ€์„ ์ˆ˜์ •ํ•˜๋Š” ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
ID_DuplicateCheck.php ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€์—์„œ ๋Œ“๊ธ€ ์ค‘๋ณต ๊ฒ€์‚ฌ ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
MySQLConection.php MySQL์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค์ธ MySQLConnection์ด ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ php ํŒŒ์ผ๋“ค์—์„œ requireํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
PopularPosting.php evCommentService.ga์—์„œ ๋ธ”๋กœ๊ทธ์—์„œ '์ธ๊ธฐ ํฌ์ŠคํŒ… ๋ถ„์„' ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
Positiveness.php evCommentService.ga์—์„œ ๋ธ”๋กœ๊ทธ์—์„œ '์ข‹์€ ํ‰๊ฐ€๋ฅผ ๋ฐ›์€ ๊ฒŒ์‹œ๋ฌผ' ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
PostsSortingByCommentsNumber.php evCommentService.ga์—์„œ ๋ธ”๋กœ๊ทธ์—์„œ '๋Œ“๊ธ€์ด ๋งŽ์ด ๋‹ฌ๋ฆฐ ๊ฒŒ์‹œ๋ฌผ' ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
RecentComments.php evCommentService.ga์—์„œ ๋ธ”๋กœ๊ทธ์—์„œ '์ตœ๊ทผ ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€' ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
RegisterURL.php evCommentService.ga์—์„œ ์„œ๋น„์Šค๋ฅผ ๋“ฑ๋กํ•˜๋ ค ์‹œ๋„ํ•  ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์œผ๋กœ ๋“ค์–ด์˜จ URL ๊ฐ’์„ ํ•ด์‹ฑํ•ด DB๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ํŠน์ˆ˜ํ•œ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์ธ pageTitlePairs, VisitorCounter ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
ShowHomePage.php evCommentService.ga์—์„œ ๋“ฑ๋ก๋œ ํ™ˆํŽ˜์ด์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ•จ์ˆ˜๋“ค์„ ๊ฐ–๊ณ  ์žˆ๋Š” php ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
SignInAction.php evCommentService.ga์—์„œ ๋กœ๊ทธ์ธํ•  ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
SignOutAction.php evCommentService.ga์—์„œ ๋กœ๊ทธ์•„์›ƒ ํ•  ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
SignUpAction.php evCommentService.ga์— ํšŒ์›๊ฐ€์ž…ํ•  ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
URLVerification.php ํด๋ผ์ด์–ธํŠธ ํŽ˜์ด์ง€์—์„œ ๋Œ“๊ธ€ ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•  ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
UserEditAction.php evCommentService.ga์—์„œ ํšŒ์›์ •๋ณด๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
UserModalBox.php ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ModalBox๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ•จ์ˆ˜๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Comment.php์™€ evCommentService.ga ํ™ˆํŽ˜์ด์ง€์—์„œ ๋ชจ๋‘ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.
CommentManageService.php evCommentService.ga์—์„œ ๋ธ”๋กœ๊ทธ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ํ†ต๊ณ„ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
SignIn.php evCommentService.ga์˜ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.
Register.php evCommentService.ga์˜ ์„œ๋น„์Šค ๋“ฑ๋ก ๋ฐ ๊ด€๋ฆฌ ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.
UserEdit.php evCommentService.ga์˜ ํšŒ์› ์ •๋ณด ์ˆ˜์ • ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.
index.html evCommentService.ga์˜ index.html์˜ ๊ธฐ๋ณธ ๋™์ž‘์€ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
SignUp.html evCommentService.ga์˜ ํšŒ์› ๊ฐ€์ž… ํŽ˜์ด์ง€ ์ž…๋‹ˆ๋‹ค.
CommentExample.html ๋Œ“๊ธ€ ์ฐฝ ์Šคํƒ€์ผ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์˜ˆ์ œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
Script.html ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
  • JS Files
File Name Description
comment.js comment.php์—์„œ ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์™ธ ๋Œ“๊ธ€์— ์Šคํƒ€์ผ์„ ์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
CommentManageService.js evCommentService.ga์—์„œ ๋ธ”๋กœ๊ทธ ํ†ต๊ณ„๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
SignIn.js evCommentService.ga์˜ ๋กœ๊ทธ์ธ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
SignUp.js evCommentService.ga์˜ ํšŒ์›๊ฐ€์ž…์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ •๊ทœ์‹์„ ํ†ตํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฐ ํ”„๋กœํ•„ ์‚ฌ์ง„ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
URL-Register.js evCommentService.ga์˜ ๋ธ”๋กœ๊ทธ ์„œ๋น„์Šค ๋“ฑ๋ก ๋ฐ ๊ด€๋ฆฌ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
UserEdit.js evCommentService.ga์˜ ์œ ์ € ์ •๋ณด ๋ณ€๊ฒฝ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • Sass Files
File Name Description
BackGround.scss evcommentService.ga์˜ ๋ฐฐ๊ฒฝ์— ๋Œ€ํ•œ ์Šคํƒ€์ผ ์‹œํŠธ์ž…๋‹ˆ๋‹ค.
BottomFixedNavbar.scss evcommentService.ga์˜ ํ™”๋ฉด ํ•˜๋‹จ์— ๊ณ ์ •๋œ NavBar์˜ ์Šคํƒ€์ผ ์‹œํŠธ ์ž…๋‹ˆ๋‹ค.
comment.scss comment.php์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์Šคํƒ€์ผ ์‹œํŠธ ์ž…๋‹ˆ๋‹ค.
CommentManageService.scss evcommentService.ga์˜ ๋ธ”๋กœ๊ทธ ํ†ต๊ณ„ ์„œ๋น„์Šค์— ์‚ฌ์šฉ๋œ ์Šคํƒ€์ผ ์‹œํŠธ์ž…๋‹ˆ๋‹ค.
Style.scss comment.php์—์„œ ์‚ฌ์šฉํ•˜๋Š”, ๊ฐ์ •๋ถ„์„ ๊ฐ’์— ๋”ฐ๋ฅธ ์ƒ‰์ƒ์„ ๋‚˜์—ดํ•œ ์Šคํƒ€์ผ ์‹œํŠธ์ž…๋‹ˆ๋‹ค.
RegisterURL.scss evcommentService.ga์—์„œ URL ๋“ฑ๋ก ํŽ˜์ด์ง€์— ์‚ฌ์šฉํ•˜๋Š” ์Šคํƒ€์ผ ์‹œํŠธ์ž…๋‹ˆ๋‹ค.
SignIn.scss evcommentService.ga์˜ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์— ์‚ฌ์šฉ๋œ ์Šคํƒ€์ผ ์‹œํŠธ์ž…๋‹ˆ๋‹ค.
SignUp.scss evcommentService.ga์˜ ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€์— ์‚ฌ์šฉ๋œ ์Šคํƒ€์ผ ์‹œํŠธ์ž…๋‹ˆ๋‹ค.
TopNavbar.scss evcommentService.ga์˜ ํ™”๋ฉด ์ƒ๋‹จ์— ๊ณ ์ •๋œ TopNavBar์˜ ์Šคํƒ€์ผ ์‹œํŠธ์ž…๋‹ˆ๋‹ค.
UserEdit.scss evcommentService.ga์˜ ์œ ์ € ์ •๋ณด ๋ณ€๊ฒฝ์— ์‚ฌ์šฉ๋œ ์Šคํƒ€์ผ ์‹œํŠธ์ž…๋‹ˆ๋‹ค.

About

Team-Ev, Comment Component Service

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •