Python의 GIL이란 무엇이고 성능에 어떻게 영향을 미치나
CPython의 Global Interpreter Lock을 이해하고, thread가 CPU-bound 코드를 가속하지 못하는 이유, threading, multiprocessing, free-threaded 빌드를 사용해야 할 때를 배웁니다.
CPython의 Global Interpreter Lock을 이해하고, thread가 CPU-bound 코드를 가속하지 못하는 이유, threading, multiprocessing, free-threaded 빌드를 사용해야 할 때를 배웁니다.
pyproject.toml으로 Python 라이브러리를 패킹하고, wheel을 빌드하며, TestPyPI에서 테스트하고, token 또는 Trusted Publishing으로 PyPI에 배포하는 가이드입니다.
스레딩이 무거운 CPU 작업을 가속화하지 못하는 이유와 multiprocessing, Pool, ProcessPoolExecutor를 사용해 모든 CPU 코어를 활용하는 방법.
Production용 Python logging 설정: 모듈별 logger, dictConfig, JSON 로그, contextvars를 통한 request_id, QueueHandler, caplog를 사용한 테스트.
pathlib.Path로 os.path와 os를 대체해 경로를 연결, 분리, 읽기, 쓰기 및 디렉토리 탐색을 합니다. 비교표, pytest 테스트, 자주 발생하는 오류 포함.
try/except/else/finally 사용 방법, 사용자 정의 예외, raise from, 로깅, ExceptionGroup, pytest를 이용한 예외 테스트
Pydantic v2를 사용하여 입력 데이터를 검증하는 방법: BaseModel, Field, field_validator, model_validator, strict mode, TypeAdapter 및 pytest로 테스트하는 방법.
FastAPI와 Pydantic v2로 REST API를 만들어 잘못된 데이터를 입구에서 막고, 422 오류를 커스터마이징하고 pytest로 테스트하는 방법을 배웁니다.
pytest와 fixture를 사용해 테스트를 준비하고, 정리하고, conftest.py로 공유하며, 테스트를 매개변수화하는 방법을 배웁니다.
Python에서 list, dict, set comprehension과 generator expression을 사용하여 간결하고 읽기 쉬운 코드를 작성하는 방법, 흔한 실수, 그리고 일반 for 루프로 돌아가야 할 때
with 문의 작동 원리 이해, class 또는 contextlib을 사용한 context manager 작성, 예외 처리 및 흔한 실수 피하기
Virtual environment 생성, pip으로 패키지 관리, pyproject.toml로 Python 프로젝트 선언하는 방법, 실행 가능한 예제 및 흔한 오류 포함
Generator, yield 개념과 메모리에 전체를 로드하지 않고 거대한 파일과 데이터 스트림을 처리하는 방법을 배워봅니다.
함수가 first-class citizen부터 기본 decorator, functools.wraps, 매개변수를 받는 decorator, 클래스 기반 decorator까지 Python decorator를 완전히 배워봅시다.
Python의 asyncio와 threading을 3가지 실용적인 질문으로 구분하고, 각 상황에 맞는 동시성 모델을 선택하는 방법을 배워보세요.
Python의 dataclasses 모듈로 보일러플레이트 없이 __init__, __repr__, __eq__를 자동 생성하고, __post_init__으로 검증하며, 불변 클래스를 만들고 dict/JSON으로 변환하는 방법을 배웁니다.
type hints를 사용하여 Python 코드를 명확하게 만들고, mypy로 실행 전에 타입 오류를 잡는 방법을 알아봅시다.