Giter Site home page Giter Site logo

brave-cookie / flog Goto Github PK

View Code? Open in Web Editor NEW
7.0 0.0 1.0 19.39 MB

๐Ÿ”ฎ ์‹ค์‹œ๊ฐ„ ๊ฐ์ •๋ถ„์„ ํ™”์ƒํšŒ์˜ 'FLOG'

Home Page: https://flog.tk

JavaScript 80.86% EJS 0.06% HTML 1.08% CSS 9.73% Shell 0.17% Dockerfile 0.77% Python 7.33%
react express flask docker aws-ec2 aws-rds-mysql emotion-recognition webrtc

flog's People

Contributors

hanjo8813 avatar jeonbar2 avatar rayrny avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

songjungwoo9664

flog's Issues

ํ”„๋ก ํŠธ์—”๋“œ Vue -> React ๋กœ ์ „ํ™˜

Vue์— ํ™”์ƒํšŒ์˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋˜ ์ค‘ ํ•œ๊ณ„์ ์„ ๋ฐœ๊ฒฌ

  • ํ™”์ƒํšŒ์˜ ๊ธฐ๋Šฅ(RTCMultiConnection ๋ชจ๋“ˆ)์€ ์ˆœ์ˆ˜ html์— ๋ถ™๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉํ•ด์•ผํ•จ.
  • ์šฐ์„  Vue์—์„œ ์™ธ๋ถ€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ import ํ•˜๋Š” ๊ฒƒ ์กฐ์ฐจ ์–ด๋ ค์›€..
  • ๋˜ ํ•ด๋‹น ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ˆœ์ˆ˜ HTML DOM์„ ๊ฑด๋“œ๋ฆฌ๋„๋ก ์„ค๊ณ„๋˜์–ด์žˆ๋‹ค.
  • ํ•˜์ง€๋งŒ Vue๋Š” ๊ฐ€์ƒ DOM์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ.. ์ด๋ฅผ ๋ณด์™„ํ•˜๋ ค๋ฉด ํ…œํ”Œ๋ฆฟ ๋ Œ๋”๋ง์ด ์•„๋‹Œ JSX ๋ Œ๋”๋ง์„ ์‚ฌ์šฉํ•ด์•ผํ–ˆ์Œ.
  • JSX ๋ Œ๋”๋ง ์‚ฌ์šฉ์‹œ ๋ชจ๋“  ์ฝ”๋“œ์˜ ๋ฆฌํŒฉํ† ๋ง์ด ํ•„์š”ํ•˜๊ณ  ์‰ฝ์ง€ ์•Š์•„๋ณด์ž„.
  • jquery์˜ ์‚ฌ์šฉ์ด ๋„ˆ๋ฌด๋‚˜ ์ œํ•œ์ ์ด๊ณ  ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ํž˜๋“ฌ
  • socket.io ์˜ ์‚ฌ์šฉ์—ญ์‹œ export default ์˜์—ญ์— ๋ชจ๋‘ ๋ถ„ํ• ํ•˜์—ฌ ์ƒˆ๋กญ๊ฒŒ ์ฝ”๋”ฉํ•ด์•ผํ•˜๋Š” ๋ถˆํŽธํ•จ.

๋”ฐ๋ผ์„œ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ React๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •

์—…๋ฐ์ดํŠธ ํ™•์ธ ์š”์ฒญ!

message๋Š” ๋ฐฑ์—”๋“œ์—์„œ ์ •๋ณด๋กœ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ
์ผ๋‹จ ํ•„์š”ํ•ด ๋ณด์ด์ง€ ์•Š์•„์„œ ์ฃผ์„์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹น

๋กœ๊ทธ์ธํ•˜๋ฉด์„œ accessToken์ด๋ž‘ ์œ ์ € ์ด๋ฆ„๋„ ๊ฐ™์ด ๋„˜๊ฒจ์ค˜์•ผ
๋งˆ์ดํŽ˜์ด์ง€์— 'ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค ใ…‡ใ…‡ใ…‡๋‹˜'์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™์€๋ฐ ์–ด์ผ€ ์ƒ๊ฐํ•˜์‹œ๋Š”์ง€..

๋ณ€๊ฒฝ ๋‚ด์šฉ:

  • id, name ๋“ฑ์„ ๋ชจ๋‘ user_xx๋กœ ์ „๋ถ€ ์ˆ˜์ •(DB์™€ ์ด๋ฆ„ ๋™์ผํ•˜๊ฒŒ)
  • signup.vue -> checkForm: function(๊ณต์‹๋ฌธ์„œ ์ฐธ๊ณ  )์„ ์ถ”๊ฐ€ํ•ด์„œ ํšŒ์›๊ฐ€์ž…์‹œ ํ•„์š”ํ•œ ๋‚ด์šฉ ๋ˆ„๋ฝ or ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ํ™•์ธ ์ผ์น˜ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ alert๋‚ด๋ณด๋‚ด๋„๋ก ์ˆ˜์ •
    ๊ถ๊ธˆํ•œ ์ : <form id='content' @submit="checkForm" @submit.prevent="submitForm"> ์ €๋ ‡๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ์ง€?
  • store/store.js -> store/index.js๋กœ ์ˆ˜์ • ํ›„ index.js์— ์›๋ž˜ ์žˆ๋˜ ๋‚ด์šฉ์„ ์ •๋ฆฌ(vuex์— ๋Œ€ํ•œ ๊ฒƒ)
  • login.vue -> store์— ๋Œ€ํ•ด ์ดํ•ดํ•œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์ฃผ์„์ฒ˜๋ฆฌ ํ•œ ๋’ค์— ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‹ค์‹œ ์ž‘์„ฑํ•ด๋ด„(๊ฒฝ๋กœ๋ฅผ redirectํ• ๋•Œ url์ด ์–ด๋–ป๊ฒŒ ๋‚˜์˜ค๋Š”์ง€ ๋ชฐ๋ผ์„œ ์ผ๋‹จ ๊ทธ๋ƒฅ ๋ฐ”๋กœ /mypage๋กœ ๊ฐ€๋„๋ก ํ•จ)

  • ์œ„ํ‚ค์— /auth/login ์ถ”๊ฐ€ํ•ด๋†จ๋Š”๋ฐ ์ž˜๋ชป๋œ๊ฑฐ ์žˆ์Œ ์ˆ˜์ •ํ•ด์ฃผ์„ธ์š” ๐Ÿคฉ

@hanjo8813 @jeonbar2 ํ™•์ธ ํ›„ ๋ฌธ์ œ ์—†์œผ๋ฉด ์ด์Šˆ ๋‹ซ์•„์ฃผ์„ธ์šฅ

์ด์Šˆ ๋“ฑ๋ก ๊ตฌํ˜„

  • ์šฐ์„  ์ขŒ์ธก ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ์ƒ์„ฑ ํ•„์š”
  • url์€ /mypage/:userId/project/:projectId/... ์™€ ๊ฐ™์ด children ์†์„ฑ? ์‚ฌ์šฉ
  • ๊ทธ์— ๋”ฐ๋ฅธ ํ™”๋ฉด ์ „ํ™˜
  • ์ด์Šˆ ๋“ฑ๋ก์€ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๊ณผ ๋น„์Šทํ•œ ํ”Œ๋กœ์šฐ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ๋  ๋“ฏ

ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

๊ธฐํ•œ ~5/9๊นŒ์ง€

  • ํšŒ์›์ •๋ณด ํ…Œ์ด๋ธ” ์ƒ์„ฑ
  • ํ”„๋ก ํŠธ์—์„œ ํšŒ์›์ •๋ณด ๋ฐ์ดํ„ฐ ๋ฐ›์•„์˜ค๊ธฐ
  • ๋กœ๊ทธ์ธ์‹œ ํ”„๋ก ํŠธ์™€ ์ธ์ฆ์ •๋ณด passport ์ƒ์„ฑ

ํšŒ์˜๋ก ๋‚ด๋ถ€ ๊ตฌํ˜„ ~26

  • ํšŒ์˜๋ก ๋ฆฌ์ŠคํŠธ ๋ฐ›์•„์˜ค๊ธฐ
  • ๋งํฌ ํด๋ฆญ์‹œ .../project/:pjId/:pjName/log/:logId ๋กœ ์ด๋™
  • ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ํšŒ์˜๋ก์— ๋งž๋Š”๊ฑฐ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์„œ ๋ฐฐ์น˜
    * ๋„ค๋น„๊ฒŒ์ด์…˜ ์ˆœ์„œ ํšŒ์˜๋ก/์›Œ๋“œํด๋ผ์šฐ๋“œ/๊ทธ๋ž˜ํ”„/์ฐธ์—ฌ์ž์ˆœ์œ„

  • ์šฐ์„  ๊ฐ์ • ๊ทธ๋ž˜ํ”„ ๋ถ€๋ถ„ -chart.js? ๊ทธ๊ฑฐ ์จ์„œ ํ•ด๋ณด๊ธฐ
  • ๊ทธ๋ฆฌ๊ณ  ์›Œ๋“œ ํด๋ผ์šฐ๋“œ๋Š” ๋ฐฑ์—”๋“œํ•œํ…Œ png ๋ฐ›๊ฑฐ๋‚˜ ์•„๋‹˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์จ์„œ ํ•ด๋ณด๊ธฐ + ์š”์•ฝ๋ฌธ
  • ์ฐธ์—ฌ์ž ์ˆœ์œ„๋„ ์ˆœ์œ„๋งŒ ๋„˜๊ฒจ๋ฐ›์œผ๋‹ˆ๊นŒ ๋ฐ”๋กœ ํ•  ์ˆ˜ ์žˆ์Œ
  • ํšŒ์˜๋ก์€ ์–ด์ผ€ ๋ฐ›์•„์„œ ๋„์šธ๊ฑด์ง€ ์ƒ๊ฐํ•ด๋ณด๊ณ 
  • ๋„์šฐ๊ธฐ + ๊ฐ์ • ๋ผ๋ฒจ๋ง

[10์ฃผ์ฐจ] To Do

Goal: ๋กœ๊ทธ์ธ ํ™”๋ฉด ๊ตฌํ˜„

  • ๋ผ์šฐํ„ฐ ๊ณต๋ถ€ -> ํ™”๋ฉด ์ „ํ™˜ ์ต์ˆ™ํ•ด์ง€๊ธฐ
  • vuex ๊ณต๋ถ€
  • ๋„ค๋น„๊ฒŒ์ด์…˜ ๊ฐ€๋“œ -> ์ง€๊ธˆ mypage ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ํ™”๋ฉด์ด ๋‚˜์˜ค๋Š”๊ฑด ์•„๋‹Œ๋ฐ alert ๋„์šฐ๊ณ  ๋กœ๊ทธ์ธ ํ™”๋ฉด์œผ๋กœ ๋Œ์•„์˜ค๋„๋ก!

DB ํ•ดํ‚น

๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์ด ์ž˜ ๋˜์ง€์•Š์•„ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ด๋ณด๋‹ˆ DB์ชฝ์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๊ฒƒ์„ ๋ฐœ๊ฒฌํ•จ

๋”ฐ๋ผ์„œ AWS RDS์— ์˜ฌ๋ ค๋†จ๋˜ DB๋ฅผ ํ™•์ธํ•ด๋ณด๋‹ˆ... ...?????????????????

image

์šฐ๋ฆฌ๊ฐ€ ํ”„๋กœ์ ํŠธ์— ์“ฐ๋˜ ํ…Œ์ด๋ธ”์ด ๋ชจ๋‘ ์‚ญ์ œ๋˜๊ณ  ์œ„์ฒ˜๋Ÿผ ํ…Œ์ด๋ธ” ํ•˜๋‚˜๋งŒ ๋‚จ๊ฒจ์ ธ ์žˆ์Œ...

image

ํ…Œ์ด๋ธ” ์•ˆ์—๋Š” ์ด๋ ‡๊ฒŒ ์จ์žˆ์—ˆ๋‹ค.

To recover your lost databases and avoid leaking it: visit "์–ด์ฉŒ๊ณ ์ €์ฉŒ๊ณ  ๋งํฌ" and enter your unique token "์–ด์ฉŒ๊ณ ์ €์ฉŒ๊ณ  ํ† ํฐ" and pay the required amount of Bitcoin to get it back.
Databases that we have: . Your databases are downloaded and backed up on our servers. 
If we dont receive your payment in the next 9 Days, we will sell your database to the highest bidder or use them otherwise. 
To access this site you have use the tor browser "์–ด์ฉŒ๊ณ ์ €์ฉŒ๊ณ  ๋งํฌ"

...............................

ํ† ๋ฅด๋ธŒ๋ผ์šฐ์ € ๋งํฌ์™€ ํ† ํฐ์„ ์จ๋†“๊ณ  ๊ทธ ๋งํฌ๋กœ ๋“ค์–ด์™€์„œ ๋น„ํŠธ์ฝ”์ธ์œผ๋กœ ๊ฒฐ์ œํ•˜๊ณ  DB๋ฅผ ๋ฐ›์•„๊ฐ€๋ผ๋Š”๊ฒƒ...

ํ•œ๋งˆ๋””๋กœ ํ•ดํ‚น๋‹นํ–ˆ๋‹ค..

๋ถ„๋ช… DB ์ ‘์†์ •๋ณด๋ฅผ .gitignore๋กœ ์˜ˆ์™ธ์ฒ˜๋ฆฌํ•ด์„œ ์˜ฌ๋ฆฌ์ง€ ์•Š์•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ flask์—์„œ DB๋ฅผ ์—ฐ๋™ํ•  ๋•Œ ์ ‘์† ์ •๋ณด๊ฐ€ ๋…ธ์ถœ๋˜์–ด ์žˆ์—ˆ๋‹ค.....

ํ•ด์ปค๋“ค์ด ๊นƒํ—ˆ๋ธŒ๋ฅผ ๋ฌด์ž‘์œ„๋กœ ํฌ๋กค๋งํ•ด์„œ DB ์ ‘์† ์ •๋ณด๊ฐ€ ๋…ธ์ถœ๋œ ๊ฒƒ์„ ํŒŒ์•…ํ•ด ๊ทธ DB๋ฅผ ํ•ดํ‚นํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

RDS์—์„œ ์ ‘์† ์ •๋ณด๋ฅผ ๋ฐ”๊พธ๊ณ  ORM์— ๋‚จ์•„์žˆ๋Š” ํ…Œ์ด๋ธ” ์ •๋ณด๋กœ DB๋ฅผ ๋ณต๊ตฌํ•ด์•ผํ•œ๋‹ค.

์ค‘์š” ์ •๋ณด๊ฐ€ ๋…ธ์ถœ๋˜๋ฉด ์‹ค์ œ๋กœ ํ•ดํ‚น๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋ผˆ์ €๋ฆฌ๊ฒŒ ๊นจ๋‹ฌ์•˜๋‹ค.............................

[FE] ํ™ˆํ™”๋ฉด

HOME ์ง€์šฐ๊ณ  START๋Š” hover์ ์šฉ ๋ฐ ํฌ๊ธฐ ํ‚ค์šฐ๊ณ  ๋ˆˆ์— ๋„๊ฒŒ

CSS๋””ํ…Œ์ผ

cursor ์†์„ฑ

  • ๋ฒ„ํŠผ์ธ๋ฐ ๋งˆ์šฐ์Šค hover์‹œ ์ปค์„œ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ณณ๋“ค์€ css์—์„œ cursor : pointer ์†์„ฑ์„ ์ค€๋‹ค

  • ๋กœ๊ทธ์ธ์ฐฝ
    image

  • ๋ชจ๋‹ฌ๋“ค
    image

  • ์—ฌ๊ธฐ ๋ชจ๋‹ฌ์€ ์Šคํƒ€์ผ ์ ์šฉํ•˜๊ธฐ
    image

๋กœ๊ทธ์ธ์‹œ ์ฐฝ ์ด๋™ ์ด์Šˆ

๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํ† ํฐ์„ ์ •์ƒ์ ์œผ๋กœ ๋ฐ›์•„์™€์„œ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ๋จ

ํ•˜์ง€๋งŒ ๋ฐ”๋กœ ์ฐฝ ์ด๋™์ด ๋˜์ง€์•Š์Œ ์ˆ˜์ •ํ•„์š”!

ํ™”์ƒํšŒ์˜ ์™ธ ๊ธฐ๋Šฅ ์ค‘์—์„œ ๊ตฌํ˜„ ๋ฏธ์™„๋ฃŒ

ํšŒ์˜ ํ‰๊ท  ๊ฐ์ •์˜ ์‹œ๊ฐ„๋ณ„ ์ถ”์ด

์ž„์˜์˜ ๊ฐ’์œผ๋กœ๋Š” ๋„์šฐ๊ธฐ ์„ฑ๊ณต. ์ถ”ํ›„ ์„œ๋ฒ„์—์„œ ๋„˜๊ฒจ์ฃผ๋Š” ๋ฐ์ดํ„ฐ ๊ฐ€๊ณตํ•ด์„œ ๊ตฌํ˜„ ์™„๋ฃŒํ•ด์•ผํ•จ

๋ฐฑ์—”๋“œํ•œํ…Œ ์š”์ฒญ

ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค

  • ์‹œ๊ฐ„๋ณ„ ํ‰๊ท  ๊ฐ์ • ๊ทธ๋ž˜ํ”„๋ฅผ ์œ„ํ•ด ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ” ์„ค๊ณ„ํ›„ ํšŒ์˜ ํ‰๊ท  ๊ฐ์ • ์ €์žฅ & ์ •๋ณด ๋„˜๊ฒจ์ฃผ๊ธฐ
  • ์ „์ฒด ๊ฐ์ • ํ†ต๊ณ„๋ฅผ ์œ„ํ•œ ์š”์ฒญ(๊ฐœ์ˆ˜๋ฅผ ๋ณด๋‚ด์ฃผ๋ฉด ํ”„๋ก ํŠธ์—์„œ ๊ณ„์‚ฐํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋  ๋“ฏ ex) anger: 10, happy: 16, ...)
  • ์›Œ๋“œ ํด๋ผ์šฐ๋“œ๋Š” ์•„์ง ๋‚˜๋„ ์–ด์ผ€ ํ• ์ง€ ํ•จ ๋ด๋ด์•ผํ•˜๋Š”๋ฐ ํ”„๋ก ํŠธ์—์„œ ๋„์šด๋‹ค ์น˜๋ฉด ๋‹จ์–ด 10๊ฐœ์ •๋„ ๋ฝ‘์•„์„œ ๋„˜๊ฒจ์ฃผ๋ฉด ๋  ๊ฒƒ ๊ฐ™์Œ
  • ์ฐธ์—ฌ์ž ๋žญํ‚น๋„ ๋ฐฑ์—์„œ ๊ฒฐ์ • ํ›„ ์‚ฌ๋žŒ ์ด๋ฆ„๋งŒ ๋„˜๊ฒจ์ฃผ๋ฉด ๋„์šธ ์ˆ˜ ์žˆ์„๋“ฏํ•จ
  • ์ด๊ฑด ๋‹น์žฅ ํ•„์š”ํ•œ ๊ฑด ์•„๋‹Œ๋ฐ ๊ทธ๋•Œ ๋งํ–ˆ๋˜ ๋”๋ฏธ ํšŒ์˜๋ก ๊ฐ์ •์ด happy, happiness ํ˜ผ๋™๋˜์–ด ์žˆ๊ณ  ๊ทธ ์™ธ์—๋„ ์ž์ž˜ํ•œ ์˜คํƒˆ์ž๊ฐ€ ์žˆ์œผ๋‹ˆ ํ™•์ธ ๋ถ€ํƒ๋“œ๋ ค์šฅ

~26์ผ๊นŒ์ง€ ์œ„์˜ ๊ตฌํ˜„ ๋‹ค ์™„๋ฃŒํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค!! ๋ญ ํ”„๋ก ํŠธ์—์„œ๋„ ์ผ์ • ๋‚ด์— ๋ ์ง„ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๊ฐ™์ด ํž˜๋‚ด๋ณด์•„์š” ๐Ÿคฉ๐Ÿคฉ

์ด์Šˆ๋Š” ํ™•์ธ ํ›„ ๋‹ซ์•„๋„ ๋˜๊ณ  ์•„๋‹ˆ๋ฉด ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋กœ ์—ด์–ด๋‘์…”๋„ ๋ ๋“ฏ~

๋กœ๊ทธ๋ฆฌ์ŠคํŠธ ํ”„๋ก ํŠธ์—”๋“œ

๋กœ๊ทธ๋ฆฌ์ŠคํŠธ์—์„œ ํ”„๋กœ์ ํŠธ ์•„์ด๋”” ๋ฐ›์•„์™€์„œ ๋ฏธํŒ…์ด๋ฆ„์ด๋ž‘ ๋ฏธํŒ…๋‚ ์งœ๋Š” db์•ˆ์— ๊ฐ™์€ ํ…Œ์ด๋ธ”์— ์žˆ์–ด์„œ ๋ฝ‘์•„๋‚ด๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ๋ฐ ๋ฝ‘์•„๋‚ธ ๋ฏธํŒ…์•„์ด๋””๋กœ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ” ์ฐธ์กฐํ•ด์„œ ์ฐธ์—ฌ์ž ๋ชฉ๋ก๊นŒ์ง€ ๋ฝ‘์•„์˜ค๊ธฐ๋Š” ์ข€ ํž˜๋“ค๊ฑฐ๊ฐ™์Œ

ํƒ€ ์‚ฌ์šฉ์ž ์ ‘์†์‹œ NET :: ERR_CERT_AUTHORITY_INVALID

  • ํ˜„์žฌ https ๋ฅผ ์œ„ํ•ด ์ ์šฉํ•œ ์ธ์ฆ์„œ๋Š” fake key๋ฅผ ์‚ฌ์šฉํ•ด ์ž„์‹œ๋ฐฉํŽธ์œผ๋กœ ์ ์šฉํ•œ ์ธ์ฆ์„œ์ž„

  • ์ด ์ธ์ฆ์„œ๋กœ ์ ‘์†ํ•˜๋ฉด ์ฃผ์†Œ์ฐฝ์— ๊ฒฝ๊ณ  ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋จ.

image

  • ์ง€๊ธˆ๊นŒ์ง€ ํ…Œ์ŠคํŠธํ•œ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์ด ๊ฐ€์งœ https๋„ ๋ฐ›์•„์คฌ์ง€๋งŒ, ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๋ณด์•ˆ์ƒํƒœ๊ฐ€ ๋‹ฌ๋ผ ์—๋Ÿฌ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ

https ์ ์šฉ์ด ๋˜์ง€์•Š์•„ https ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๋กœ ์š”์ฒญ์ด ์ „์†ก๋˜์ง€ ์•Š๋Š”๋‹ค

image

  • ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„  ํ”„๋ก ํŠธ์—”๋“œ ๋ฐฐํฌ์‹œ ์œ ํšจํ•œ SSL ์ธ์ฆ์„œ๋ฅผ ์ ์šฉ์‹œ์ผœ์ค˜์•ผํ•จ

๋…ธํŠธ๋ถ ํ•˜๋“œ ๊ต์ฒด ํ›„ setting

  • nodemon www ์‹คํ–‰ ์•ˆ๋จ
  • react-awesome-modal ์„ค์น˜ ์•ˆ๋๋Š”๋ฐ ๋ชจ๋‹ฌ์ฐฝ์€ ์ž˜ ๋ณด์ž„

์ด์ „๊ณผ ๋‹ค๋ฆ„์—†๊ฒŒ ์ž˜ ๋™์ž‘ํ•˜๋Š”๊ฑด ํ™•์ธํ•จ.
๋‚ด์ผ ์•ˆ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜ ํ•ด์„œ ์ด์Šˆ ๋‹ซ์•„์•ผ์ง•

ํšŒ์›๊ฐ€์ž…์‹œ alert

  1. restํ†ต์‹  ์‚ฌ์ „ ์˜ˆ์™ธ์ฝ”๋“œ ํ™•์ธํ•ด์„œ ID์ค‘๋ณต์ฒ˜๋ฆฌ ํ•˜๊ธฐ
  2. ํšŒ์›๊ฐ€์ž… ์‹คํŒจ์‹œ์—๋„ ํšŒ์›๊ฐ€์ž… alert์ฐฝ ๋œจ๋Š”๊ฑฐ ์ˆ˜์ •ํ•˜๊ธฐ

@Jerimo

image

ํšŒ์˜๋ก ์„ ํƒํ›„ ํšŒ์˜๋ก ์ด๋ฆ„

image

  • ํ˜„์žฌ ์ € ๋ถ€๋ถ„์ด ํ•ด๋‹น ํšŒ์˜๋ก ์ด๋ฆ„์œผ๋กœ ๋œจ์ง€ ์•Š์Œ => ํšŒ์˜๋ก ์ด๋ฆ„์œผ๋กœ ์ถœ๋ ฅํ•ด์ฃผ์„ธ์š”!

  • ํด๋ฆญ์‹œ ํ”„๋กœ์ ํŠธ ํŽ˜์ด์ง€๋กœ ์ด๋™๋จ => ํ”„๋กœ์ ํŠธ ํŽ˜์ด์ง€๊ฐ€ ์•„๋‹Œ ํšŒ์˜๋ก ์—ด๋žŒ ํŽ˜์ด์ง€๋กœ ์ด๋™

flog ๋ถ€ํ™œ์‹œํ‚ค๊ธฐ

๋„์ปค ์ด๋ฏธ์ง€๊ฐ€ ubuntu์—ฌ์„œ ์„œ๋ฒ„๊ฐ€ ๊ณ„์† ๋ป—๋Š”๊ฒƒ ๊ฐ™์Œ.
์ตœ์ ํ™” ํ•„์š”

dockerfile ๋นŒ๋“œ์‹œ ๋ฆฌ๋ˆ…์Šค์—์„œ librosa๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ์˜์กด์„ฑ ์„ค์น˜ํ•ด์ค˜์•ผํ•จ
์ฐธ๊ณ  : https://stackoverflow.com/questions/61235346/librosa-raised-oserrorsndfile-library-not-found-in-docker

[FE] ๊ฐ ํ™”๋ฉด ๋ณ„ ํ”ผ๋“œ๋ฐฑ

  • mypage: ํ”„๋กœ์ ํŠธ ๋ฆฌ์ŠคํŠธ ์ข€ ์œ„๋กœ ๋‹น๊ธฐ๊ณ  hover ๋ณด๋ผ์ƒ‰์œผ๋กœ + ํฐํŠธ ํ‚ค์šฐ๊ธฐ(๋ฏธํŒ… ๋ฆฌ์ŠคํŠธ๋„ hover ๋ณด๋ผ)
  • issue: ์„ค๋ช… ์ ๊ธฐ + ๋ฒ„ํŠผ ํ‚ค์šฐ๊ธฐ
  • modal: ์ „์ฒด์ ์œผ๋กœ ํฌ๊ธฐ ํ‚ค์šฐ๊ณ  ๋ฒ„ํŠผ๋„ + header๋ž‘ ๋‚ด์šฉ ํฐํŠธ ํฌ๊ธฐ ๋Œ€๋น„
  • project: ๋ฏธํŒ… ๋ฆฌ์ŠคํŠธ์— ์ œ๋ชฉ:ใ…‡ใ…‡ใ…‡ + ๋‚ ์งœ ๋ณผ๋“œ
  • rank: ์ฐธ์—ฌ๋„ ์‚ฐ์ • ๊ธฐ์ค€ + ๊ฐ์ • ๋Œ€ํ‘œ์ž์—์„œ, ์ด ๊ฐ์ •์œผ๋กœ ๋ฐœ์–ธ n๋ฒˆํ–ˆ๋‹ค ๊ทธ๋Ÿฐ๊ฑฐ
  • all: ๊ธฐ๋Šฅ ์ œ๋ชฉ์ด๋ž‘ ์„ค๋ช… ํฐํŠธ ์ข€๋งŒ ํ‚ค์šฐ๊ธฐ

Docker๋ฅผ ์ด์šฉํ•œ ๊ฐœ๋ฐœ/๋ฐฐํฌํ™˜๊ฒฝ ๊ตฌ์ถ•

ํ˜„์žฌ ์ƒํ™ฉ

  • ํ˜„์žฌ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ฒ„๋Š” ์ด 3๊ฐœ (React / Express / Flask)
  • React (https) ๋Š” ๋„์ปค ์ด๋ฏธ์ง€ํ™” ์™„๋ฃŒ
  • Flask ์„œ๋ฒ„๋„ koNLpy ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋„์ปค ๋‚ด๋ถ€์— JDK๋ฅผ ๊น”๊ณ  ์ด๋ฏธ์ง€ํ™” ์™„๋ฃŒ
  • ํ”„๋ก ํŠธ๋งŒ https๋ฉด ๋‹ค๋ฅธ ๋ฐฑ์—”๋“œ API ์„œ๋ฒ„์™€ ํ†ต์‹ ์ด ์•ˆ๋ ์ค„ ์•Œ์•˜์ง€๋งŒ ์ž˜ ๋์Œ.

To Do

  • Express ์„œ๋ฒ„๋ฅผ ์ด๋ฏธ์ง€ํ™” ํ•˜๊ธฐ
  • 3๊ฐœ์˜ ์„œ๋ฒ„ ๋ชจ๋‘ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์— ์˜ฌ๋ ค์„œ ์„œ๋กœ ํ†ต์‹  ํ…Œ์ŠคํŠธ
  • ํ…Œ์ŠคํŠธ ํ›„ docker-compose๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌํ™˜๊ฒฝ ๊ตฌ์ถ•
  • AWS์— ์˜ฌ๋ ค ํ…Œ์ŠคํŠธ

docker-compose ๋ช…๋ น์–ด

KoNLpy ๋„์ปค์— ์„ค์น˜

Before_dev ๋ ˆํฌ => FLOG ๋ ˆํฌ๋กœ ํ†ตํ•ฉ

  • Flask ์„œ๋ฒ„ ์ฝ”๋“œ ํ†ตํ•ฉ
  • ๊ฐ์ž ํ™˜๊ฒฝ์— ํŒŒ์ด์ฌ ๋ชจ๋“ˆ ํ†ต์ผ
  • ํšŒ์˜๋ฐฉ ์ž…์žฅ => ์ฐธ์—ฌ์ฝ”๋“œ ๋ฐ ๋น„๋””์˜ค css ์„ค์ •
  • ์‹ค์‹œ๊ฐ„ ํ†ต์‹  ํ…Œ์ŠคํŠธ

๋ฐฑ์—”๋“œ ์š”์ฒญ ๋ณด๋‚ด์—ฌ!!

ํ˜„์žฌ ์ฐธ์—ฌ์ž ๋ฆฌ์ŠคํŠธ ๋ฐ˜ํ™˜ ์šฐ์„  ๋จผ์ € ํ•ด์ฃผ์‹œ๊ณ 
๊ทธ๊ฑฐ ๋˜๋ฉด ํšŒ์˜๋ก ๋ชฉ๋ก [๋‚ ์งœ, ํšŒ์˜ ์ด๋ฆ„ (๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ฐธ์—ฌ์ž ๋ชฉ๋ก๊นŒ์ง€)] ํ•ด์ฃผ์‹œ๋ฉด ๋ ๊ฒƒ๊ฐ™์Šด๋‹ค


ํšŒ์˜๋ก์€ ์–ด๋–ป๊ฒŒ ๋ฐ›์•„์˜ฌ์ง€ ์ €๋„ ์˜ค๋Š˜ ์ข€ ์ƒ๊ฐํ•ด๋ณผ๊ฒŒ์š”

React ๊ธฐ๋ณธ ํฌํŠธ ์„ค์ •

์šฐ๋ฆฌ๊ฐ€ ๊ณ„์† ์‚ฌ์šฉํ•˜๋˜ ๋ฐฑ์—”๋“œ(Express) ํฌํŠธ๋Š” 3000๋ฒˆ์ด๋‹ค.

๊ธฐ์กด ํ”„๋ก ํŠธ์—”๋“œ(Vue) ํฌํŠธ๋Š” 8080๋ฒˆ์ด๋ผ ์„œ๋กœ ๊ฒน์น ์ผ์ด ์—†์—ˆ์ง€๋งŒ, ์ด๋ฒˆ์— React๋กœ ๋ฐ”๊พธ๋ฉด์„œ React ๊ธฐ๋ณธ ํฌํŠธ๊ฐ€ 3000๋ฒˆ์ด๋ผ ๊ฒน์น˜๊ฒŒ ๋์Œ.

๋•Œ๋ฌธ์— ์•„๋ž˜์ฒ˜๋Ÿผ package.json ์„ค์ •์„ ๋ฐ”๊ฟ”์คฌ์ง€๋งŒ, ์œˆ๋„์šฐ์˜ ์„ค์ •๊ณผ ๋ฆฌ๋ˆ…์Šค์˜ ์„ค์ •์ด ์„œ๋กœ ๋‹ฌ๋ผ ๋ฐฐํฌ์‹œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊น€.

# Linux ๊ธฐ๋ฐ˜
"start": "export PORT=8080 && react-scripts start
# Windows ๊ธฐ๋ฐ˜
"start": "set PORT=8080 && react-scripts start

๋”ฐ๋ผ์„œ frontend ํด๋” ํ•˜์œ„์— .env ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ์•ˆ์— ์•„๋ž˜์™€ ๊ฐ™์ด ์จ์ค€๋‹ค.
์ด๋ ‡๊ฒŒ ์“ฐ๋ฉด React๊ฐ€ 8080ํฌํŠธ๋กœ ๊ตฌ๋™๋จ

PORT=8080

์‚ฌ์šฉ์ค‘์ธ ํฌํŠธ ์ •๋ฆฌ

  • ํ”„๋ก ํŠธ์—”๋“œ(React) : 8080
  • ๋ฐฑ์—”๋“œ(Express) : 3000
  • ๋ฐฑ์—”๋“œ(Flask) : 5000

@Jerimo

ํ˜„์žฌ ์ž‘์—…์ค‘์ธ frontend ํด๋”์— ์œ„์™€ ๊ฐ™์ด ์„ค์ •ํ•ด์ฃผ์„ธ์š”~~~~
ํ™•์ธํ›„ ์ด์Šˆ close ๋ถ€ํƒ!

Flask SqlAlchemy connect ์—๋Ÿฌ

  • ํ”„๋ก ํŠธ์—์„œ Flask ์„œ๋ฒ„๋กœ ํšŒ์˜๋ก ์š”์•ฝ / ์›Œ๋“œํด๋ผ์šฐ๋“œ ๋ถ€๋ถ„ ์š”์ฒญ์„ ์ง€์†์ ์œผ๋กœ ๋ณด๋ƒˆ์„ ๋•Œ ์ƒ๊ธฐ๋Š” ์˜ค๋ฅ˜
  • ์˜ค๋ฅ˜ ๋ฐœ์ƒ์‹œ Flask ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜๋ฉฐ, ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋Š” ์š”์ฒญ์„ ๋ฐ›์ง€๋ชปํ•˜๊ฒŒ ๋จ... (ํ”„๋ก ํŠธ์—์„œ ๊ทธ๋ž˜ํ”„ ๋ Œ๋”๋ง์ด ์•„์˜ˆ์•ˆ๋จ)
  • DB pool (Queue pool) ์‚ฌ์ด์ฆˆ ๋ฌธ์ œ์ธ๊ฒƒ ๊ฐ™์Œ

image

์ฐธ๊ณ  ๋งํฌ

Video ์š”์†Œ์— CSS ์ ์šฉ

ํ˜„์žฌ ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ๋ฐฉ ์ž…์žฅ์‹œ ๋น„๋””์˜ค๊ฐ€ ๋งจ ์•„๋ž˜์— appendchild๋กœ ์ถ”๊ฐ€๋จ

๋น„๋””์˜ค ํฌ๊ธฐ์™€ ์œ„์น˜๋ฅผ grid์— ๋งž์ถฐ ์ƒ์„ฑํ•ด์ฃผ์–ด์•ผํ•จ.

image

์‹ค์‹œ๊ฐ„ ๊ฐ์ •๋ถ„์„ํ›„

์‹ค์‹œ๊ฐ„ ๊ฐ์ • ๋ถ„์„ ํ›„ DB์— log_infoํ…Œ์ด๋ธ”์— ๊ฐ์ •๊ณผ ํšŒ์˜๋ก์ด ์ €์žฅ๋˜๊ณ  30์ดˆ๋งˆ๋‹ค ํ‰๊ท  ๊ฐ์ •์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ๋˜ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ” ์„ค๊ณ„ํ•ด์•ผํ•จ

๋งˆ์ดํŽ˜์ด์ง€ ๊ตฌํ˜„

์šฐ์„  ํ”„๋ก ํŠธ์—์„  id / name / email ์ •๋ณด๋ฅผ jwt ํ˜•ํƒœ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์Œ.
๋งˆ์ดํŽ˜์ด์ง€ ๋ Œ๋”๋ง์„ ์œ„ํ•ด ํ”„๋ก ํŠธ๋Š” ๋ฐฑ์—๊ฒŒ 2๊ฐ€์ง€ ์š”์ฒญ.

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

  1. POST ๋กœ { user_id , project_name } ์„ ๋ณด๋ƒ„
  2. ๋ฐฑ์—์„œ๋Š” ์š”์ฒญ์„ ๋ฐ›๊ณ  project_info ํ…Œ์ด๋ธ”์— project_name์„ ์‚ฝ์ž…. (PK์ธ project_id๋Š” AI๋กœ ์ž๋™ ์ƒ์„ฑ)
  3. user_project ํ…Œ์ด๋ธ”์— ์ž๋™ ์ƒ์„ฑ๋œ project_id์™€ user_id๋ฅผ ํ•จ๊ป˜ ์‚ฝ์ž…

ํ•ด๋‹น ์‚ฌ์šฉ์ž๊ฐ€ ์†ํ•œ ํ”„๋กœ์ ํŠธ ๋ฆฌ์ŠคํŠธ

  1. GET ์œผ๋กœ user_id๋ฅผ ๋„ฃ์–ด ์š”์ฒญ
  2. ๋ฐฑ์—์„œ๋Š” ์š”์ฒญ์—์„œ id๋ฅผ ๊บผ๋‚ด์–ด(req.params) user_project ํ…Œ์ด๋ธ”์—์„œ ์กฐํšŒ
  3. ํ•ด๋‹น ์‚ฌ์šฉ์ž๊ฐ€ ์†ํ•œ ํ”„๋กœ์ ํŠธ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถ”์ถœ ํ›„ ์‘๋‹ต

[ERROR] ๋กœ๊ทธ์ธ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ํ—ค๋”์— ํ‘œ์‹œ๋˜๋Š” ๋‚ด์šฉ ๋ณ€๊ฒฝ -> ์ƒˆ๋กœ๊ณ ์นจ์„ ์ˆ˜๋™์œผ๋กœ ํ•ด์•ผ ๋ฐ”๋€œ

v-if๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์˜ accessToken์ด ์žˆ์œผ๋ฉด [Home, Mypage, Logout]์„,

์—†์œผ๋ฉด [Home, Login]์„ ๋ฟŒ๋ฆฌ๋Š”๋ฐ ๊ฐ’์ด ๋ณ€๊ฒฝ๋œ ํ›„์— ์ƒˆ๋กœ๊ณ ์นจ์„ ๋‹ค์‹œ ํ•ด์ค˜์•ผ ๋‚ด์šฉ์ด ๋ฐ”๋€œ.


์‹œ๋„:

  • this.$router.go(0), ๋ผ์šฐํ„ฐ์˜ AfterEach: ๋ถ€๋ถ„๊ณผ getAuth์—์„œ ์‚ฌ์šฉ => ๋ฌดํ•œ๋ฐ˜๋ณต
  • Header.vue์—์„œ isAuth=false ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€, getAuth์—์„œ ํ† ํฐ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๊ฐ’์„ ๋ณ€๊ฒฝํ›„ ๊ทธ ๊ฐ’์„ ๋ฆฌํ„ด => undefined์—๋Ÿฌ(๋ผ์ดํ”„์‚ฌ์ดํด๊ณผ ๊ด€๋ จ๋œ๊ฑฐ ๊ฐ™์€๋ฐ ์ƒ์„ฑ ์‹œ์— isAuth ๊ฐ’์„ ๋ชป ์ฝ์–ด์„œ ๊ทธ๋Ÿฐ๊ฐ€?)

todo- front

  • ๋Œ์•„๊ฐ€๊ฒŒ ๋งŒ๋“ค๊ธฐ
  • ๋ฐฑ์—”๋“œ์—์„œ ์š”์ฒญํ•œ ๋ถ€๋ถ„ํ•ด๊ฒฐ
  • store ๋Œ์•„๊ฐ€๊ฒŒ ํ•˜๊ธฐ
  • css ๋‹ค๋“ฌ๊ธฐ

To Do - ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

#20210510

  • ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ ํ”„๋ก ํŠธ์—์„œ ํ•˜๊ธฐ
  • ํšŒ์›๊ฐ€์ž… ์„ฑ๊ณต์‹œ ์„ฑ๊ณต ์•Œ๋ฆผ ๋œจ๊ณ  ๋กœ๊ทธ์ธ ํ™”๋ฉด์œผ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ
  • ๋กœ๊ทธ์ธ ๊ตฌํ˜„ ์‹œ์ž‘

  • ๋งˆ์ดํŽ˜์ด์ง€๋Š” ๋กœ๊ทธ์ธ ํ›„์—๋งŒ ๋ณด์ด๋„๋ก!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.