PHpullh

STATIC LEARNING LIBRARY

Python 학습 예제

200개 예제를 개별 HTML 문서로 제공합니다. 검색엔진과 공유 링크에서 각 주제를 바로 열 수 있습니다.

가상환경 설정

Python 프로젝트마다 독립된 패키지 환경을 만드는 venv 모듈 사용법입니다. 시스템 Python을 오염시키지 않고 프로젝트별 의존성을 관리할 수 있습니다.

OrderedDict

OrderedDict는 삽입 순서를 보장하며, 순서 관련 추가 기능을 제공합니다. Python 3.7+에서 일반 dict도 순서를 보장하지만 차이점이 있습니다.

metaclass 기초

메타클래스는 "클래스의 클래스"로, 클래스 생성 과정을 커스터마이즈합니다. type을 상속하여 __new__나 __init_subclass__를 오버라이드하면 클래스 생성 시 자동 검증, 등록, 변형이 가능합니다.

Protocol — 구조적 서브타이핑

typing.Protocol은 Go의 인터페이스처럼 구조적 서브타이핑(덕 타이핑의 정적 버전)을 지원합니다. 클래스가 명시적으로 상속하지 않아도, 필요한 메서드와 속성만 가지면 해당 프로토콜을 만족합니다.

믹스인 패턴

믹스인은 다중 상속으로 클래스에 특정 기능을 추가하는 패턴입니다. 단일 책임 원칙을 유지하면서 기능을 조합합니다.

전략 패턴

전략 패턴으로 알고리즘을 캡슐화하고 런타임에 교체할 수 있게 합니다. Python에서는 함수를 전략으로 사용할 수 있습니다.

trio 소개

trio는 구조적 동시성을 핵심 원칙으로 하는 비동기 라이브러리입니다. asyncio의 대안으로 사용됩니다.

파이썬 패키징 — pyproject.toml

PEP 621 표준인 pyproject.toml은 setup.py를 대체하는 선언적 패키지 설정 파일입니다. 빌드 시스템, 의존성, 메타데이터를 하나의 파일에 정의하며, pip, poetry, hatch 등 모든 도구가 지원합니다.

PyPy

PyPy는 JIT 컴파일러를 내장한 Python 인터프리터로, CPython 대비 수배~수십배 빠른 성능을 제공합니다.

Pydantic 모델 검증

Pydantic은 Python 타입 힌트를 활용해 런타임 데이터 검증을 자동화합니다. API 요청/응답, 설정 파일, 외부 데이터 파싱에서 타입 안전성을 보장하며, FastAPI의 핵심 기반 라이브러리입니다.