post-thumbnail

[django] ์‹œ๊ฐ„ ๊ณ ์ •ํ•˜๊ธฐ: freeze_time

s3๋ฅผ ์—ฐ๋™์‹œ์ผœ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š”๋ฐ, ์ด๋•Œ ์—…๋กœ๋“œ ๋œ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ €์žฅ๋˜๋Š” ์‹œ์ ์˜ ์‹œ๊ฐ„์œผ๋กœ ์ง€์ •ํ•ด๋‘์—ˆ๋‹ค.upload_time = (str(datetime.now())).replace(" ", "\_")image_url = "https://tumbluv.s3.

2021๋…„ 3์›” 14์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

[django] ๊ฒŒ์‹œํŒ ๋Œ“๊ธ€, ๋Œ€๋Œ“๊ธ€ ๊ตฌํ˜„ํ•˜๊ธฐ models.py

์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์˜ฌ๋ ค์ง„ ํฌ์ŠคํŠธ๋“ค์—๋Š” ๋Œ“๊ธ€๋‹ฌ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ , ์ถ”๊ฐ€์ ์œผ๋กœ ๋Œ€๋Œ“๊ธ€์ด ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” models.py, db_uploader.py์— ๋Œ€ํ•œ ์ •๋ฆฌ.๊ฒŒ์‹œํŒ์— ๊ฒŒ์‹œ๊ธ€์„ ์˜ฌ๋ฆฌ๋ฉด ์šฐ์„  ๋ˆ„๊ฐ€ ์˜ฌ๋ ธ๋Š”์ง€, ๊ธ€ ๋‚ด์šฉ, ์˜ฌ๋ฆฐ์‹œ๊ฐ, ์ˆ˜์ •์‹œ๊ฐ์— ๋Œ€ํ•œ field๊ฐ€

2021๋…„ 3์›” 14์ผ
ยท
2๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

[aws] RDS

ํ˜„์žฌ ๋‚ด ๋กœ์ปฌdb์— ์—ฐ๋™๋˜์–ด์žˆ๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ํ˜‘์—…์œผ๋กœ ์ง„ํ–‰๋˜๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ, db์•ˆ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณต์œ ๋˜์ง€ ์•Š์•„ ๋ถˆํŽธํ•œ ์ ์ด ๋งŽ์ด ์žˆ๋‹ค. ์ด๋•Œ ํ”„๋กœ์ ํŠธ๋ฅผ RDS์— ์—ฐ๋™์‹œ์ผœ๋†“์œผ๋ฉด ํ”„๋กœ์ ํŠธ๋ฅผ ํ•จ๊ป˜ํ•˜๋Š” ๊ตฌ์„ฑ์› ๋ชจ๋‘๊ฐ€ ๋™์ผํ•œ db๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ํšจ์œจ์ ์ด๋‹ค.aws -> RDS ->

2021๋…„ 3์›” 14์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[django] ์นด์นด์˜ค ๋กœ๊ทธ์ธ views.py

์›น์‚ฌ์ดํŠธ์—์„œ ์ด๋ฉ”์ผ๋กœ ํšŒ์›๊ฐ€์ž…์„ ์ง„ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๋ณ„๋„์˜ ํšŒ์›๊ฐ€์ž… ์ ˆ์ฐจ ์—†์ด ์นด์นด์˜ค ๊ณ„์ •์œผ๋กœ ๋ฐ”๋กœ ๋กœ๊ทธ์ธ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•จ. ํ•„์š”ํ•œ ์ •๋ณด๋Š” kakao developers์— ๋‹ค ๋‚˜์™€์žˆ์ง€๋งŒ, ํŽ˜์ด์ง€์— ์ •๋ณด๊ฐ€ ๋งŽ์•„์„œ ์–ด๋””์„œ ์–ด๋–ค ์ •๋ณด๋ฅผ ์ฐพ์•˜๋Š”์ง€ ์ข€ ํ—ท๊ฐˆ๋ฆผ..

2021๋…„ 3์›” 7์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[git/github] rebase, stash

git์—์„œ merge๋ฅผ

2021๋…„ 3์›” 7์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[reflection] clone project WeGotDiz (์™€๋””์ฆˆ ํด๋ก )

์œ„์ฝ”๋“œ์˜ 1์ฐจ ํ”„๋กœ์ ํŠธ๋กœ ์™€๋””์ฆˆ ํด๋กœ๋‹์„ ํ•˜๊ฒŒ๋˜์—ˆ๋‹ค. ์ธ์›์€ 7๋ช…, ํ”„๋ก ํŠธ 3๋ช…์— ๋ฐฑ 3๋ช…์œผ๋กœ ๊ตฌ์„ฑ๋˜์—ˆ๊ณ  2์›” 15์ผ๋ถ€ํ„ฐ 26์ผ๊นŒ์ง€ 2์ฃผ๊ฐ„ ์ง„ํ–‰.

2021๋…„ 3์›” 1์ผ
ยท
8๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

[algorithm] [python]

์ธ์ž์ธ height๋Š” ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.๊ทธ๋ž˜ํ”„๋กœ ์ƒ๊ฐํ•œ๋‹ค๋ฉด y์ถ•์˜ ๊ฐ’์ด๊ณ , ๋†’์ด ๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๊ทธ๋ž˜ํ”„๋ผ๋ฉด height ๋ฐฐ์—ด์€ 1, 8, 6, 2, 5, 4, 8, 3, 7 ์ž…๋‹ˆ๋‹ค.์ € ๊ทธ๋ž˜ํ”„์— ๋ฌผ์„ ๋‹ด๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ , ๋ฌผ์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๋„“์€

2021๋…„ 2์›” 7์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[django][mysql] models.py

๋‹ค๋ฃจ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜๊ฐ€ ๋‹ฌ๋ผ์งˆ ๋•Œ django์—์„œ๋Š” ์ƒˆ๋กœ์šด app์„ ๋งŒ๋“ค์–ด ๋ถ„๋ฆฌํ•œ๋‹ค. ๊ฐ๊ฐ์˜ app ์•ˆ์—๋Š” models.py, views.py, urls.py๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด ์ค‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์„ ์„ค๊ณ„ํ•˜๋Š” models.py์— ๋Œ€ํ•œ ํฌ์ŠคํŒ….models.py์—์„œ ๊ฐ c

2021๋…„ 2์›” 6์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

[django] ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ review

django์—์„œ ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ์„ ์ง„ํ–‰ํ•˜๋ฉฐ ๋งŒ๋‚ฌ๋˜ ์ƒํ™ฉ๋“ค์— ๋Œ€ํ•œ ํฌ์ŠคํŒ….ํšŒ์›๊ฐ€์ž…์‹œ ํ•„์ˆ˜ ํ•ญ๋ชฉ์œผ๋กœ email, mobile number ์ค‘ ํ•˜๋‚˜์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐ›์•„์„œ ํšŒ์›์ •๋ณด๋ฅผ db์— ์ €์žฅ์‹œํ‚ค๋Š” class๋ฅผ views.py์— ์ž‘์„ฑ.์ด๋•Œ, ๋กœ ์ž‘์„ฑํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€

2021๋…„ 2์›” 5์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[django] [mysql] mysql ์—ฐ๋™

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ django ์™€ ์—ฐ๊ฒฐ ๋  db๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ mysql์€ ์ด๋ฏธ ์„ค์น˜ ๋œ ์  ์žˆ๋‹ค๋ฉด ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ๊ด€์—†์ด ์–ด๋””์„œ๋“  ์ ‘์† ๊ฐ€๋Šฅ. >mysql.server start SUCCESS! ๋ž€ ๋ฌธ๊ตฌ๊ฐ€ ๋œจ๋ฉด mysql ์„œ๋ฒ„ ์‹คํ–‰ ์„ฑ๊ณต. >mysql -u ro

2021๋…„ 1์›” 30์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[django] urls.py, views.py

http client utility๋กœ http ๊ฐœ๋ฐœ๊ณผ ๋””๋ฒ„๊น… ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, json์„ ์ง€์›. ์„ค์น˜ํ™•์ธ์€ terminal์—์„œ http ์ž…๋ ฅflags: ์‹คํ–‰์‹œ ์ „๋‹ฌํ•  ์˜ต์…˜์œผ๋กœ --๋กœ ์‹œ์ž‘ e.g. --jsonmethod: default GETifconfig๋‚ด ip ์ฃผ์†Œ

2021๋…„ 1์›” 30์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Git /GitHub]

Git: Version Control System(VCS) ๋ฒ„์ „(์—…๋ฐ์ดํŠธ) ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ์ฝ”๋“œ๋กœ ๋ฒ„์ „ ๊ด€๋ฆฌํ•˜๋Š” ์ด์œ : ์—…๋ฐ์ดํŠธ์‹œ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉด ์ด์ „๋ฒ„์ „์œผ๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ํ˜‘์—…์‹œ ์–ด๋–ค ๋ถ€๋ถ„์ด ์–ด๋–ป๊ฒŒ ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ ์šฉ - ์ „์ฒด ํ๋ฆ„ ํŒŒ์•…์— ๋„์›€. ํŒŒ์ผ

2021๋…„ 1์›” 28์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[terminal] ํ™˜๊ฒฝ์„ค์ •

Mac OS์™€ ๋ฆฌ๋ˆ…์Šค์—์„œ ๊ฐ„ํŽธํ•˜๊ฒŒ ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์คŒ.https://brew.sh/ ์— ์ ‘์†ํ•˜๋ฉด install Homebrew ์•„๋ž˜์— ์žˆ๋Š” ๋‚ด์šฉ์„ terminal ์—์„œ ์‹คํ–‰ํ•˜๋ฉด ๋จ./bin/bash -c "$(curl -fsSL https&#

2021๋…„ 1์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[django] ๊ฐœ๋…์ •๋ฆฌ

Model : ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ „์†ก๋ฐ›๋Š” ๊ฒƒ์„ ๋‹ค๋ฃธView : ์–ด๋–ค ๋ชจ๋ธ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์›น์„œ๋ฒ„๊ฐ€ ๊ฐ€์ ธ์™€์„œ ์œ ์ €์˜ ์š”์ฒญ์—๋”ฐ๋ฅธ ๊ฐ€๊ณต ํ›„ ๋ณด์—ฌ์คŒControl, Template (django) : ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ๊ณผ ์ด๋ฒคํŠธ์— ๋ฐ˜์‘ํ•˜์—ฌ model๊ณผ view

2021๋…„ 1์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[python] set vs. dictionary, list vs. tuple

setset() ์œผ๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ˆœ์„œ๊ฐ€ ์—†๊ณ  ์ค‘๋ณต์ด ์—†๋‹ค. ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฆฌ์ŠคํŠธ a๋ฅผ set(list(a)) ์‹คํ–‰ํ•˜๋ฉด list ์•ˆ์˜ ์ค‘๋ณต๋œ ๊ฐ’์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€๋ฅผ return ํ•œ๋‹ค.dictionarydictionary() ํ˜น์€ {}๋กœ ์„ ์–ธ. ์ˆœ์„œ๊ฐ€ ์—†๊ณ  ์ค‘๋ณต

2021๋…„ 1์›” 17์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

[python] sys, path

ํŒŒ์ด์ฌ์—์„œ๋Š” ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ๊ณผ ํŒจํ‚ค์ง€๋ฅผ import ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํŒŒ์ด์ฌ์€ ์•„๋ž˜์˜ ์ˆœ์„œ๋กœ ๋ชจ๋“ˆ๊ณผ ํŒจํ‚ค์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค.sys.modules: dictionaryํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๊ฒฝ๋กœ๋ฅผ ๋‚˜ํƒ€๋ƒ„built-in modules: ํŒŒ์ด์ฌ ๊ณต์‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ํŒŒ์ด์ฌ ์„ค์น˜์™€ ๋™์‹œ์—

2021๋…„ 1์›” 17์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[python] parameter, argument

parameter ๋Š” ์‚ฌ์šฉ์ž ํ•จ์ˆ˜์—์„œ ํ•จ์ˆ˜ ์ •์˜์‹œ ์ง€์ •๋œ ์ด๋ฆ„. ์•„๋ž˜ ์˜ˆ์‹œ์—์„œ name ๊ณผ age๊ฐ€ parametersdef func(name, age)argument ๋Š” ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ํ•จ์ˆ˜๋ฅผ call ํ•  ๋•Œ, ํ•จ์ˆ˜์—์„œ ์‚ฌ์šฉ๋˜๊ธธ ๋ฐ”๋ผ๋Š” ๊ฐ’. ์•„๋ž˜์—์„œ "๊น€๋Œ•๋Œ•"๊ณผ 8.f

2021๋…„ 1์›” 17์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[python] math expressions

ํŒŒ์ด์ฌ์€ ๊ธฐ๋ณธ ์‚ฌ์น™์—ฐ์‚ฐ๊ธฐํ˜ธ( + , - , \* , / )๋ฅผ ์ธ์‹ํ•œ๋‹ค. ๊ณฑ์…ˆ๊ณผ ๋‚˜๋ˆ—์…ˆ์€ ๋ง์…ˆ๊ณผ ๋บ„์…ˆ์˜ ๊ธฐํ˜ธ๋ณด๋‹ค ์šฐ์„ ์‹œ ๋˜๋Š”๊ฒƒ ์—ญ์‹œ ์›๋ž˜ ์•Œ๊ณ ์žˆ๋Š” ์ˆ˜ํ•™๊ณผ ๋™์ผํ•˜๋‹ค.์ฃผ์˜ํ• ์ ์€ ๋‚˜๋ˆ—์…ˆ์ธ๋ฐ. ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ๊ฐ๊ฐ ๊ตฌ๋ถ„ํ•˜๋Š” ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ์œผ๋‹ˆ ์•Œ์•„๋‘˜๊ฒƒ!/ ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์•„๋Š” ๋‚˜๋ˆ—

2021๋…„ 1์›” 14์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[python] ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

print()์€ ()์•ˆ์˜ input๊ฐ’์„ ๋ฐ”๋กœ ํ”„๋ฆฐํŠธํ•ด์ฃผ๋Š” syntax์ด๋‹ค. print("Hello World!") ์ž…๋ ฅ์‹œ, Hello World! ์ถœ๋ ฅ์ฃผ์˜ํ•  ์ ์€ ๋ฌธ์ž์—ด ์ถœ๋ ฅ์‹œ ๋ฐ˜๋“œ์‹œ ๋”ฐ์˜ดํ‘œ(" " ํ˜น์€ "" "")๋กœ ๋ฌถ์€ ํ›„ ()์•ˆ์— ๋„ฃ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ!ํ•˜์ง€๋งŒ ์ˆซ์ž์˜

2021๋…„ 1์›” 14์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[css] float

block์†์„ฑ์˜ element๋ฅผ ์ •๋ ฌํ• ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. float: left/right ์„ ์ ์šฉํ•˜๋ฉด ๊ทธ element์˜ ์ปจํ…์ธ ๊ฐ€ ์žˆ๋Š” ์˜์—ญ๋งŒ ๋„์šฐ๋Š” ๊ฐœ๋…์œผ๋กœ, ์ดํ›„์˜ element๋ฅผ ๋‚˜๋ž€ํžˆ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค.์ฐธ๊ณ ๋กœ block์˜ ๊ฒฝ์šฐ width์ง€์ •์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ด๋Š” ๋ณด์—ฌ์ง€

2021๋…„ 1์›” 13์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€