Skip to content

chojinie/e-moji

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation

IGE MOJI?

AI๊ฐ€ ์–ผ๊ตด ํ‘œ์ •์„ ๋ถ„์„ํ•˜์—ฌ ์„ ํƒํ•œ ์ด๋ชจ์ง€ ํ…œํ”Œ๋ฆฟ์— ๋งž๋Š” ํ‘œ์ •์„ ์‚ฌ์ง„์— ๋ถ™์—ฌ๋„ฃ์–ด์ฃผ๋Š” ์„œ๋น„์Šค



Main Flow

team_e_IGEMOJI_Flow

  • Main Feature : ์›ํ•˜๋Š” ์ด๋ชจ์ง€ ํ…œํ”Œ๋ฆฟ ์„ ํƒ, ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ ์ด๋ฏธ์ง€์† ์‚ฌ๋žŒ์˜ ํ‘œ์ •์„ AI๊ฐ€ ๋ถ„์„ํ•˜์—ฌ ๊ฒฐ๊ณผ๋กœ ๋„์ถœ
  • Additional Feature : ์›ํ•˜๋Š” ์ด๋ชจ์ง€ ํ…œํ”Œ๋ฆฟ์„ ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ (๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋“ค๊ณผ์˜ ๊ณต์œ )

Features

  • Main Page

  • Login

  • Emoji Select & Use

  • Emoji Create

  • Top3 Ranking

System Architecture

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-02-01 แ„‹แ…ฉแ„’แ…ฎ 1 39 00

  • 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) : ๋ฌด๊ฒŒ๊ฐ€ ๊ฐ€๋ฒผ์šด ํ”„๋ ˆ์ž„์›Œํฌ
      • ๊ฐ๊ฐ์˜ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์žฅ์ ์„ ์ƒํ™ฉ์— ์•Œ๋งž๊ฒŒ ์‚ฌ์šฉ

Tech Stack

Dev-Ops
Frontend
Backend
DB
AI
Monitoring
Others



Backend API

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-02-02 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 2 46 07

users api

  • api/v1/users/

    • GET : ์•„์ด๋”” ์ค‘๋ณต ํ™•์ธ
    • POST : ํšŒ์›๊ฐ€์ž…
  • api/v1/users/auth

    • POST : ๋กœ๊ทธ์ธ
  • api/v1/users/mypage/{case}

    • GET : ๋งˆ์ดํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ ์กฐํšŒ

      case1 : ๋‚ด๊ฐ€ ํ–ˆ๋˜ ์ด๋ชจ์ง€
      case2 : ๋‚ด๊ฐ€ ๋งŒ๋“  ์ด๋ชจ์ง€

faces api

  • /api/v1/faces/tasks/

    • POST : ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ ์‚ฌ์ง„ ๋ถ„์„ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ
  • /api/v1/faces/tasks/{task_id}

    • GET : task id ๋กœ ๋ถ„์„ ์™„๋ฃŒ ์—ฌ๋ถ€ ํ™•์ธ ๋ฐ front ์—์„œ polling
  • /api/v1/faces/ranking

    • GET : Emoji ๋žญํ‚น ์กฐํšŒ

emojis api

  • /api/v1/emojis/

    • POST : ์‚ฌ์šฉ์ž์˜ ์ด๋ชจ์ง€ ์ถ”๊ฐ€
    • GET : id ์— ๋งž๋Š” emoji ์ •๋ณด ์กฐํšŒ
  • /api/v1/emojis/pages/{page_number}

    • GET : ๋ฉ”์ธ ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋Š” emoji ๋ฐ์ดํ„ฐ, ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ ์šฉ

AI

  • OpenCV

Untitled

AI

  • ์–ผ๊ตด๊ณผ ๊ฐ์ • ์ธ์‹์„ ์œ„ํ•˜์—ฌ ํŒŒ์ด์ฌ ํŒจํ‚ค์ง€์˜ FER๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ๋”ฅ๋Ÿฌ๋‹๊ณผ OpenCV ๊ธฐ๋Šฅ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์ด๋ฏธ์ง€์—์„œ ์ธ์‹ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰

  • Haar Cascade classifier ๋˜๋Š” MTCNN(Multi-task Cascaded Convolutional Networks)์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ •์— ํ• ๋‹น๋œ ๊ฐ’์˜ ๋ฐฐ์—ด ํš๋“

  • ์ด๋ฅผ ํ†ตํ•œ dominantํ•œ ๊ฐ์ • ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ„๋„๋กœ ์ถ”์ถœ, ํ‘œ์ •์— ๋งž๋Š” ์ด๋ชจ์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜ด

  • Rembg ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

image segmentation(์ด๋ฏธ์ง€ ๋ถ„๋ฆฌ) ๊ณผ์ •์„ ํ†ตํ•ด ๊ฐ€์‹œ์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค.



Dataset

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-02-03 แ„‹แ…ฉแ„’แ…ฎ 8 01 02

JWT

  • used_library

    • djangorestframework-jwt
  • JWT_Settings.py

    • set JWTโ€™s default_settings

      แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-02-02 แ„‹แ…ฉแ„’แ…ฎ 5 38 14
  • Bcrypt : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์œ ์ €์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ๋•Œ, ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ๊ฐ™์ด ์•”ํ˜ธํ™”๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” password hashing ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

  • Redux : redux ๋ฅผ ํ™œ์šฉํ•˜์—ฌ access-token ์„ ๋ณด๊ด€

Monitoring

Prometheus

  • api ์š”์ฒญ๊ณผ ๊ทธ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ Metric ๋ฐ์ดํ„ฐ๋ฅผ Prometheus ์„ ํ†ตํ•ด ์ˆ˜์ง‘
  • ํ•ด๋‹น ๋…ธ๋“œ์˜ Metric data

183143866-e2bb4650-3098-4f79-8e45-c3eb89ef032b

Grafana

  • Prometheus ๋กœ ์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ Grafana ๋ฅผ ํ†ตํ•ด ์‹œ๊ฐํ™” ํ•œ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-01-26 แ„‹แ…ฉแ„’แ…ฎ 2 41 27

#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/

About

2023-01 Team project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 58.0%
  • HTML 25.1%
  • Python 16.8%
  • Other 0.1%