๐ [ TIL ] : 2์ผ์ฐจ_2022.04.19.(ํ)
[ 20220419(ํ)_์ค๋์ TIL ]
[ ์ค๋ ํ ๊ณต๋ถ ๋ฒ์ ]
- ์น ํ๋ก๊ทธ๋๋ฐ A-Z ๊ธฐ์ด KDT ์ค๋ฌดํAI์น๊ฐ๋ฐ์ 2ํ์ฐจ : 2์ฃผ์ฐจ (2-8~) ~ 5์ฃผ์ฐจ(์๊ฐ!)
[ ๊ฐ์ ์ธ ์๊ฒ๋ ๊ฒ ]
- GitHub) README.md ์์ฑ, ๋งํฌ๋ค์ด ๋ฐ ์บ์ํ์ผ์ญ์ ๋ช ๋ น์ด
git rm -r --cached .
git add .
git commit - m 'messege'
git push {remote} {branch} (git push origin main)
- GitHub) push ๋ช
๋ น์ด, .gitignore ์ถ๊ฐ ํ์
Readme ํ์ผ์ ์์ ํ ๋ ... ์บ์ ์ ๊ฑฐ๋ฅผ ๊ผญ ํด์ฃผ๊ณ ์ฌ๋ฆฌ์. - vscode์๋ pycharm์ฒ๋ผ venv ํด๋ ์์ฑํ์ง ์๊ณ ๋ anaconda๋ก ๊ฐ์ํ๊ฒฝ ์ค์ ๊ฐ๋ฅ (pip ์ค์น ์ฉ์ด. venv ์์ฑ ๋ฐฉ์๋ ์กด์ฌํจ)
๊ฐ์ํ๊ฒฝ ๋ง๋ค ํด๋์
python -m venv ๊ฐ์ํ๊ฒฝ์ด๋ฆ
- flask ์๋ฒ ๋ฐ ๋ธ๋ผ์ฐ์ ์์ ๋ก์ปฌํธ์คํธ๋ก ์ ์ํ๊ธฐ(๋งฅ์ฉ) : ํฌํธ ๋ฒํธ๋ฅผ ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ค!
flask run --port=5002
#flask ํฌํธ ๋ฐ๊พธ๊ธฐ
#localhost:5002 ๋ก๋ ํฌ๋กฌ์์ ์ ์๊ฐ๋ฅ (์ ํ๋ณด์๋ฌธ์ )
- ๋ฐ์ํ๋ ์ค๋ฅ : ์ฌ๋ฐฑ ๋ฐ ์คํ ์ค๋ฅ๋ถํฐ ํ์ผ ๊ฒฝ๋ก ์ค์ , aws ํค์ฒด์ธ ์ ์ฅํ ๊ณณ ๋ฐ๋ ์ ์๋ฒ ์ด๊ธฐ ์คํํ ๋๋ถํฐ ๊ฒฝ๋ก ๋ค์ ์ค์ ํด์ผํจ
์๋ฒ ์คํ๋ถํฐ ๊ณ์์คํ๊น์ง
ssh -i ํค์ฒด์ธ๊ฒฝ๋ก/ํค์ด๋ฆ.pem ubuntu@์ค์ ip์ฃผ์
cd app.pyํ์ผ ์๋ ๊ณณ
nohup python app.py &
์๋ฒ ๋๊ธฐ
ps -ef | grep 'app.py'
kill -9 ํฌํธ
[ โ๏ธ ๋ฆฌ๋ง์ธ๋ : ์๋ฒ ์ ๋ฐ์ดํธ์ ์ค์ํ๊ฒ! ]
์๋ฒ์ ์ผ์ ธ์๋ ๋ด ์น์ฌ์ดํธ ์ ๋ฐ์ดํธ ํ ๊ฒฝ์ฐ ์์ ์งํค๊ธฐ
1. ์๋ฒ๋ฅผ ๋๋ค.
2. ์๋์๋ (app.py๋ค์ด๊ฐ ํด๋)ํด๋ ์น ์ง์ด๋ค.
3. Filezila๋ฅผ ์ด์ฉํ์ฌ ์๋ก์ด ํ์ผ์ ํด๋์งธ ์ฎ๊ฒจ์ค๋ค.
4. ์๋ฒ๋ฅผ ํจ๋ค.
[ โ๏ธ ์์ ๋ฆฌ๋ง์ธ๋ : 2์ฃผ์ฐจ ]
/basic.naver?code=161967#
์ํ์ฐฝ๊ตฌ์ ๊ฐ์ ? ์ฃผ๋ฏผ๋ฑ๋ก์ฆ์ = ์ฃผ๋ฏผ๋ฒํธ ๋ฅผ ๋ค๊ณ ์จ๊ฒฉ
bad(ํ ์คํธ ๋นจ๊ฐ์ ์ ์ฉ)๋ผ๋ ์คํ์ผ์ ์๋ก ์๊ธฐ๋ ๊ณณ์ (class)์ ์ฉ์์ผ์ผ ํ๋ค.
๋ณ์ ์ ์ธ์ ํ๋ฒ๋ง .. (let temp_html ๊ณ์ ์ ์ธํด์ฃผ๋ฉด ์์ ์๋ฌด๊ฒ๋ ์๋ฌ๋ค..!)
๊ฒฐ๊ตญ Get์ผ๋ก response๋ฅผ url ์์ ๊ฐ์ ธ์ค๋๋ฐ realtimecityair์ row์์ row์์ ๋ฐ์ดํฐ ๊ฐ์๋งํผ ๋๋ฉด์ ๊ตฌ์ด๋ฆ์ด๋ ๊ตฌ๋ฏธ์ธ๋จผ์ง๊ฐ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ถ๋ ฅํด์ฃผ๋ ๊ฑฐ์ (90์ ๋์ผ๋ฉด ๋นจ๊ฐ๊ธ์จ๋ก)
i๊ฐ ์ซ์์ธ๋ฐ ๋ฌธ์์ด๋ก ๋ฃ์์ด์ โiโ ์ค๋ฅ๋ฌ์์
response ์คํ ์ค๋ฅ
response ๊ผญ ์ฐ์ด๋ณด๊ธฐ (console.log)
msg์ url ๋ฐ๊พธ๋๊ฒ ํต์ฌ์ธ ๊ฒ์ด ์์์ - ์ด๊ฑธ ์ด์ฉํด๋ณด๋ฉด ์ํฝ์ฟ ํค ๋ฝ์ ํ๋ฅ ๊ฐ์๊ฑฐ (๊ฒ์์์ดํ ) ๊ณ์ฐํ ์๋ ์๊ฒ ๋ค.. ๋ฉ์ดํ ์์ดํ ์ด๋ผ๋์ง ์๋๋ฉด ๋์ ์ด์ธ๋ฆฌ๋ ์บ๋ฆญํฐ๋? ํด์ ์ด๋ฆ ๋ฃ์ผ๋ฉด ๋๋ค์ผ๋ก ๋์ฒ ์บ๋ฆญํฐ ์ถ๋ ฅ..! ์ค์ฐ
[ โญ๏ธ 2์ฃผ์ฐจ ์๋ฃ ํ๊ธฐ ]
๋ค๋ฅธ API๋ ๋ฃ์ด๋ณด๊ณ ์ถ๋ค! ์๋ฅผ๋ค๋ฉด ๋ ์จ API์ ๋์์๋ ๊ตฌ๋ฆ์ ๋๋ ๋ ์จ์ ๋ฐ๋ผ ๋ฐ๋๋ icon , city ์ ๊ด๋ จ๋ ๋ค๋ฅธ API ๋ค์ ๋ง์ด ์ด์ฉํด์ ์น์ฌ์ดํธ์ ๋ฃ์ด๋ณด๊ณ ์ถ๋ค! (๋ค์ด๋ฒ ๋ธ๋ก๊ทธ ์ด์ฐฝ๊ธฐ์ ๋ง์ API๋ฅผ ๋ด ๋ธ๋ก๊ทธ์์ ๋ณผ ์ ์์๋๋ฐ ๋ค ์ด๋ฐ์์ผ๋ก ์ด์ฉํ๊ฑธ๊น?)
[ โ๏ธ 3์ฃผ์ฐจ ๋ฆฌ๋ง์ธ๋ ]
ํ์ด์ฌ ์คํฌ๋ํ ์ฐ์ตํ ๋ ์ด๋ถ๋ถ์ด ๋งํ์๋๋ฐ ์ด๋ ๊ฒ ๋ถ๋ฌ์ค๋ฉด ๋๋๊ฑฐ์๋ค๋!
td:~(1) ์ด๋ถ๋ถ์ ๋จผ์ ์ถ๋ ฅํด๋ณด๊ณ (print(rank)) ๊ฐ์ ธ์์ผ ํ๋ ๊ฐ์ ์์๋ด์ ๋์
๋๋ฆฌํํ๋ก ๊ฐ์ ธ์์ค๋ค.
๋ณ์ ๊ณผ ์ํ์ ๋ชฉ์ ๊ฐ์ ธ์ฌ๋ .text
rank ๊ฐ์ ๊ฐ์ ธ์ฌ๋ [โaltโ]
-
DB์ ๋ ๊ฐ์ง ์ข ๋ฅ
์นธ์ ๋ง๋ค๊ณ ๊ทธ ์์ ์ฑ์ฐ๋ ๊ฒ (์์ ) : SQL - ์ด์ํ ๋ฐ์ดํฐ ๋ค์ด์ฌ์ผ์๊ณ ๋ฐ์ดํฐ ๋นจ๋ฆฌ ์ฐพ์ ์ ์์, ์๋ก์ด ํ์์ ๋ฐ์ดํฐ ๋ค์ด์ฌ๋๋ง๋ค ๋๊ฐ!
์ ํด์ง ์นธ ์์ด ๋ค์ด์ค๋๋๋ก ์๋ ๊ฒ : Not only SQL (NoSQL) - ์ด๊ธฐ์๋น์ค์์ ๋ง์ด ์ฑํ, ๋ชจ๋ ๋ฐ์ดํฐ ํ์ ๋ฐ์ ์ ์์ผ๋ -
DB ?
DB = ํ๋ก๊ทธ๋จ (๋ฐ์ดํฐ๋ฅผ ์ '์ฐพ๊ธฐ' ์ํ ํ๋ก๊ทธ๋จ)
ํด๋ผ์ฐ๋ ํ๊ฒฝ์์ ์ ๊ณตํ๋ DB ์ด์ฉ - ์ ์ ๋ชฐ๋ฆฌ๊ฑฐ๋ DB๋ฐฑ์ , ๋ชจ๋ํฐ๋ง ์ฉ์ดํจ (์์ฆ ํธ๋ ๋์) -
์ฌ์ฉ: mongoDB / ํด๋ผ์ฐ๋ ์ปดํจํฐ ๋ฐ์ , id pw๋ acess ๊ถํ ์ค์ ํด์ค
-
์ฌ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ : pymongo, dnspython, BeautifulSoup,requests ๋ผ์ด๋ธ๋ฌ๋ฆฌ
#ํ์๊ฐ์ , ํํดํ ๋ ์ฐ์ผ๋ฏ. ๋ฐ์ดํฐ์ ๊ฐ์ ์ด๋ฆ์ 2๊ฐ ๋ง๋ค๊ณ delete๋ฅผ ์คํํด๋ณด๋ฉด ํ๋๋ง ์ง์์ง๋ ๊ฒ์ผ๋ก ๋ณด์, ์ id ์ค๋ณต์ด ์๋๋์ง ์ ์ ์์.
#์ค๋ฅ ํด๊ฒฐ : vscode๋ก DB์ ์ ๋ ฅ๊ถํ์ด ์์๋๋ฐ ์ด๋ pymongo ๊ฐ์ธ์ค์ ์ admin์ค์ ํ๋ฉด admin๊ถํ์ผ๋ก ๊ฒ์ ๊ฐ๋ฅ (ํน์ฝฉํ์ํ ํ์์๊ฐ์ ์๊ธฐํด๋ดค๋ค ๋ค๊ฐ์ด ๊ณ ๋ฏผํด์ฃผ์ ์ ๋ ์ฌ๋ฐ์๋..)
#์๋ก์ด ์๋ :
๊ฐ์ฌ๋ ์ฝ๋
target_movie = db.movies.find_one({'title':'๊ฐ๋ฒ๋์'})
target_star = target_movie['star']
movies = list(db.movies.find({'star':target_star}))
for movie in movies:
print(movie['title'])
๋์์ฝ๋ (ํ์ค์ ๋ฃ๊ณ ์ถ์๋ค..)_ ๋ค๋ฅธ ๋ก์ง์ผ๋ก ์ง๋ ๊ณผ์ ์ด ์์ ์ฌ๋ฐ๊ณ ์ฑ๊ณตํ๋ฉด ๋์ฌ๋ฐ์ (์ฃผ์ํ ์ ์ 0์ด ๋ฌธ์์ด์ด๋ผ๋๊ฑฐ.)
[โ๏ธ 4-5์ฃผ์ฐจ ๋ฆฌ๋ง์ธ๋ ]
์น์๋น์ค : ๋์ ๋ณด์ด๋๊ฑฐ(HTML, CSS, Javascript): 1~2์ฃผ์ฐจ+๋์๋ณด์ด๋๊ฑธ ์ฃผ๋ ์๋ฒ(python:์๋ฒ ๋ง๋ค์์๋ ํ๋ก๊ทธ๋๋ฐ์ธ์ด)
4์ฃผ์ฐจ-5์ฃผ์ฐจ : ๋ ์ฌ์ด ์ฐ๊ฒฐ
flask ์ค์น ํ์
๋ฐฑ-ํ๋ก ํธ ์ฃผ๊ณ ๋ฐ์๋ Get, Post ์์ฒญ๋ฐฉ์ ์
ํ!
ํ๋ก์ ํธ ๊ตฌํ ์ ์ ํ๋ก์ ํธ์ ๊ตฌํํ ๊ธฐ๋ฅ(์กฐ๊ฐ๊ธฐ๋ฅ) ๋จผ์ ๋ฐ๋ก ๊ตฌํ ํด๋ณด๋๊ฒ ๋์๋จ
ex-๋ฉํํ๊ทธ๋ก ์กฐ๊ฐ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
๐พ ์ํ ๋ฐ ์ง๋ฌธ
- ์ฝ๋ ๋น๊ตํด์ฃผ๋ ์ฌ์ดํธ๋ฅผ ์ฐพ์๋ค! (์ค๋ฅ๊ธ๋ฐฉ์ฐพ๊ธฐ์ํด)
- ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ ์ด์ฐฝ๊ธฐ์ ๋ง์ API๋ฅผ ๋ด ๋ธ๋ก๊ทธ์์ ๋ณผ ์ ์์๋๋ฐ ๋ค ์ด๋ฐ์์ผ๋ก ์ด์ฉํ๊ฑธ๊น?
- ๊น์ผ๋ก ํจ์จ์ ์ผ๋ก ํ์ ํ๋ ๋ฐฉ๋ฒ์?
- Git.io?
- Print ๋ console.log ๋ง๊ณ ๋ ํจ์จ์ ์ผ๋ก ์ฝ๋ ๋ณผ์์๋๋ฐฉ๋ฒ? > ๋ธ๋ ์ดํฌํฌ์ธํธ vscode์์ ์ด์ฉ๋ฐฉ๋ฒ ์ฐพ์๋ณด๊ธฐ
- post๋ก ๋ฒํผ ํด๋ฆญํด์ ๋ฐ์ดํฐ ๋ณด๋ผ์ ์ค์๋ก 2๋ฒ ๋๋ฅด๋ฉด 2๋ฒ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ ์ ์ฅ๊ณต๊ฐ ์ฐจ์งํ๋๋ฐ ์ด๋ฏธ ์ ๋ ฅํ๋ค๊ณ ์๋ฆผ ๋์ฐ๋ฉด์ ์ ๋ ฅ ๊ฑฐ๋ถํ๋ฉด ์ข์๋ฏ์ถ๋ค.
- ์๋ฒ๋๊ณ ๋ค์ ํฌ๋ ํด๋ 2๊ฐ ์ถ๊ฐํด๋ ๋ ๋ ค๋? ํด๋ด์ผ๊ฒ ๋ค.
๐ฑ ๋๋์
- ์ค๋์ ์ด์ ๋ณด๋ค ์กฐ๊ธ ๋ ๋ง์ ์์ ๊ณต๋ถํ๋ค..! (๋ฌด๋ ค2-8๋ถํฐ 5์ฃผ์ฐจ๊น์ง์๊ฐ์...!) ์ ์์ด ๋์๋์ง ์ด์ ๋งํผ์ ํ๋ค์ง ์์๊ณ ๋ณต์ต์ ์๋ํจ์ ๋๋ ํ๋ฃจ์๋ค.
(๋ ์ ์์๋ ์ด์ฌํ ๋์์ผ ํ๋ค๋ ๊ฒ๋ ์๊ฒ๋์๋ค)
์ฒ์ฒํ ๋ค์ ๋ด์ฉ์ ์ดํด๋ณด๋ฉด์ ๋์ณค๋ ๋ก์ง๋ ๋ค์ ์ก์ ์ ์๊ฒ ๋์๊ณ , ๋ฌด์๋ณด๋ค ์ ์๋ ์ดํด๊ฐ ๊ฐ์ง ์๋ ๊ฒ๋ค์ด ์ดํด๊ฐ ๊ฐ๊ธฐ ์์ํ๊ณ ํฐ๋ฏธ๋ ์ฌ์ฉ์ด ์ต์ํด์ ธ๊ฐ๋ค. (์์ฃผ ์ฐ๋๊ฑด ์์ ์ต๋๊ฒ ๋๊ปด์ ธ์ ๊ฐ๋ฐ์๋ถ๋ค์ด ํํ ๋งํ๋.. ์ฝ๋๋ฅผ ์ธ์ฐ์ง ์์๋ ๋๋ค๋ ๋ง์ด ์ฒด๊ฐ๋์๋ค .. ์ด๋ ๊ฒ ์์ ์ต๋๊ตฌ๋ ์ถ์๋ค) ์ ๊ธฐํ๊ฒ๋ ์ด์ ๋ณด๋ค ์ฝ๋๊ฐ ๋์ ์ ๋ค์ด์ค๊ธฐ๋ ํ๋ค.(์๊ฐ์ ๋ฒ์น?)ํ ํ ์๋ฌดํผ! ํ๋ฒ ๋ค์๋ ๊ฐ์ข๋ผ๊ณ ํ๋๋ผ๋ ๊พธ์คํ ๋ฆฌ๋ง์ธ๋ํ๋ฉด์ ๋ค์ ๋ด์ผ๊ฒ ๋ค! ๊ทธ๋ฆฌ๊ณ ํ๋ฆฐ ๋ถ๋ถ์์ ๋ ํ๋ฆด ํ๋ฅ ์ด ๋์ผ๋ ์ค๋ฅ๋ ๊ผญ ํด๊ฒฐํ๊ณ ๋์ด๊ฐ์ผ ํ๋ค๋ ๊ฒ..! ๊ทธ๋ฆฌ๊ณ ๋งค์ผ ๋ญ๊ฐ ๋ฐฐ์ธ์๋ก ๊ถ๊ธํ๊ฒ ๋์ด๊ฐ๊ณ ํด๊ฒฐํด๋ณด๊ณ ์ถ์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋๊ฒ ์ฆ๊ฒ๋ค :) ์ผํ ๐
๐ก '๋ชจ์ฌ๋ด์ ๋๋ฌผ์์ฒ' : ๋๋ง์ ์ฒ ์๋ํ๊ธฐ ์ฌ์ดํธ_๋ฐ๋ก๊ฐ๊ธฐ
: ์ด ์ฌ์ดํธ๋ ๋ํ
๋ ๊ฒ์์ธ '๋๋ฌผ์ ์ฒ' ์ ์ ๋ค์ด ์ด์ฉํ๋ฉด ์ข๊ฒ ๋ค ์ถ์ ์ปจํ
์ธ ๋ฅผ ๋ฐํ์ผ๋ก ๋ง๋ค์ด๋ณด์๋ค. ๋๋ฌผ์ ์ฒ์ ์์ ์ด ๋ง์ ์ด์ฅ๋(?)์ด ๋์ด์ ๊ทธ ๋ง์์ ๊ฐ๊พธ๋ ์์ ๋๊ฐ ๋์ ๊ฒ์์ธ๋ฐ ์ ์ ๋ค์ ์์ ์ ๋ง์์ ์์ฃผ ์์๊ฒ (์ ๋ง ํ์ค๊ณผ ๊ตฌ๋ถ ์๋ ์ ๋์ ๋ฅ๋ ฅ์๋ค๋ ๋ง๋ค..!) ๊พธ๋ฏผ๋ค. ๊ทธ๋ ์ง๋ง ์ด ๋ง์์ ์ฐพ์๊ฐ๊ธฐ ์ด๋ ต๋ค.. (์ผ์ผ์ด ๊ฒ์ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ) ๊ทธ๋ ๊ธฐ์ ๋๋ฌผ์์ฒ ์ ์ ๋ก์ ํ์ํ๋ค๊ณ ์๊ฐ๋์ด์(?) ๋ง๋ค์ด๋ณด์๋ค!
์ถ๊ฐํ๋ฉด ์ข์ ๊ธฐ๋ฅ : ํฌ๋กค๋ง์ ์ด์ฉํ ์ฒ ์ด๋ฏธ์ง ํ์ผ ๊ฐ์ ธ์ค๊ธฐ, ๊ฒ์๊ธฐ๋ฅ, ์ด๋ฏธ์ง ์นด๋ ๊ธฐ๋ฅ, ์กฐ๊ธ๋ ์ง๊ด์ ์ธ ๋ฉ์ธํ๋ฉด ๋ฑ
์ด์ ๊ด๋ จํ ์์ธํ ์ฝ๋๋ ๋์_๊นํ๋ธ์ ๊ฒ์ํด ๋์๋ค ๐ฉ
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ [ TIL ] : 2์ผ์ฐจ_2022.04.19.(ํ)), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@soyoyun/TIL-2์ผ์ฐจ2022.04.19.ํ์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค