django 11

[Django, AWS S3] S3๋ฅผ ์‚ฌ์šฉํ•ด์„œ django staticํŒŒ์ผ ๊ด€๋ฆฌํ•˜๊ธฐ

๋ฐฐ๊ฒฝ ์ด์•ผ๊ธฐ ์ง€๊ธˆ ์šด์˜์ค‘์ธ ์„œ๋น„์Šค์—๋Š” ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ(10MB~2GB)์„ ์—…๋กœ๋“œ/๋‹ค์šด๋กœ๋“œ ํ•ด์•ผํ•˜๋Š” ์ž‘์—…์ด ์žˆ๋‹ค. ์ด ์ž‘์—…์„ ๊ธฐ์กด์—๋Š” django์˜ static์œผ๋กœ ์ž์ฒด ๊ด€๋ฆฌํ•˜์˜€๋Š”๋ฐ ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. 1. ๋ฐฑ์—”๋“œ(api) ์„œ๋ฒ„์˜ ์ €์žฅ๊ณต๊ฐ„์˜ ๋ถ€์กฑ์„ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. 2. ๋Œ€์šฉ๋Ÿ‰ ์—…๋กœ๋“œ/๋‹ค์šด๋กœ๋“œ๋Š” ๋„คํŠธ์›Œํฌ ๋น„์šฉ์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. ์ด 2๊ฐ€์ง€ ๋ฌธ์ œ๋Š” Cloud Server๊ฐ€ ์ œ๊ณตํ•ด์ฃผ๋Š” Storage ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐ ๋  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” Azure์˜ 'Azure Storage' ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ์— aws๋กœ ์„œ๋ฒ„๋ฅผ ์˜ฎ๊ธฐ๋ฉด์„œ Storage ์„œ๋น„์Šค๋„ 'Amazon S3'๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋ณธ ๊ฒŒ์‹œ๊ธ€์€ ์ด ์ด์ „์ž‘์—…์— ๊ธฐ์ดˆํ•˜์—ฌ ์ž‘์„ฑ๋จ์„ ์•Œ๊ณ  ์ฝ๊ธฐ๋ฅผ ๋ฐ”๋ž€๋‹ค. ์ฐธ๊ณ ํ•œ ๊ธ€ aws s3 ๋ฏธ๋””์–ด ์„œ..

Programming/Django 2022.01.21

[DRF] Serializer๋กœ ์—ญ์ฐธ์กฐ์˜ ์—ญ์ฐธ์กฐ ๋ชจ๋ธ ๊ฐ€์ ธ์˜ค๊ธฐ

https://stein-log.tistory.com/27 Django foreign key๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์—ญ์ฐธ์กฐ(DRF) ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋ธ(ohlcv)๊ณผ ์ฐธ์กฐ๋˜๋Š” ๋ชจ๋ธ(share_announce)๊ฐ€ ์žˆ์„ ๋•Œ, ์ฐธ์กฐ๋˜๋Š” ๋ชจ๋ธ.์ฐธ์กฐํ•˜๋Š”๋ชจ๋ธ_set์œผ๋กœ ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋•Œ, ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋ธ foreign key ์„ค์ •์‹œ related_name์„ ์„ค์ •ํ•ด์ฃผ stein-log.tistory.com ์ง€๋‚œ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” 1๋Ž์Šค ์—ญ์ฐธ์กฐ ํ•„๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐ€์ ธ์˜ค๋Š”์ง€ ์•Œ์•„๋ณด์•˜๋‹ค. ์ด๋ฒˆ์— ๋งŒ๋‚œ ๋ฌธ์ œ๋Š” ๋ถ€๋ชจ ๋ชจ๋ธ์„ ์ฐธ์กฐํ•˜๋Š” ์ž์‹ ๋ชจ๋ธ์„ ์ฐธ์กฐํ•˜๋Š” ์†์ž ๋ชจ๋ธ์„ ๋ถ€๋ชจ ๋ชจ๋ธ์˜ serializer์—์„œ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. (๋ณต์žก๋„ ํ•˜๋‹ค...) ์•„๋งˆ ์ด๋ ‡๊ฒŒ ๊นŒ์ง€ ๋Ž์Šค๊ฐ€ ์žˆ๋Š”๊ฑธ ๊ตณ์ด serializer์—์„œ ํ•ด์•ผํ•˜๋‚˜ ์‹ถ์ง€๋งŒ, ํ•ด๋‹น ser..

Programming/Django 2021.10.22

[Django, Docker] gunicorn์— vscode debugger ๋ถ™์ด๊ธฐ

โ€ป gunicorn์„ ์“ฐ์ง€ ์•Š๋”๋ผ๋„ ์ ์šฉ๊ฐ€๋Šฅํ•˜๋‹ˆ, ์ฝ์€ ํ›„ ๊ฒŒ์‹œ๊ธ€ ํ•˜๋‹จ์„ ์ฐธ๊ณ  What I want. django ์ž‘์—…์„ ํ•˜๋‹ค๋ณด๋ฉด ๋‹น์—ฐํžˆ ์—๋Ÿฌ๊ฐ€ ์ƒ๊ธฐ๊ณ , ์–ด๋–ค ๋ณ€์ˆ˜์— ์–ด๋–ค ๊ฐ’์ด ๋“ค์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ํ˜„์žฌ ํ•„์ž๋Š” django๊ฐ€ docker container ๋‚ด๋ถ€์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ๋ จ์˜ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค. 1. ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์˜ ๋กœ๊ทธ๋ฅผ ๋„์›Œ๋†“์Œ(๋˜๋Š” docker-compose log) 2. ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ง€์  ๊ทผ์ฒ˜์— "๊ฐ์œผ๋กœ" ๋ณ€์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” print๋ฌธ์„ ์ถœ๋ ฅ 3. ์ฝ”๋“œ๋ฅผ ์ €์žฅ -> ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ -> ์ฝ”๋“œ๋ฅผ ์ €์žฅ(์ €์žฅ์„ ํ•ด์•ผ ๋กœ๊ทธ๊ฐ€ ๋‹ค์‹œ ๋œฌ๋‹ค) 4. ๋ณ€์ˆ˜ ํ™•์ธํ›„ "์•„ ์ด๊ฒŒ ์•„๋‹ˆ๊ตฌ๋‚˜" ํ›„ ๋‹ค๋ฅธ ๋ณ€์ˆ˜ ์ถœ๋ ฅํ•˜๋Š” print ์ถ”๊ฐ€ 5. 2~5๋ฌดํ•œ๋ฐ˜๋ณต ๊ฝค๋‚˜ ๊ท€์ฐฎ๊ณ  ์€๊ทผํžˆ ์‹œ๊ฐ„์ด ๋งŽ์ด ๋“œ๋Š” ์ผ์ด๋‹ค...

Programming/Django 2021.10.20

[DRF] get_queryset์—์„œ ๋ฒ—์–ด๋‚˜๊ธฐ(get ์‚ฌ์šฉ)

drf์—์„œ api๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ, ํ•„์ž๋Š” get_queryset์„ ๋ฉ”์ธ์œผ๋กœ ํ•˜์—ฌ api๋ฅผ ๊ตฌ์„ฑํ•˜์˜€๋‹ค. get_queryset์„ ์‚ฌ์šฉํ•˜๋Š”๊ฑด ์•„๋ž˜์˜ docs๋ฅผ ์ฐธ๊ณ ํ•˜๊ณ  ์ง„ํ–‰ํ•˜์˜€๋‹ค. https://www.django-rest-framework.org/#quickstart Home - Django REST framework www.django-rest-framework.org https://www.django-rest-framework.org/api-guide/filtering/ Filtering - Django REST framework www.django-rest-framework.org ๋‹ค๋งŒ ์ด๋ ‡๊ฒŒ get_queryset๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฐ๋ก ์ ์œผ๋กœ [sql๋กœ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฒƒ + serializer์˜ ๋ณด์กฐ] ๋งŒ์„ ์‚ฌ..

Programming/Django 2021.10.15

Django foreign key๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์—ญ์ฐธ์กฐ(DRF)

๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋ธ(ohlcv)๊ณผ ์ฐธ์กฐ๋˜๋Š” ๋ชจ๋ธ(share_announce)๊ฐ€ ์žˆ์„ ๋•Œ, ์ฐธ์กฐ๋˜๋Š” ๋ชจ๋ธ.์ฐธ์กฐํ•˜๋Š”๋ชจ๋ธ_set์œผ๋กœ ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋•Œ, ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋ธ foreign key ์„ค์ •์‹œ related_name์„ ์„ค์ •ํ•ด์ฃผ๋ฉด ํ•ด๋‹น ์ด๋ฆ„์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.(ํ•„์ž๋Š” ohlcv๋กœ ์„ค์ •) ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ.. django๊ฐ€ ์•Œ์•„์„œ ํ•ด์ค€๋‹ค. ๊ตฌ๊ธ€๋ง์„ ํ–ˆ์„ ๋•Œ, ์ •์ฐธ์กฐ๋ฅผ ํ•  ๋•Œ๋Š” select_related๋ฅผ ์—ญ์ฐธ์กฐ๋ฅผ ํ•  ๋•Œ๋Š” prefetch_related๋ฅผ ์“ฐ๋ผ๋Š” ์–˜๊ธฐ๋ฅผ ๋ณด์•˜๋‹ค. ํ•˜์ง€๋งŒ ๋‘ ๋ฐฉ์‹ ๋ชจ๋‘ cache์— ๋ฏธ๋ฆฌ ๋‹ด์•„๋‘ฌ์„œ, db์— ํ•œ ๋ฒˆ ๋” ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ด์ง€ ์•Š๊ฒŒ ํ•ด์ฃผ๋„๋ก supportํ•˜๋Š” ์—ญํ• ์ด์ง€, ํ•ด๋‹น function์„ ์“ด๋‹ค๊ณ  ํ•ด์„œ return๋˜๋Š” query_set์— ํ•ด๋‹น ๋‚ด์šฉ์ด ๋‹ด๊ฒจ์ ธ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋‹ค. ..

Programming/Django 2021.10.15

postgres์— django๋ฅผ ํ™œ์šฉํ•ด csv ์—…๋กœ๋“œ ํ•˜๊ธฐ

ํ•„์ž๋Š” mysql-nodejs๋กœ๋งŒ DB-API๋ฅผ ๋‹ค๋ฃจ์–ด ๋ณด์•˜๋‹ค. django๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด DRF(Django REST Framwork)์™€ ORM(Object Relational Mapping)์ด ๋งค์šฐ ํŽธํ•˜๋‹ค๋Š” ์–˜๊ธฐ๋ฅผ ๋“ค์–ด, ํšŒ์‚ฌ์—์„œ ์ƒˆ๋กญ๊ฒŒ ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ๊ตฌ์กฐ๋ฅผ django-postgres๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ด๋ฒˆ ์ž‘์—…์€ ๊ธฐ์กด์— ์ •๋ฆฌํ•ด๋†“์€ csv๋ฅผ postgres๋กœ ์—…๋กœ๋“œ ํ•˜๋Š” ์ผ์ด์—ˆ๋‹ค. ์šฐ์„  ์ฒ˜์Œ ๊ณ ๋ฏผํ–ˆ๋˜ ์‚ฌํ•ญ์€ 1. ์ด๊ฑธ postgres๋กœ ๋ฐ”๋กœ ์—…๋กœ๋“œํ•ด์•ผํ•˜๋Š”๊ฐ€? 2. django๋ฅผ ํ†ตํ•ด ์—…๋กœ๋“œํ•ด์•ผํ•˜๋Š”๊ฐ€? ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ django์˜ ORM์ด ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜, DB์™€ django๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ๋Œ์•„๋ฒ„๋ฆฌ๋‹ˆ ์ถฉ๋Œ์ด ๋‚  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๊ณ , ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ csv์™€ ๊ฐ™์ด ํฐ ํŒŒ์ผ์„ ์—…๋กœ..

Programming/Django 2021.09.29

210914 - DRF, RL(openai gym ๊ฒŒ์‹œ๊ธ€ ์ถ”์ฒœ), ๊ทธ๋ฆผ

DRF๋ฅผ ์„ฑ๊ณตํ–ˆ๋‹ค. auth๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์„ค์ •์„ ํ•˜์ง€ ์•Š์œผ๋ฉด ์•ˆ๋˜๋”๋ผ. ๊ทธ๋ž˜๋„ views.py, urls.py ๊ทธ๋ฆฌ๊ณ  serializer๊นŒ์ง€ (๋‹คํ–‰ํžˆ) ์–ด๋Š์ •๋„ ์ดํ•ด๋„๊ฐ€ ์ƒ์Šนํ–ˆ๋‹ค. ์ด์ œ ๋””์ž์ธ ์‹œ์•ˆ๋ฐ›๊ณ , ํ”„๋ก ํŠธ-๋ฐฑ์—”๋“œ ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๋„ ๋„ฃ์–ด๋ณด๋ฉด django ์‹ค์Šต์€ ์ž์—ฐ์Šค๋ž˜ ๋Š˜ ์ˆ˜ ์žˆ์„ ๋“ฏํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜ค๋Š˜ RL์„ ์œ„ํ•ด์„œ open ai gym์„ colab์—์„œ ์ญ‰ ๋Œ๋ ค๋ดค๋‹ค. ์—ญ์‹œ env.render()๊ฐ€ ๋ฌธ์ œ์˜€๋‹ค. ์ด ๋ถ€๋ถ„์€ ๊ทธ๋ƒฅ window์—์„œ๋งŒ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๊ฒŒ(display๊ฐ€ ์žˆ์œผ๋ฉด ๋œ๋‹ค) ๋ง˜ ํŽธํ• ๋“ฏ. ์ฐธ๊ณ ํ•œ ์ฝ”๋“œ https://www.anyscale.com/blog/an-introduction-to-reinforcement-learning-with-openai-gym-r..

Life 2021.09.14

docker compose๋ฅผ ์ด์šฉํ•ด์„œ ํ•œ ๋ฒˆ์— ์„œ๋ฒ„ ๊ตฌ์ถ•ํ•˜๊ธฐ (3) DRF ๋ฐ nginx ์„ค์ •

DRF๋Š” django์—์„œ restful api๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ง„ framework์ด๋‹ค DRF ์ถ”๊ฐ€ https://velog.io/@yoonkangho/django-rest-framework-์‹œ์ž‘ํ•˜๊ธฐ-1#django-app-๋งŒ๋“ค๊ธฐ (์œˆ๋„์šฐ์—์„œ)์—ฐ๊ฒฐ ์™„๋ฃŒ nginx๋ฅผ ํ†ต๊ณผํ•œ drf ํŽ˜์ด์ง€. css๊ฐ€ ๋ถˆ๋Ÿฌ์ง€์ง€ ์•Š๋Š”๋‹ค..! static ํŒŒ์ผ๋“ค์„ ์ƒˆ๋กœ ์š”์ฒญํ•˜๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. nginx์™€ django์—์„œ ์„ค์ •์„ ํ•ด์ค˜์•ผ ํ•  ๋“ฏ ํ•˜๋‹ค. https://nachwon.github.io/django-deploy-4-static/ mange.py ์˜ collectstatic ๊ธฐ๋Šฅ์„ ํ†ตํ•ด static ํŒŒ์ผ์„ .static_root์— ๋ชจ์€ํ›„ → nginx์˜ static ํŒŒ์ผ ์ „๋‹ฌ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด์„œ /static/ ..

Programming/Docker 2021.09.08