๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - Jupyter
ยท
๐Ÿ“‚ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
โœ… Jupyter๋ž€?์ฝ”๋“œ + ์‹คํ–‰ ๊ฒฐ๊ณผ + ์„ค๋ช…(๋ฌธ์„œ)์„ ํ•œ ๊ณณ์—์„œ ํ•จ๊ป˜ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ ์„ค์น˜pip install notebook ipykernelnotebook๋งŒ ์„ค์น˜ํ•ด๋„ ๋˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„ 2๊ฐœ ๋‹ค ์„ค์น˜ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. VSCode์—์„œ Python๊ณผ Jupyter Extension ์„ค์น˜ํ•˜๋ฉด ๋cell๋ณ„ ์‹คํ–‰์€ ctrl + enter
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - plotly(python)
ยท
๐Ÿ“‚ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
โœ… Plotly๋ž€?๋ฐ์ดํ„ฐ๋ฅผ “์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ(์ƒํ˜ธ์ž‘์šฉ)”ํ•˜๊ฒŒ ์‹œ๊ฐํ™”ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜pip install dash https://dash.plotly.com/layout Part 1. Layout | Dash for Python Documentation | PlotlyThis is the 1st chapter of the Dash Fundamentals. The next chapter covers Dash callbacks. # Run this app with `python app.py` and # visit http://127.0.0.1:8050/ in your web browser. from dash import Dash, html, dcc import plotly.express as px impor..
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - pandas(python)
ยท
๐Ÿ“‚ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
โœ… Pandas๋ž€?๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๊ฐ€๊ณตํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์„ค์น˜pip install pandas Usageimport pandas as pddaily_df = pd.read_csv("data/daily_report.csv")daily_df = daily_df[["Confirmed", "Deaths", "Recovered"]].sum().reset_index(name="count")daily_df = daily_df.rename(columns={"index": "conditions"})daily_dfcsvํŒŒ์ผ์„ ์ฝ์–ด์™€ 3๊ฐœ์˜ column๋“ค๋งŒ ํ•„ํ„ฐ๋งํ•ด์„œ column๋ณ„๋กœ ๊ฐœ์ˆ˜๋ฅผ ํ•ฉ์‚ฐํ–ˆ๋‹ค.ํ•ฉ์‚ฐ ๊ฐ’์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹์€ ๋” ์ด์ƒ dataframe์ด ์•„๋‹ˆ๋ผ series๋กœ ๋‚˜์˜ค๋Š”๋ฐ, ๋‹ค์‹œ datafr..
MongoDB - MongoDB with Python
ยท
๐ŸŒฑ MongoDB
โœ… Installation๊ฐ€์ƒํ™˜๊ฒฝ ์„ธํŒ… ๋ฐฉ๋ฒ•:https://j2yonghwa.tistory.com/133 Python - venv ๊ฐ€์ƒ ํ™˜๊ฒฝ ์„ธํŒ…(macOS)โœ… .venv ์„ธํŒ… ๋ฐฉ๋ฒ•๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š” ์ด์œ React(= Node ecosystem)์€ ๊ธฐ๋ณธ์ ์œผ๋กœ "ํ”„๋กœ์ ํŠธ ๋‹จ์œ„ ๊ฒฉ๋ฆฌ"๊ฐ€ ์ด๋ฏธ ๋˜์–ด ์žˆ๊ณ ,Python์€ ๊ธฐ๋ณธ์ด "์ „์—ญ ํ™˜๊ฒฝ"์ด๋ผ์„œ ๊ฐ€์ƒํ™˜๊ฒฝ์ด ํ•„์š”ํ•˜๋‹ค python ์„ค์น˜brew inj2yonghwa.tistory.com pymongo ์„ค์น˜(MongoDB driver)pip install pymongo โœ… ConnectionCreate Clientfrom pymongo import MongoClientclient = MongoClient("mongodb://localhost:27017")cl..
SQL - SQL with Python
ยท
๐Ÿงฉ SQL
โœ… Python ํ™˜๊ฒฝ์—์„œ SQLite ์‚ฌ์šฉํ•˜๊ธฐPlaceholderimport sqlite3connection = sqlite3.connect("users.db")cursor = connection.cursor()def init_table(): cursor.execute( """ CREATE TABLE users ( user_id integer primary key autoincrement, username text not null, password text not null ); """ ) cursor.execute( """ insert into users (username, password) ..
Redis - Get Started
ยท
๐ŸŽฏ Redis
โœ… Redis๋ž€?(Remote Dictionary Service)์†๋„๊ฐ€ ์–ด์–ด์–ด์–ดใ…“ใ…์ฒญ ๋น ๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค.๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋‹ค๋ฅธ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. Redis๋Š” Key Value In-memory ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‹ค.(SQL, MongoDB ๋“ฑ์€ ๋””์Šคํฌ์—์„œ ๊ฐ’์„ ์ฝ์–ด์˜ค๋А๋ผ ์ƒ๋Œ€์ ์œผ๋กœ ๋А๋ฆฌ๋‹ค.) ์žฅ์ : ๋น ๋ฅด๋‹ค.๋‹จ์ : ๋น„์‹ธ๋‹ค. ์šฉ๋Ÿ‰์ด ํ•˜๋“œ ๋””์Šคํฌ์ฒ˜๋Ÿผ ์ถฉ๋ถ„ํ•˜์ง€๊ฐ€ ์•Š๊ธฐ์—, ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋“ค์„ ๋ณด์กฐํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉํ•œ๋‹ค. โœ… ์„ค์น˜brew install redisbrew services start redis โœ… Usecase๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์„œ cli๋ฅผ ํ™œ์„ฑํ™”ํ•œ๋‹ค.redis-cli GET, SETโ•ฐโ”€ redis-cli ..
Python - venv ๊ฐ€์ƒ ํ™˜๊ฒฝ ์„ธํŒ…(macOS), pyenv
ยท
๐Ÿ Python
โœ… .venv ์„ธํŒ… ๋ฐฉ๋ฒ•๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š” ์ด์œ React(= Node ecosystem)์€ ๊ธฐ๋ณธ์ ์œผ๋กœ "ํ”„๋กœ์ ํŠธ ๋‹จ์œ„ ๊ฒฉ๋ฆฌ"๊ฐ€ ์ด๋ฏธ ๋˜์–ด ์žˆ๊ณ ,Python์€ ๊ธฐ๋ณธ์ด "์ „์—ญ ํ™˜๊ฒฝ"์ด๋ผ์„œ ๊ฐ€์ƒํ™˜๊ฒฝ์ด ํ•„์š”ํ•˜๋‹ค python ์„ค์น˜brew install python python ์„ค์น˜ ํ™•์ธpython3 --versionex) Python 3.12.x python ์„ค์น˜ ๊ฒฝ๋กœ ํ™•์ธwhich python3์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๋ฉด ์ •์ƒ /opt/homebrew/bin/python3 pip ์„ค์น˜ ํ™•์ธpip3 --versionpython ์„ค์น˜๋˜๋ฉด ๊ฐ™์ด ์„ค์น˜๋จ โ— python pyenv๋กœ ์„ค์น˜(์ถ”์ฒœ)ํ”„๋กœ์ ํŠธ๋ณ„ python ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด pyenv๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. pyenv ์„ค์น˜brew install pyenv .zsh..
Python - Selenium
ยท
๐Ÿ Python
โœ… Selenium์ด๋ž€?์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ๋žŒ์ด ์ง์ ‘ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ž๋™์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ(BeautifulSoup๋Š” html์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.) ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•from selenium import webdriverfrom selenium.webdriver.chrome.webdriver import WebDriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom ..
SQL - PostgreSQL, Extension(plpython3)
ยท
๐Ÿงฉ SQL
โœ… pl(procedural language)python3ํŒŒ์ด์ฌ์œผ๋กœ procedure๋‚˜ function์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์„ค์น˜PostgreSQL์„ ์„ค์น˜ํ•  ๋•Œ ๊ฐ™์ด ์„ค์น˜ ๋˜์—ˆ๋˜ Application Stack Builder๋ฅผ ์‹คํ–‰ ์‹œํ‚จ๋‹ค.Application Stack Builder๋กœ PostgreSQL Extension์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹คํ–‰์‹œํ‚ค๊ณ  EDB Language Pack์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๋Š”๋‹ค. ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰์‹œ์ผœ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ํ™œ์„ฑํ™” ์‹œํ‚จ๋‹ค.CREATE EXTENSION plpython3u; *์ฃผ์˜*์„ค์น˜ ๋˜์–ด ์žˆ๋Š” python, postgreSQL์˜ ํ™˜๊ฒฝ์ด ๋งž์•„์•ผ ํ•œ๋‹ค.๋‘˜ ๋‹ค ์‚ฌ์ดํŠธ์—์„œ ์„ค์น˜ํ•œ ํ™˜๊ฒฝ์ด๊ฑฐ๋‚˜, ๋‘˜ ๋‹ค homebrew๋กœ ์„ค์น˜ํ•œ ํ™˜๊ฒฝ์ด์–ด์•ผ ํ•œ๋‹ค.์ด ๋•Œ, homebr..
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - Flask
ยท
๐Ÿ“‚ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
โœ… Flask๋ž€?Python์œผ๋กœ ์›น ์„œ๋ฒ„์™€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒฝ๋Ÿ‰ ์›น ํ”„๋ ˆ์ž„์›Œํฌ Usagefrom flask import Flask, render_template, requestfrom extractor import extract_wantedapp = Flask("Job Scrapper")db = {}@app.route("/")def home(): return render_template("home.html", name="nico")@app.route("/search")def search(): keyword = request.args.get("keyword") if keyword in db: wanted_jobs = db[keyword] else: ..
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - Playwright
ยท
๐Ÿ“‚ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
โœ… PlaywrightPlaywright๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ฝ”๋“œ๋กœ ์ž๋™ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค.์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด Python ์ฝ”๋“œ๋กœ Chrome ๊ฐ™์€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ง์ ‘ ์กฐ์ž‘ํ•˜๋Š” ๋„๊ตฌ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฝ”๋“œ๋กœ ์ด๋Ÿฐ ํ–‰๋™์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ์‹คํ–‰์›นํŽ˜์ด์ง€ ์ ‘์†๋ฒ„ํŠผ ํด๋ฆญ๋กœ๊ทธ์ธ ์ž๋™ํ™”์Šคํฌ๋กค๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ (ํฌ๋กค๋ง)์Šคํฌ๋ฆฐ์ƒท ์ดฌ์˜ํ…Œ์ŠคํŠธ ์ž๋™ํ™” โœ… Usagefrom playwright.sync_api import sync_playwrightp = sync_playwright().start()browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto("https://google.com")page.screenshot(path="screen..