π νλ‘μ νΈ μ§νκΈ°κ° : 2022/07/18 ~ 2022/08/19
π€ FE: μ€νΈμ€, νμ±λͺ©
πΌ BE: κΉμμ§(νμ₯), κΉλμ, μ΄μ°μ, μ΅μ§μ
π½ νλ‘μ νΈ UCC μμ 보λ¬κ°κΈ°
γ
γ
-
κ°μ λͺ©λ‘
-
κ°μ μμΈ
-
λΌμ΄λΈ κ°μ : WebRTC κΈ°μ μ ν΅ν΄μ κ°μ¬ νλ©΄κ³Ό μμ μ νλ©΄μ λΉκ΅νλ©° μΆ€μ λ°°μΈ μ μμ΅λλ€.
-
λ Ήν κ°μ: λ Ήν κ°μλ₯Ό λ€μ μ μκ³ , μ¬μ©μμ μΉ΄λ©λΌλ₯Ό on/off νλ©° μΆ€μ λ°°μΈ μ μμ΅λλ€.
-
μμ νλ©΄
-
κ²μ νλ μ΄: μ€κ°μ μ λ΅ μμκ³Ό μ¬μ©μμ λμμ λΉκ΅νμ¬, μ μκ° μ± μ λ©λλ€.
-
μ€λ΅μ€ λͺ©λ‘: λ€λ₯Έ νμλ€μ μ€λ΅μ€ (μ§§μ λμμ) λ€μ λ³Ό μ μμΌλ©°, μΌμ£ΌμΌ λμ κ°μ₯ λ§μ΄ μ λ‘λ λ ν΄μνκ·Έλ€μ λ³Ό μ μμ΅λλ€.
-
μ€λ΅μ€ λ±λ‘: μνλ λ Έλλ‘ λ°°κ²½ μμ μΌλ‘ μ€μ νμ¬ μμμ λ Ήν λ° μ λ‘λλ₯Ό ν μ μκ³ , 미리 λ Ήνλ μμμ μ λ‘λν μ μμ΅λλ€.
- μμ μ νλ‘νμ λ³Ό μ μμΌλ©°, κ°μ/κ²μ/μ€λ΅μ€λ₯Ό ν΅ν΄ μ»μ κ²½νμΉλ₯Ό λ§€λ¬μ ννλ‘ λ³Ό μ μμ΅λλ€.

γ
-
OS
- Windows 10
-
Front
- HTML5, CSS3, JavaScript(ES6)
- Node.js 16.16.0
- React 17.0.2
-
Back
- Spring Boot 2.7.2
- Spring Framework 5.3.22
- Python 3.7
- FastAPI 0.79
- jdk 1.8
-
DB
- MySQL 8.0.29
-
WebRTc
- openVidu
-
IDE
- vscode 1.70
- IntelliJ 2022.1.3
-
- Amazon EC2 - Ubuntu 20.04
- Nginx - 1.18.0
-
νμ λꡬ
- Git, Jira, Notion
γ
γ
- μ½μ¬μΈ μ μ¬λ λ° tensorFlowλ₯Ό μ΄μ©ν μμΈ μ μ¬λ κ³μ° μ€νμμ€λ₯Ό νμ©ν κ²μ μλΉμ€ μ μ
- μ€μκ° λμ μΈ‘μ μ μν μΉμμΌ ν΅μ & μ νλ κ°μ μ μν μμμ FPS μ μ²λ¦¬ λ° μΉμμΌ λκΈ°ν
- WebRTCλ₯Ό μ΄μ©ν μ€μκ° κ°μ μλΉμ€
γ
π‘ gitμ μλ νλ‘μ νΈμ source codeλ₯Ό ν΄λ‘ λ°μ΅λλ€# git clone
$ git clone https://github.com/hula-la/chukka.git
$ cd chukka-
Node.js 16.16.0
-
jdk 1.8
-
Python 3.7
# 1. λλ ν 리 μ΄λ
$ cd backend-java/
# 2. μλμ application-hide.yml μμ μ°Έκ³ ν΄μ μΆκ°
# 3. λΉλ
$ ./gradlew build
$ java -jar build/libs/ssafy-web-project-1.0-SNAPSHOT.jar- src/resources μ
application-hide.ymlμμ± (**μΈ λΆλΆ μ±μμ)
spring:
servlet:
multipart:
max-file-size: 50MB
max-request-size: 50MB
mail:
host: smtp.naver.com
port: 465
username: **********
password: ****
properties:
mail.smtp.auth: true
mail.smtp.ssl.enable: true
mail.smtp.ssl.trust: smtp.naver.com
jpa:
hibernate:
naming:
implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
ddl-auto: update
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL57Dialect
format_sql: true
show-sql: false
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
password: ******
username: ******
url: jdbc:mysql://localhost:3306/***?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=true
data:
web:
pageable:
one-indexed-parameters: 'true'
mvc:
throw-exception-if-no-handler-found: 'true'
devtools:
livereload:
enabled: 'true'
resources:
static-locations: classpath:/dist/
add-mappings: 'false'
cloud:
aws:
s3:
bucket: *****
stack:
auto: false
region:
static: ap-northeast-2
credentials:
access-key: ********
secret-key: ************
instanceProfile: trueπ‘ λ€μ΄λ°μ source code λ‘ build ν΄λλ₯Ό μμ±ν©λλ€.
# 1. λλ ν 리 μ΄λ
$ cd frontend/
# 2. λΌμ΄λΈλ¬λ¦¬ μ€μΉ
$ npm i
# 3. μλμ .env νμΌ μμ μ°Έκ³ ν΄μ μΆκ°
# 4. μ€ν
$ npm build-
/frontend/ νμμ
.envνμΌ μμ±# .env REACT_APP_S3_URL_DANCE = 'https://***.s3.ap-northeast-2.amazonaws.com' REACT_APP_S3_URL_CHUKKA = 'https://***.s3.ap-northeast-2.amazonaws.com'
- κ°μ νκ²½ μμ± & νμ±ν
# venv λΌλ μ΄λ¦μ κ°μνκ²½ μμ±
$ python -m venv venv
# κ°μνκ²½ νμ±ν
$ source venv/Scripts/activate- fastAPI μ€νμ μν λΌμ΄λΈλ¬λ¦¬ μ€μΉ
$ cd backend-fastAPI/
# FastAPI
$ pip install fastapi uvicorn
# gunicorn: λ©ν° μ€λ λ (λ€μμ μ¬μ©μκ° μ¬μ©ν μ μκΈ° λλ¬Έμ, μλ²μμ μ¬μ©)
$ pip install gunicorn # λ‘컬μμ μ€μΉ λΆνμ- λͺ¨μ μΈμμ νμν λΌμ΄λΈλ¬λ¦¬ μ€μΉ λ° νκ²½ ꡬμΆ
# νμ λΌμ΄λΈλ¬λ¦¬ μ€μΉ
$ pip install -r requirements.txt
# μ λͺ
λ ΉμΌλ‘ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ€μΉν΄λ λͺ¨λ μλ¬κ° λ°μνλ€λ©΄
$ pip install swig
$ pip install pandas
$ pip install tf-slim
$ pip install sklearn
$ pip install request
$ pip install opencv-python
$ pip install tensorflow
$ pip install tqdm
$ pip install scipy
$ pip install psutil
$ pip install pycocotools
# swig μ€μ
$ cd tf_pose/pafprocess
$ swig -python -c++ pafprocess.i && python setup.py build_ext --inplace
# tf_slim μ€μΉ
$ cd ../../
$ git clone https://github.com/google-research/tf-slim.git
# tensorflow κ·Έλν νμΌ λ€μ΄
$ cd models/graph/cmu
$ bash download.sh
$ cd ../../..- μ€ν
$ uvicorn prac2_main:app --reload









