๐ฆ ๋ด์ผ๋ฐฐ์์บ ํ/TIL(Today I Learned)
-
Docker๋? ocker ์ปจํ ์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ์ฝ๋ ๋ฐ ์ข ์์ฑ์ ํ์ค ํ์์ผ๋ก ํจํค์งํ ์ ์๊ฒ ํด์ฃผ๋ ์ปจํ ์ด๋์ ๋๋ค. ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ปดํจํ ํ๊ฒฝ ์ ๋ฐ์์ ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ์คํ๋ ์ ์์ฃ . Docker ์ปจํ ์ด๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์์คํ ๋๊ตฌ, ์ฝ๋, ๋ฐํ์ ๋ฑ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ํ์ํ ๋ชจ๋ ๊ฒ์ ๋ด๊ณ ์๋ ์ธ๊ธฐ ์๋ ๊ฒฝ๋์ ๋ ๋ฆฝํ ์คํ ์ปจํ ์ด๋์ ๋๋ค. Docker๋ ๊ฐ๋ฐ์๊ฐ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅด๊ฒ ๋น๋, ํ ์คํธ ๋ฐ ๋ฐฐํฌํ ์ ์๊ฒ ํด์ฃผ๋ ์ํํธ์จ์ด ํ๋ซํผ์ด๊ธฐ๋ ํฉ๋๋ค. [์ถ์ฒ] : https://www.oracle.com/kr/cloud/cloud-native/container-registry/what-is-docker/ Docker ๋ช ๋ น์ด reference https:/..
TIL_220707_dockerDocker๋? ocker ์ปจํ ์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ์ฝ๋ ๋ฐ ์ข ์์ฑ์ ํ์ค ํ์์ผ๋ก ํจํค์งํ ์ ์๊ฒ ํด์ฃผ๋ ์ปจํ ์ด๋์ ๋๋ค. ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ปดํจํ ํ๊ฒฝ ์ ๋ฐ์์ ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ์คํ๋ ์ ์์ฃ . Docker ์ปจํ ์ด๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์์คํ ๋๊ตฌ, ์ฝ๋, ๋ฐํ์ ๋ฑ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ํ์ํ ๋ชจ๋ ๊ฒ์ ๋ด๊ณ ์๋ ์ธ๊ธฐ ์๋ ๊ฒฝ๋์ ๋ ๋ฆฝํ ์คํ ์ปจํ ์ด๋์ ๋๋ค. Docker๋ ๊ฐ๋ฐ์๊ฐ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅด๊ฒ ๋น๋, ํ ์คํธ ๋ฐ ๋ฐฐํฌํ ์ ์๊ฒ ํด์ฃผ๋ ์ํํธ์จ์ด ํ๋ซํผ์ด๊ธฐ๋ ํฉ๋๋ค. [์ถ์ฒ] : https://www.oracle.com/kr/cloud/cloud-native/container-registry/what-is-docker/ Docker ๋ช ๋ น์ด reference https:/..
2023.01.02 -
OrderedDict ์ด๋? OrderedDict์ ์ฝ์ ๋ ์์๋ฅผ ๊ธฐ์ตํ๋ ๋์ ๋๋ฆฌ ์๋ฃํ์ ๋๋ค. ๋์ ๋๋ฆฌ ์๋ฃํ๊ณผ ๋๋ถ๋ถ ๋์ผํ๋ฉฐ, ์ฝ์ ๋ ์์ ๊ทธ๋๋ก ๊ฐ๋๋ค๋ ํน์ง์ด ์์ต๋๋ค. di = dict() di['a'] = 1 di['c'] = 2 di['b'] = 3 print(di) # ์ถ๋ ฅ {'a':1. 'C':3, 'b':2} from collections import OrderedDict or_di = OrderedDict() or_di['a'] = 1 or_di['c'] = 2 or_di['b'] = 3 print(or_di) # ์ถ๋ ฅ OrderedDict([('a':1), ('b':2), ('c':3)]) ์ผ๋ฐ dictionary๋ ์ฝ์ ๋ ์์๋ก ์ถ๋ ฅ๋์ง ์์์ต๋๋ค. ์์๋ a, b, c ์์๋ก..
TIL_OrderedDict ์ด๋? OrderedDict์ ์ฝ์ ๋ ์์๋ฅผ ๊ธฐ์ตํ๋ ๋์ ๋๋ฆฌ ์๋ฃํ์ ๋๋ค. ๋์ ๋๋ฆฌ ์๋ฃํ๊ณผ ๋๋ถ๋ถ ๋์ผํ๋ฉฐ, ์ฝ์ ๋ ์์ ๊ทธ๋๋ก ๊ฐ๋๋ค๋ ํน์ง์ด ์์ต๋๋ค. di = dict() di['a'] = 1 di['c'] = 2 di['b'] = 3 print(di) # ์ถ๋ ฅ {'a':1. 'C':3, 'b':2} from collections import OrderedDict or_di = OrderedDict() or_di['a'] = 1 or_di['c'] = 2 or_di['b'] = 3 print(or_di) # ์ถ๋ ฅ OrderedDict([('a':1), ('b':2), ('c':3)]) ์ผ๋ฐ dictionary๋ ์ฝ์ ๋ ์์๋ก ์ถ๋ ฅ๋์ง ์์์ต๋๋ค. ์์๋ a, b, c ์์๋ก..
2023.01.02 -
๋ฅ๋ฌ๋ ๊ธฐ๋ฐ ์ ํ ์ ์ ํ๋ก์ ํธ ์ข ๋ฃ github : https://github.com/sparta-camp-helpme/ai_museum_backend GitHub - sparta-camp-helpme/ai_museum_backend: ai_museum_backend ai_museum_backend. Contribute to sparta-camp-helpme/ai_museum_backend development by creating an account on GitHub. github.com ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์.. ๊ฐ์ธ์ ์ผ๋ก ๋ ์์ ์๊ฒ ๋ง์ด ์ค๋งํ๊ณ ์์ฑ ํ๋ ํ๋ก์ ํธ์์ง ์์๋ ์๊ฐ๋๋ค.. ํจ๊ป ํด์ค ํ์๋ค ๋ชจ๋ ์ ๋ง ์ด์ฌํ ํ๊ณ , ๋ ์กฐ์ฐจ๋ ๋ฐค์ ๊ผฌ๋ฐ ์ธ์๊ฐ๋ฉฐ ํ์ง๋ง, ์์ธกํ์ง ๋ชปํ ๋ณ์์ ๊ฐ์์..
TIL_220706_ํ ํ๋ก์ ํธ KPT๋ฅ๋ฌ๋ ๊ธฐ๋ฐ ์ ํ ์ ์ ํ๋ก์ ํธ ์ข ๋ฃ github : https://github.com/sparta-camp-helpme/ai_museum_backend GitHub - sparta-camp-helpme/ai_museum_backend: ai_museum_backend ai_museum_backend. Contribute to sparta-camp-helpme/ai_museum_backend development by creating an account on GitHub. github.com ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์.. ๊ฐ์ธ์ ์ผ๋ก ๋ ์์ ์๊ฒ ๋ง์ด ์ค๋งํ๊ณ ์์ฑ ํ๋ ํ๋ก์ ํธ์์ง ์์๋ ์๊ฐ๋๋ค.. ํจ๊ป ํด์ค ํ์๋ค ๋ชจ๋ ์ ๋ง ์ด์ฌํ ํ๊ณ , ๋ ์กฐ์ฐจ๋ ๋ฐค์ ๊ผฌ๋ฐ ์ธ์๊ฐ๋ฉฐ ํ์ง๋ง, ์์ธกํ์ง ๋ชปํ ๋ณ์์ ๊ฐ์์..
2023.01.01 -
์ ํ ์ ์ ํ๋ก์ ํธ์์ ์ฌ์ฉ๋๋ ๋ก์ง์ ๋ํด์ ๋ฅ๋ฌ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ์ฐ์๋ ์ฝ๋์ ๋ํด์ ์กฐ์ฌํด๋ณด์๋ค. default_storage default_storage๋ Django์์ file manage๋ฅผ ์ฝ๊ฒ ํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ FileSystemStorage ํด๋์ค๋ ๋ก์ปฌ ํ์ผ ์์คํ ์์ ๊ธฐ๋ณธ ํ์ผ ์คํ ๋ฆฌ์ง๋ฅผ ๊ตฌํํ๋ค. ๋ณ๋์ ์ธ์๊ฐ ์์ด ์์ฑํ๋ค๋ฉด ํ์ผ์ ์ ์ฅํ ๋๋ ํ ๋ฆฌ์ Root ๊ฒฝ๋ก๋ settings.py์ MEDIA_ROOT ๊ฐ์ด๋ฉฐ, ์ ์ฅ๋ ํ์ผ์ servingํ๋ URL ๋ํ settings.py์ MEDIA_URL ๊ฐ์ด๋ค. default_storage์ ์ฃผ์ ๋ฉ์๋ from django.core.files.storage import default_storage file = reque..
TIL_220703_ํ ํ๋ก์ ํธ์ ํ ์ ์ ํ๋ก์ ํธ์์ ์ฌ์ฉ๋๋ ๋ก์ง์ ๋ํด์ ๋ฅ๋ฌ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ์ฐ์๋ ์ฝ๋์ ๋ํด์ ์กฐ์ฌํด๋ณด์๋ค. default_storage default_storage๋ Django์์ file manage๋ฅผ ์ฝ๊ฒ ํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ FileSystemStorage ํด๋์ค๋ ๋ก์ปฌ ํ์ผ ์์คํ ์์ ๊ธฐ๋ณธ ํ์ผ ์คํ ๋ฆฌ์ง๋ฅผ ๊ตฌํํ๋ค. ๋ณ๋์ ์ธ์๊ฐ ์์ด ์์ฑํ๋ค๋ฉด ํ์ผ์ ์ ์ฅํ ๋๋ ํ ๋ฆฌ์ Root ๊ฒฝ๋ก๋ settings.py์ MEDIA_ROOT ๊ฐ์ด๋ฉฐ, ์ ์ฅ๋ ํ์ผ์ servingํ๋ URL ๋ํ settings.py์ MEDIA_URL ๊ฐ์ด๋ค. default_storage์ ์ฃผ์ ๋ฉ์๋ from django.core.files.storage import default_storage file = reque..
2023.01.01 -
HELPME team S.A(Starting Assignment) ๐ ์๊ฐ '์ฌ์ฉ์๋ค์ด ๋ง๋ ์ ํ๋ฅผ ์ ์ํ๋ ์จ๋ผ์ธ ๋ฏธ์ ๊ด' โฒ๏ธ ๊ฐ๋ฐ๊ธฐ๊ฐ 2022๋ 06์ 28์ผ ~ 2022๋ 07์ 05์ผ ๐ง ๋งด๋ฒ๊ตฌ์ฑ Backend - https://github.com/sparta-camp-helpme/ai_museum_backend/ frontend ๊ฐ๋ฐ ๋ณ๋ - https://github.com/sparta-camp-helpme/ai_museum_frontend ๊น์ฑํธ : ์์ธํ์ด์ง ๋ฐฑ์ ์ : ๋ก๊ทธ์ธ/ํ์๊ฐ์ ํ์ ์ ๋ณด ์ด๋ํ : ๊ฐ์ธํ์ด์ง / ๋ฅ๋ฌ๋ ํ๊ฑดํฌ : ๋ฉ์ธํ์ด์ง ๐ ํ์ ๊ธฐ๋ฅ Django Rest Framework๋ฅผ ์ฌ์ฉํด์ ํ๋ก์ ํธ๋ฅผ ์งํํด์ฃผ์ธ์. ํ๋ก ํธ์๋์ ๋ฐฑ์๋๋ฅผ ๋ณ๋์ ๋ ํฌ์งํ ๋ฆฌ๋ก ๊ด๋ฆฌํด์ฃผ์ธ์..
TIL_220627_์ ํ ์ ์ ํ๋ก์ ํธ SAHELPME team S.A(Starting Assignment) ๐ ์๊ฐ '์ฌ์ฉ์๋ค์ด ๋ง๋ ์ ํ๋ฅผ ์ ์ํ๋ ์จ๋ผ์ธ ๋ฏธ์ ๊ด' โฒ๏ธ ๊ฐ๋ฐ๊ธฐ๊ฐ 2022๋ 06์ 28์ผ ~ 2022๋ 07์ 05์ผ ๐ง ๋งด๋ฒ๊ตฌ์ฑ Backend - https://github.com/sparta-camp-helpme/ai_museum_backend/ frontend ๊ฐ๋ฐ ๋ณ๋ - https://github.com/sparta-camp-helpme/ai_museum_frontend ๊น์ฑํธ : ์์ธํ์ด์ง ๋ฐฑ์ ์ : ๋ก๊ทธ์ธ/ํ์๊ฐ์ ํ์ ์ ๋ณด ์ด๋ํ : ๊ฐ์ธํ์ด์ง / ๋ฅ๋ฌ๋ ํ๊ฑดํฌ : ๋ฉ์ธํ์ด์ง ๐ ํ์ ๊ธฐ๋ฅ Django Rest Framework๋ฅผ ์ฌ์ฉํด์ ํ๋ก์ ํธ๋ฅผ ์งํํด์ฃผ์ธ์. ํ๋ก ํธ์๋์ ๋ฐฑ์๋๋ฅผ ๋ณ๋์ ๋ ํฌ์งํ ๋ฆฌ๋ก ๊ด๋ฆฌํด์ฃผ์ธ์..
2023.01.01 -
restframework-simplejwt ์ธ์ฆ์ ์ข ๋ฅ 1. ์ธ์ ์ธ์ฆ ๋ฐฉ์ ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ์๊ฐ ์ธ์ฆ(Authentication)์ ์ํํ๋ฉด ์๋ฒ์์ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์ ์ฅ. ์๋ต์ผ๋ก ์ธ์ (JSESSIONID) ํค๋ฅผ ์ด์ฉํด ํด๋ผ์ด์ธํธ ๋ธ๋ผ์ฐ์ ์ ์ฟ ํค์ ์ธ์ (JSESSIONID)์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ฒ ๋จ. ํด๋ผ์ด์ธํธ๋ ๋ธ๋ผ์ฐ์ ์ฟ ํค์ ์ ์ฅ๋ ์ธ์ ์ผ๋ก ์ ์ฅ๋ ์ธ์ ์ ๋ณด๋ฅผ ์ด์ฉํด ์ธ๊ฐ(Authrization)๋ ์ ๋ณด์ ์ ๊ทผ ํ์ฉ. 2. ํ ํฐ ์ธ์ฆ ๋ฐฉ์ ํ ํฐ ์ธ์ฆ ๋ฐฉ์์ ์ฌ์ฉ์๊ฐ ์ธ์ฆ์ ์ํํ๋ฉด ์๋ฒ์์๋ ํ ํฐ์ ์์ฑํ ๋ค์ ์ ์ฅํ์ง ์๊ณ (stateless) ํ ํฐ๊ฐ์ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ตํจ. ํ ํฐ๊ฐ์ ์ฌ์ฉ์๊ฐ ์ธ๊ฐ๋ ์ฌ์ฉ์๋ง ์ฌ์ฉํ ์ ์๋ ์๋น์ค๋ฅผ ์์ฒญํ ๋ ํจ๊ป ๋ณด๋ด๊ฒ ๋๊ณ , ์๋ฒ์์ ์ด ํ ํฐ์ ์๋ฏธ ์๋ ..
TIL_220630_rest_framework_simplejwtrestframework-simplejwt ์ธ์ฆ์ ์ข ๋ฅ 1. ์ธ์ ์ธ์ฆ ๋ฐฉ์ ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ์๊ฐ ์ธ์ฆ(Authentication)์ ์ํํ๋ฉด ์๋ฒ์์ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์ ์ฅ. ์๋ต์ผ๋ก ์ธ์ (JSESSIONID) ํค๋ฅผ ์ด์ฉํด ํด๋ผ์ด์ธํธ ๋ธ๋ผ์ฐ์ ์ ์ฟ ํค์ ์ธ์ (JSESSIONID)์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ฒ ๋จ. ํด๋ผ์ด์ธํธ๋ ๋ธ๋ผ์ฐ์ ์ฟ ํค์ ์ ์ฅ๋ ์ธ์ ์ผ๋ก ์ ์ฅ๋ ์ธ์ ์ ๋ณด๋ฅผ ์ด์ฉํด ์ธ๊ฐ(Authrization)๋ ์ ๋ณด์ ์ ๊ทผ ํ์ฉ. 2. ํ ํฐ ์ธ์ฆ ๋ฐฉ์ ํ ํฐ ์ธ์ฆ ๋ฐฉ์์ ์ฌ์ฉ์๊ฐ ์ธ์ฆ์ ์ํํ๋ฉด ์๋ฒ์์๋ ํ ํฐ์ ์์ฑํ ๋ค์ ์ ์ฅํ์ง ์๊ณ (stateless) ํ ํฐ๊ฐ์ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ตํจ. ํ ํฐ๊ฐ์ ์ฌ์ฉ์๊ฐ ์ธ๊ฐ๋ ์ฌ์ฉ์๋ง ์ฌ์ฉํ ์ ์๋ ์๋น์ค๋ฅผ ์์ฒญํ ๋ ํจ๊ป ๋ณด๋ด๊ฒ ๋๊ณ , ์๋ฒ์์ ์ด ํ ํฐ์ ์๋ฏธ ์๋ ..
2023.01.01 -
์ ํ์ ์ ํ๋ก์ ํธ Style transfer = ์ ๋ก๋ํ ์ฌ์ง์ ์ ํ์ฒ๋ผ ๋ณํํด์ค๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ git ์ฐธ๊ณ : https://github.com/crowsonkb/style-transfer-pytorch GitHub - crowsonkb/style-transfer-pytorch: Neural style transfer in PyTorch. Neural style transfer in PyTorch. Contribute to crowsonkb/style-transfer-pytorch development by creating an account on GitHub. github.com ๊ฐ์ํ๊ฒฝ ์ค์ ํ [ pip install -e . ] ์ค์น style_transfer_pytorch.egg-info ๊ฒฝ๋ก..
TIL_220623_๋ฅ๋ฌ๋์ ํ์ ์ ํ๋ก์ ํธ Style transfer = ์ ๋ก๋ํ ์ฌ์ง์ ์ ํ์ฒ๋ผ ๋ณํํด์ค๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ git ์ฐธ๊ณ : https://github.com/crowsonkb/style-transfer-pytorch GitHub - crowsonkb/style-transfer-pytorch: Neural style transfer in PyTorch. Neural style transfer in PyTorch. Contribute to crowsonkb/style-transfer-pytorch development by creating an account on GitHub. github.com ๊ฐ์ํ๊ฒฝ ์ค์ ํ [ pip install -e . ] ์ค์น style_transfer_pytorch.egg-info ๊ฒฝ๋ก..
2023.01.01 -
DRF ์ฌํ๊ณผ์ 2๋ฒ์งธ ๊ณผ์ .. ์.. wa.. ๋ชจ๋ธ๋ง๋ถํฐ ์๋ฆฌ์ผ ์ฌ์ฉ๋ฒ๊ณผ ์๋ฆฌ์ผ์ ์ฌ์ฉํ๊ธฐ ์ํ views.py ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ๊น์ง.. ํ๊ธฐ์ ์ด๋ฉด์ ๊ฐํธํ์ง๋ง ์์ง๊น์ง๋ ์ต์ํ์ง ๋ชปํ ๊ทธ๊ฒ.. DRF ๋ ๋์ฒด ๋ญ์ผ... ใ 5์ผ์ฐจ 1. product๋ผ๋ ์ฑ์ ์๋ก ์์ฑํด์ฃผ์ธ์ - ์์ฑํ๋ฉด settings.py ๋ ์ถ๊ฐ python manage.py startapp product 2. product ์ฑ์์ ๊ฐ ํฌํจ๋ product ํ ์ด๋ธ์ ์์ฑํด์ฃผ์ธ์ class Product(models.Model): user = models.ForeignKey('user.User', verbose_name="์์ฑ์", on_delete=models.CASCADE) title = models.CharField(verbose..
TIL_220621_DRF ๊ฐ์DRF ์ฌํ๊ณผ์ 2๋ฒ์งธ ๊ณผ์ .. ์.. wa.. ๋ชจ๋ธ๋ง๋ถํฐ ์๋ฆฌ์ผ ์ฌ์ฉ๋ฒ๊ณผ ์๋ฆฌ์ผ์ ์ฌ์ฉํ๊ธฐ ์ํ views.py ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ๊น์ง.. ํ๊ธฐ์ ์ด๋ฉด์ ๊ฐํธํ์ง๋ง ์์ง๊น์ง๋ ์ต์ํ์ง ๋ชปํ ๊ทธ๊ฒ.. DRF ๋ ๋์ฒด ๋ญ์ผ... ใ 5์ผ์ฐจ 1. product๋ผ๋ ์ฑ์ ์๋ก ์์ฑํด์ฃผ์ธ์ - ์์ฑํ๋ฉด settings.py ๋ ์ถ๊ฐ python manage.py startapp product 2. product ์ฑ์์ ๊ฐ ํฌํจ๋ product ํ ์ด๋ธ์ ์์ฑํด์ฃผ์ธ์ class Product(models.Model): user = models.ForeignKey('user.User', verbose_name="์์ฑ์", on_delete=models.CASCADE) title = models.CharField(verbose..
2023.01.01