Flask

Chapter 1-2 왜 파이썬인가?

Chansman 2025. 4. 17. 10:31

📌 개념 정리 ────────────────────────

 

1️⃣ Python 이란?

  • 1991년 귀도 반 로섬이 공개한 고급 인터프리터 언어.
  • 가독성·생산성·방대한 생태계로 사랑받음.

2️⃣ Python 으로 할 수 있는 일 💡

카테고리 대표 라이브러리 한 줄 설명

업무 자동화 openpyxl, python‑pptx 엑셀·PPT 보고서 자동 생성
웹 크롤링 requests, BeautifulSoup, Selenium 사이트 데이터 수집
데이터 분석 pandas, numpy CSV→통계·시각화
머신러닝 · 딥러닝 scikit‑learn, tensorflow, torch 모델 학습·추론

 

3️⃣ Python 으로 “잘” 안 하는 일 ⚠️

  • 고성능 3D 게임 엔진(주 언어 C++)
  • 모바일 네이티브 앱(안드로이드 Java/Kotlin, iOS Swift)
    (Kivy, BeeWare 등 예외는 있으나 생태계 작음)

4️⃣ Python 선택 이유 🎯

  • 문법이 쉽다 → 10줄 첫 자동화 스크립트까지 학습 곡선 짧음.
  • 라이브러리 풍부 → “이미 누군가 만든” 툴 재사용.
  • 크로스플랫폼 → Windows·macOS·Linux 모두 동일 코드.

🚦 동작 원리 및 구조 ────────────────────────

▶️ 실행 흐름 (CPython 기준)

  1. .py 소스코드 작성
  2. 파서가 AST(구문 트리) 생성
  3. 바이트코드( .pyc ) 컴파일
  4. 가상머신이 바이트코드를 한 줄씩 실행

구현체 특징 사용처

CPython 표준 구현, C 언어 대부분 환경
PyPy JIT 적용, 속도 ↑ 연산 집약 서비스
MicroPython MCU 탑재 IoT 기기

✅ 체크리스트 – 첫 파이썬 환경 준비

  • Python.org 에서 3.x 설치
  • python -m venv venv 로 가상환경 생성
  • pip install pandas openpyxl 필요한 패키지 설치

💻 코드 예시 및 흐름 분석 ────────────────────────

● 실습 ❶ 엑셀 자동 보고서 📊

# sales_report.py
import pandas as pd
from pathlib import Path
from openpyxl import load_workbook

src = Path('sales_raw.xlsx')
wb  = load_workbook(src)
ws  = wb.active

# 1) 데이터프레임으로 불러오기
raw = pd.read_excel(src)
summary = raw.groupby('구매자')['금액'].sum().reset_index()

# 2) 시트 추가 & 쓰기
with pd.ExcelWriter(src, engine='openpyxl', mode='a', if_sheet_exists='replace') as writer:
    summary.to_excel(writer, sheet_name='요약', index=False)

print('✅ 보고서 업데이트 완료')

흐름

  1. 입력: sales_raw.xlsx
  2. pandas 로 그룹합계 계산
  3. openpyxl 로 기존 파일에 시트 추가
  4. 작업 종료 메시지 출력

● 실습 ❷ 웹 크롤링 + 자동화 🌐

# dollar_rate.py
import requests, csv, schedule, time
from bs4 import BeautifulSoup

def fetch():
    html = requests.get('https://finance.naver.com/marketindex/').text
    soup = BeautifulSoup(html, 'html.parser')
    rate = soup.select_one('#exchangeList .value').text
    with open('usdkrw.csv','a', newline='') as f:
        csv.writer(f).writerow([time.strftime('%F %T'), rate])
    print('📥 USD/KRW =', rate)

schedule.every().hour.do(fetch)
while True:
    schedule.run_pending(); time.sleep(1)

흐름

  1. 매 시각 스케줄 트리거 → 2. HTML 파싱 → 3. 환율 추출 → 4. CSV 로그.

🧪 실전 사례 ────────────────────────

  • Netflix: pandas+pyarrow 로 수십 PB 통계 파이프라인.
  • NASA JPL: Python 스크립트로 화성 탐사선 명령 시뮬레이션.
  • 카카오 i: 파이썬 기반 챗봇 서버, TensorFlow 모델 서빙.

🧠 고급 팁 or 자주 하는 실수 ────────────────────────

❌ 흔한 실수 🛠️ 대처

패키지를 전역 설치 → 충돌 가상환경(venv, conda) 사용
Jupyter만 쓰고 소스 관리 안 함 .py 모듈화 + Git 버전관리
속도 문제로 "Python 느려" Cython·PyPy·Numpy 벡터화 검토

🔑 팁

  • 단순 자동화라면 1파일 스크립트+스케줄러로 충분.
  • 성능 병목이 보이면 프로파일링 → 부분 최적화(C/C++).

✅ 마무리 요약 및 복습 포인트 ────────────────────────

☑️ Python = 낮은 진입장벽 + 강력한 생태계. ☑️ 업무자동화·크롤링·데이터분석·머신러닝에 최적. ☑️ 인터프리터 구조와 가상환경 개념을 먼저 익히자. ☑️ 작은 스크립트 하나라도 직접 실행해 보는 경험이 중요.

"코드를 실행하는 순간, 반복 업무가 버튼 하나로 바뀝니다." 지금 바로 첫 자동화 스크립트를 만들어 보세요!