An open API service indexing awesome lists of open source software.

https://github.com/minuukang/chamchamcham

๐Ÿ‘ฝ๏ธ ์›น์บ ์œผ๋กœ ์ฆ๊ธฐ๋Š” ์ฐธ-์ฐธ-์ฐธ! ๊ฒŒ์ž„
https://github.com/minuukang/chamchamcham

faceapi-js hook indexeddb react styled-components typescript

Last synced: about 1 year ago
JSON representation

๐Ÿ‘ฝ๏ธ ์›น์บ ์œผ๋กœ ์ฆ๊ธฐ๋Š” ์ฐธ-์ฐธ-์ฐธ! ๊ฒŒ์ž„

Awesome Lists containing this project

README

          

# ์ฐธ์ฐธ์ฐธ!

![์ฐธ์ฐธ์ฐธ ์‹œ์—ฐ](./.github/example.png)

์‹œ์—ฐ์˜์ƒ : https://youtu.be/6rrOmDgrmoQ

์‚ฌ์ดํŠธ์ฃผ์†Œ : https://chamchamcham.minukang.now.sh

์ˆญ์‹ค๋Œ€ํ•™๊ต ๋ฏธ๋””์–ด๊ฒฝ์˜ํ•™๊ณผ ์ œ1ํšŒ ๋””์ง€ํ„ธ ์ปจํ…์ธ  ๊ฒฝ์ง„๋Œ€ํšŒ ์ถœํ’ˆ ์ž‘ํ’ˆ

https://fun.ssu.ac.kr/ko/program/all/view/1304/description

## ํŒ€์›

ํŒ€๋ช…: (ๅ‰)๋””์•ค๋””๋žฉ

* ๊ฐ•๋ฏผ์šฐ (https://github.com/MinuKang) - Front-End Develop
* ๋…ธ์ค€ํ˜ (https://github.com/njhyuk) - UI/UX Design

## ๊ธฐ์ˆ ์Šคํƒ

* React (only use hook)
* Typescript
* Styled-Components
* Faceapi-js (Tensorflow)
* Localforage (IndexedDB)

## ๊ธฐ๋Šฅ๊ตฌํ˜„

* `navigator.mediaDevices.getUserMedia` ๋ฅผ ์‚ฌ์šฉํ•œ ์นด๋ฉ”๋ผ ์ ‘๊ทผ
* faceapi-js ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด๋ฉ”๋ผ์˜ ๋ฐ์ดํ„ฐ์—์„œ ์–ผ๊ตด ์ธ์‹
* React hook์˜ state์™€ ref๋ฅผ ์ ์ ˆํžˆ ํ˜ผ์šฉํ•˜์—ฌ ํ›…์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์–ผ๊ตด ์ธ์‹ ์ƒํƒœ ๋””์ŠคํŒจ์น˜
* ์‚ฌ์šด๋“œ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์–ธ์ œ๋“ ์ง€ Speak(๋งํ•˜๊ธฐ), Play(์žฌ์ƒ), Stop(์ •์ง€)์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„
* ๋ฉ”์ธํŽ˜์ด์ง€
* ์–ผ๊ตด์ด ์ธ์‹๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์‹œ์ž‘๋ฒ„ํŠผ ๋น„ํ™œ์„ฑํ™”
* ๊ฐ€์žฅ ์ธ์‹์ด ์ž˜๋˜๋Š” ์–ผ๊ตด๋กœ ๊ฒŒ์ž„ ์‹œ์ž‘
* ์–ผ๊ตด์ธ์‹ ํŽ˜์ด์ง€
* IndexedDB์— ํ•™์Šต๋œ ์–ผ๊ตด ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ์ง„ํ–‰๋˜๋Š” ํŽ˜์ด์ง€
* ์–ผ๊ตด๊ณผ ์ฝ”์˜ ์œ„์น˜๋ฅผ ๊ธฐ์ค€ํ•˜์—ฌ ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ์–ผ๊ตด์„ ํ•™์Šต
* ์ด๋ฅผ ํ†ตํ•ด ๊ณ ๊ฐœ๋ฅผ ๋Œ๋ ค๋„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ฐ™์€ ์ธ๋ฌผ์ž„์„ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋จ
* ํ•™์Šต๋œ ์–ผ๊ตด ๋ฐ์ดํ„ฐ๋Š” IndexedDB์— ์ €์žฅํ•˜์—ฌ ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•  ๋•Œ ๋งˆ๋‹ค ์‚ฌ์šฉ
* ๊ฒŒ์ž„์ง„ํ–‰ ํŽ˜์ด์ง€
* 3์ดˆ ์ด์ƒ ๊ณ ๊ฐœ๋ฅผ ๋Œ๋ฆฌ์ง€ ์•Š์„ ๊ฒฝ์šฐ ์•ˆ๋‚ด ๋ฉ”์„ธ์ง€ ์ถœ๋ ฅ
* ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ณ ๊ฐœ๋ฅผ ๋Œ๋ฆฐ ๋ฐฉํ–ฅ์„ ์ธ์‹ํ•˜์—ฌ ์ปดํ“จํ„ฐ๋Š” ๋žœ๋ค์œผ๋กœ ๋ฐฉํ–ฅ์„ ๊ฒฐ์ •
* ์ฒซํŒ์—๋Š” 95% ํ™•๋ฅ ๋กœ ํ”Œ๋ ˆ์ด์–ด ์Šน๋ฆฌ, ์ดํ›„ 5% ์”ฉ ๊นŽ์ด๋ฉฐ 10๋ฒˆ์งธ ํŒ๋ถ€ํ„ฐ๋Š” 50%์˜ ํ™•๋ฅ ์„ ์œ ์ง€
* ์ด๊ธฐ๋ฉด ์ ์ˆ˜ ์—…๋ฐ์ดํŠธ์™€ ํ•จ๊ป˜ ์‹ค๊ธฐ๊ฐ„์œผ๋กœ ๋žญํ‚น์„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์–ด๋А ์ •๋„ ์ด๊ธฐ๋ฉด ์ˆœ์œ„๊ถŒ์— ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ๋น ๋ฅด๊ฒŒ ํ™•์ธ๊ฐ€๋Šฅ
* ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ด๊ธธ ๋•Œ 8๊ฐ€์ง€์˜ ๋žœ๋คํ•œ ์‘์› ์†Œ๋ฆฌ ์ถœ๋ ฅ
* ๊ฒŒ์ž„์ข…๋ฃŒ ํŽ˜์ด์ง€
* ๋žญํ‚น๊ณผ ํ•จ๊ป˜ ์ž์‹ ์˜ ๋žญํ‚น์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ตฌํ˜„
* ๋ฉ”๋‹ฌ๊ถŒ์— ๋“ค ๊ฒฝ์šฐ ์‘์›์˜ ์†Œ๋ฆฌ ์ถœ๋ ฅ, ์•„๋‹ ๊ฒฝ์šฐ ๋น„์›ƒ๋Š” ์†Œ๋ฆฌ ์ถœ๋ ฅ
* ๋žญํ‚น ํŽ˜์ด์ง€
* IndexedDB์— ์ €์žฅ๋œ ํ”Œ๋ ˆ์ด์–ด๋“ค์˜ ์ˆœ์œ„๋ฅผ ์ถœ๋ ฅ
* ๊ฒŒ์ž„์‹œ์ž‘ ๋‹น์‹œ์˜ ํ™”๋ฉด์˜ ์–ผ๊ตด ๋ถ€๋ถ„๋งŒ ์ธ๋„ค์ผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœํ•„ ์‚ฌ์ง„์œผ๋กœ ์ง€์ •
* ํ”„๋กœํ•„ ์‚ฌ์ง„์„ faceapi-js๋กœ ๋ถ„์„ํ•˜์—ฌ ๋‚˜์ด, ํ‘œ์ •, ์„ฑ๋ณ„์„ ํŒ๋‹จํ•˜๊ณ  ์ ์ ˆํ•œ ์ด๋ฆ„์„ ๋ถ€์—ฌ