AI๊ฐ ์ผ๊ตด ํ์ ์ ๋ถ์ํ์ฌ ์ ํํ ์ด๋ชจ์ง ํ ํ๋ฆฟ์ ๋ง๋ ํ์ ์ ์ฌ์ง์ ๋ถ์ฌ๋ฃ์ด์ฃผ๋ ์๋น์ค
- Main Feature : ์ํ๋ ์ด๋ชจ์ง ํ ํ๋ฆฟ ์ ํ, ์ฌ์ฉ์๊ฐ ์ ๋ก๋ํ ์ด๋ฏธ์ง์ ์ฌ๋์ ํ์ ์ AI๊ฐ ๋ถ์ํ์ฌ ๊ฒฐ๊ณผ๋ก ๋์ถ
- Additional Feature : ์ํ๋ ์ด๋ชจ์ง ํ ํ๋ฆฟ์ ์์ฑ ๋ฐ ์ญ์ (๋ค๋ฅธ ์ฌ์ฉ์๋ค๊ณผ์ ๊ณต์ )
- Main Page
- Login
- Emoji Select & Use
- Emoji Create
- Top3 Ranking
-
Frontend tech
-
MUI
: ์ธํฐ๋ํฐ๋ธ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ์ React UI๋ผ์ด๋ธ๋ฌ๋ฆฌ-
๋์ ์์ค์ UI๋ฅผ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ๊ฐ๋ฐํ ์ ์๋ UI ๋๊ตฌ
-
๋ฆฌ์กํธ์ ๋์ ํธํ์ฑ๊ณผ ๋์ ์์ค์ ํ๋ฆฌํฐ๋ฅผ ์ ๊ณต
-
-
Redux
: Javascript application๋ค์ state(์ํ)๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์ ์ฅ์)-
์์ฌ์ด state ๊ด๋ฆฌ
-
ํธ๋ฆฌํ ์น์ฌ์ดํธ ์ํ ํ์ธ
-
-
-
Backend tech
-
RabbitMQ
: AMQP(Advanced Message Queuing Protocol)๋ฅผ ๋ฐ๋ฅด๋ ์คํ์์ค ๋ฉ์ธ์ง ๋ธ๋ก์ปค- ์ ์ฐํ ๋ผ์ฐํ ๊ท์น ์ ์ฉ ๊ฐ๋ฅ
- ๋ฉ์์ง ์ ์ก ํ์ด๋ฐ ์ ์ด(๋ฉ์์ง ๋ง๋ฃ ๋๋ ๋ฉ์์ง ์ง์ฐ ์ ์ด)
- ๋จ์ํ๊ฒ ์๋น์ ๊ธฐ๋ฅ ๊ตฌํ ๊ฐ๋ฅ
-
Celery
: ๋ถ์ฐ ๋ฉ์์ง ์ ๋ฌ์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ ๋น๋๊ธฐ ์์ ํ(Asynchronous Task/Job Queue) - ์ต์ ํ ์ค์ (RabbitMQ, librabbitmq ๋ฑ)์ ํตํด ๋น์ฝ์ ์ธ ์์ ์ฒ๋ฆฌ ์ ๊ณต - ํ์ฅ์ฑ์ด ๋งค์ฐ ๋ฐ์ด๋ ๊ฑฐ์ ๋ชจ๋ ๋ถ๋ถ์ ์ปค์คํ ํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ( serializer, compression schemes, logging, schedulers, consumers, producers ๋ฑ) -
Mainserver(Django)
์AI-server(Flask)
์ ๋ถ๋ฆฌ- MainServer(Django) : ํ๋์ ํ๋ก์ ํธ ๋ด์ ๋ค์์ ์ฑ์ ์ด์ํ ์ ์๋ โ๋ถํ โ์ ํน์ง์ด ์์ผ๋ฉฐ, ์์ฒด ORM์ ์ ๊ณต
- AI-Server(Flask) : ๋ฌด๊ฒ๊ฐ ๊ฐ๋ฒผ์ด ํ๋ ์์ํฌ
- ๊ฐ๊ฐ์ ํ๋ ์์ํฌ์ ์ฅ์ ์ ์ํฉ์ ์๋ง๊ฒ ์ฌ์ฉ
-
Dev-Ops | |
---|---|
Frontend | |
Backend | |
DB | |
AI | |
Monitoring | |
Others |
-
api/v1/users/
GET
: ์์ด๋ ์ค๋ณต ํ์ธPOST
: ํ์๊ฐ์
-
api/v1/users/auth
POST
: ๋ก๊ทธ์ธ
-
api/v1/users/mypage/{case}
GET
: ๋ง์ดํ์ด์ง ๋ฐ์ดํฐ ์กฐํ
case1 : ๋ด๊ฐ ํ๋ ์ด๋ชจ์ง
case2 : ๋ด๊ฐ ๋ง๋ ์ด๋ชจ์ง
-
/api/v1/faces/tasks/
POST
: ์ฌ์ฉ์๊ฐ ์ ๋ก๋ํ ์ฌ์ง ๋ถ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ
-
/api/v1/faces/tasks/{task_id}
GET
: task id ๋ก ๋ถ์ ์๋ฃ ์ฌ๋ถ ํ์ธ ๋ฐ front ์์ polling
-
/api/v1/faces/ranking
GET
: Emoji ๋ญํน ์กฐํ
-
/api/v1/emojis/
POST
: ์ฌ์ฉ์์ ์ด๋ชจ์ง ์ถ๊ฐGET
: id ์ ๋ง๋ emoji ์ ๋ณด ์กฐํ
-
/api/v1/emojis/pages/{page_number}
GET
: ๋ฉ์ธ ํ๋ฉด์ ํ์๋๋ emoji ๋ฐ์ดํฐ, ํ์ด์ง๋ค์ด์ ์ ์ฉ
- OpenCV
-
์ผ๊ตด๊ณผ ๊ฐ์ ์ธ์์ ์ํ์ฌ ํ์ด์ฌ ํจํค์ง์ FER๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ๋ฅ๋ฌ๋๊ณผ OpenCV ๊ธฐ๋ฅ์ ๊ฒฐํฉํ์ฌ ์ด๋ฏธ์ง์์ ์ธ์ ๊ธฐ๋ฅ์ ์ํ
-
Haar Cascade classifier ๋๋ MTCNN(Multi-task Cascaded Convolutional Networks)์ ์ฌ์ฉํ์ฌ ๊ฐ์ ์ ํ ๋น๋ ๊ฐ์ ๋ฐฐ์ด ํ๋
-
์ด๋ฅผ ํตํ dominantํ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋๋ก ์ถ์ถ, ํ์ ์ ๋ง๋ ์ด๋ชจ์ง๋ฅผ ๋ถ๋ฌ์ด
-
Rembg ๋ผ์ด๋ธ๋ฌ๋ฆฌ
image segmentation(์ด๋ฏธ์ง ๋ถ๋ฆฌ) ๊ณผ์ ์ ํตํด ๊ฐ์์ฑ์ ๋์ฌ์ค๋ค.
-
used_library
djangorestframework-jwt
-
JWT_Settings.py
-
Bcrypt : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ ์ ์ ๋ณด๋ฅผ ์ ์ฅํ ๋, ๋น๋ฐ๋ฒํธ์ ๊ฐ์ด ์ํธํ๊ฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๋ค๋ฃฐ ์ ์๋๋ก ํด์ฃผ๋ password hashing ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
-
Redux : redux ๋ฅผ ํ์ฉํ์ฌ access-token ์ ๋ณด๊ด
- api ์์ฒญ๊ณผ ๊ทธ ๊ฒฐ๊ณผ์ ๋ํ Metric ๋ฐ์ดํฐ๋ฅผ Prometheus ์ ํตํด ์์ง
- ํด๋น ๋ ธ๋์ Metric data
- Prometheus ๋ก ์์งํ ๋ฐ์ดํฐ๋ฅผ Grafana ๋ฅผ ํตํด ์๊ฐํ ํ๋ค.
#Members of Team-E
์ด๋ฆ | ๊ฐ๋ฐ๋ถ์ผ | ์๊ฐํ์ด์ง |
---|---|---|
์ด์ ์ฐ | Front-end, Back-end, Devops | https://github.com/RayLee-Kor |
๋ฐ๊ฒฝ์ | Front-end, Devops | https://github.com/devGEP |
์ ์๋ฆฐ | Front-end | https://github.com/Jungyell |
๊น๋ํฌ | Back-end | https://github.com/Dan2er |
๋ฐ์์ค | Back-end, Devops | https://github.com/velyvelylovely |
์กฐํ์ง | AI | https://github.com/chojinie/ |