Skip to content

KOBOT-13/CLIVING-BACK

Repository files navigation

App Logo

CLIVING Setup ๋ฌธ์„œ

์š”๊ตฌ์‚ฌํ•ญ

Python 3.11.9
Django == 5.0.3
moviepy==1.0.3
pillow==10.3.0
mediapipe==0.10.14
opencv-contrib-python==4.9.0.80
opencv-python == 4.9.0.80
yolov8
ultralytics
psycopg2-binary==2.9.9 # postgreSQL 16.2

์„ค์น˜ ๋ฐ ์‹คํ–‰ ๋ฐฉ๋ฒ•

๊ฐ€์ƒํ™˜๊ฒฝ ์„ธํŒ…

virtualenv venv

๋˜๋Š”

python -m venv venv

๋ช…๋ น์–ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค.

source venv/bin/activate

๋ช…๋ น์–ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ํ™œ์„ฑํ™” ์‹œ์ผœ์ค๋‹ˆ๋‹ค.

secrets.json ์„ค์น˜ํ•˜๊ธฐ

.../cliving/page/

์œ„ ์œ„์น˜์— secrets.json ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

postgreSQL DB ์„ค์น˜

https://www.postgresql.org/download/ # ์›ํ•˜๋Š” ๋ฒ„์ „์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
# ์„ค์น˜ ๊ณผ์ •์—์„œ ์ž…๋ ฅํ•˜๋Š” superuser์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž˜ ๊ธฐ์–ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์›น์—์„œ postgreSQL์„ ์„ค์น˜ํ•˜๊ณ  ์ดˆ๊ธฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์„ค์น˜๋œ SQL Shell์„ ์‹คํ–‰ํ•˜์—ฌ ์—”ํ„ฐ๋ฅผ ๋ช‡๋ฒˆ ๋ˆ„๋ฅธ ๋’ค, ํŒจ์Šค์›Œ๋“œ ์ž…๋ ฅ๋ž€์— ์ดˆ๊ธฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

postgreSQL๊ณผ ์žฅ๊ณ  ์—ฐ๋™ํ•˜๊ธฐ

CREATE DATABASE ('๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„');
CREATE USER ('์œ ์ €๋ช…') WITH PASSWORD ('๋น„๋ฐ€๋ฒˆํ˜ธ');
ALTER ROLE ('์œ ์ €๋ช…') SET client_encoding TO 'utf8';
ALTER ROLE ('์œ ์ €๋ช…') SET default_transaction_isolation TO 'read committed';
ALTER ROLE ('์œ ์ €๋ช…') SET TIME ZONE 'Asia/Seoul';
GRANT ALL PRIVILEGES ON DATABASE data_planet_db TO root;
ALTER USER ('์œ ์ €๋ช…') SUPERUSER;

secrets.json ํŒŒ์ผ์— ์„ค์ •๋˜์–ด ์žˆ๋Š” '๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„', '์œ ์ €๋ช…', '๋น„๋ฐ€๋ฒˆํ˜ธ'๋ฅผ ๋ณด๊ณ 
์œ„ ๋ช…๋ น์–ด๋ฅผ ์ฐจ๋ก€๋กœ SQL Shell ์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

postgreSQL์ด ์ž‘๋™์„ ๋ฉˆ์ถ”์—ˆ์„ ๊ฒฝ์šฐ(Windows)

์œˆ๋„์šฐ ๋กœ๊ณ  ์šฐํด๋ฆญ > ์ปดํ“จํ„ฐ ๊ด€๋ฆฌ > ์„œ๋น„์Šค ๋ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ > ์„œ๋น„์Šค > postgresql-x64-16 ์„ ์ฐพ์•„ ์šฐํด๋ฆญ > ์‹œ์ž‘

์œˆ๋„์šฐ ์ตœ์ ํ™” ํ”„๋กœ๊ทธ๋žจ ๋“ฑ์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ, ์ฝ˜์†”์ด ๊บผ์ง€๋Š” ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.
๊บผ์ง€๋ฉด python manage.py runserver๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์˜ค๋ฅ˜ ๋ฐœ์ƒ์‹œ ์ž˜ ์ผœ์ฃผ๋„๋ก ํ•ฉ์‹œ๋‹ค.

์˜์กด์„ฑ ํŒจํ‚ค์ง€ ์„ค์น˜

pip install -r requirements.txt

๋™๋ด‰๋˜์–ด์žˆ๋Š” requirements.txt๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์˜์กด์„ฑ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜์—ฌ ์ค๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค postgreSQL ์„ค์น˜ ๋ฐ Django ์—ฐ๋™

https://seokii.tistory.com/199 
URL ์ฐธ์กฐ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™”

python manage.py makemigrations
python manage.py migrate

์œ„ ๋ช…๋ น์–ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•ด ์ค๋‹ˆ๋‹ค.
makemigrations ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ฉด ๊ฐ ์•ฑ๋ณ„๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ๋“ค์ด ์ƒ์„ฑ๋˜๋‹ˆ
git์„ ํ™œ์šฉํ•  ๋•Œ, ์ด๋•Œ ๋งŒ๋“ค์–ด์ง€๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ๋“ค๋„ ํ‘ธ์‹œํ•ด ์ค๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

python manage.py create_page

์œ„ ๋ช…๋ น์–ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐํŽ˜์ด์Šค์— ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋ฅผ ์ž๋™ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ต๊ณ„ api ํ™œ์šฉ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ์ปฌ ์„œ๋ฒ„ ์‹คํ–‰

python manage.py runserver

API ๊ด€๋ฆฌ ํŽ˜์ด์ง€ ์ ‘์†

http://127.0.0.1:8000/v1/

ํ•ด๋‹น URL๋กœ ์ ‘์†ํ•˜์—ฌ api๋ฅผ ํ™•์ธํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ

  • cliving-back/
    • .github/
    • cliving/
      • cliving/
        • init.py
        • asgi.py: ASGI ์„ค์ • ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
        • settings.py: Django ํ”„๋กœ์ ํŠธ ์„ค์ • ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
        • urls.py: URL ๋ผ์šฐํŒ… ์„ค์ • ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
        • wsgi.py: WSGI ์„ค์ • ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
      • page/
        • management/commands/: ์ปค์Šคํ…€ ๊ด€๋ฆฌ ๋ช…๋ น์–ด๊ฐ€ ์œ„์น˜ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค.
          • create_page.py: ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ์ปค์Šคํ…€ ๊ด€๋ฆฌ ๋ช…๋ น์–ด ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
        • migrations/: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ๋“ค์ด ์œ„์น˜ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค.
          • init.py
          • ... (๊ธฐํƒ€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ๋“ค)
        • admin.py: Django ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์„ค์ • ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
        • apps.py: 'Page' ์•ฑ ์„ค์ • ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
        • hold_utils.py: ํ™€๋“œ ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋“ค์ด ์œ„์น˜ํ•œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
        • models.py: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ ์ •์˜ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
        • pose_detect_utils.py: ํฌ์ฆˆ ๊ฐ์ง€ ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋“ค์ด ์œ„์น˜ํ•œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
        • serializers.py: ์ง๋ ฌํ™” ์„ค์ • ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
        • tests.py
        • urls.py: 'Page' ์•ฑ์˜ URL ๋ผ์šฐํŒ… ์„ค์ • ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
        • video_utils.py: ๋น„๋””์˜ค ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋“ค์ด ์œ„์น˜ํ•œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
        • views.py: ๋ทฐ ํ•จ์ˆ˜์™€ ํด๋ž˜์Šค๊ฐ€ ์œ„์น˜ํ•œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
  • cliving_hold_weight.pt: PyTorch ๋ชจ๋ธ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ํ™€๋“œ ํƒ์ƒ‰์„ ์œ„ํ•œ ๊ฐ€์ค‘์น˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • debug.log
  • manage.py
  • requirements.txt: ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ํŒŒ์ด์ฌ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

Team

์„ฑ์ฐฝ๋ฏผ
@forestsol
์žฅ์›์ค€
OnlyWonHand
@IamWonILuvWon
๊น€๋ช…์›
@coladribble

Stack

Python Django DjangoREST Postgres OpenCV PyCharm Visual Studio Code PyTorch Windows 11 Ubuntu macOS Postman Google Discord KakaoTalk Slack Apple Git GitHub

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published