태그: Python
43편
-
JSON 직렬화에서 데이터가 사라지는 경우: Date·BigInt·순환 참조, 검증, 대용량 성능
JSON.stringify/parse, json.dumps/loads부터 Date·BigInt·순환 참조 데이터 손실, Zod/Pydantic 검증, 대용량 페이로드 성능까지 언어 무관으로 정리한 직렬화 가이드.
-
CPython 내부로 이해하는 Python: 바이트코드와 인터프리터, GIL, 가비지 컬렉션, 임포트 시스템
CPython이 소스를 바이트코드로 컴파일해 ceval 루프로 실행하는 구조, GIL이 풀리는 시점과 threading·multiprocessing 선택, 참조 카운트와 세대별 GC, sys.modules와 importlib 임포트 경로, 순환 임포트를 설명합니다.
-
uv와 Rye로 Python 프로젝트 관리하기: pyproject.toml, 가상환경, Python 버전, lock 파일, Docker
Rye가 uv로 합쳐진 배경과 함께, uv로 pyproject.toml 기반 프로젝트를 만들고 가상환경, Python 버전, uv.lock, 워크스페이스를 관리하는 방법을 다룹니다. Docker 캐시, GitHub Actions 설정, uv sync 실패 같은 문제 해결도 포함합니다.
-
DuckDB로 로컬 분석하기: Parquet·CSV 직접 쿼리, pandas 통합, 대용량 메모리 관리
로컬에서 돌아가는 분석용 DB DuckDB 정리. 설치와 SQL 기능, Parquet·CSV·JSON 직접 쿼리, Python pandas 통합, Node.js 바인딩, S3 원격 파일, 대용량 데이터 메모리 관리와 실전 패턴을 다룹니다.
-
FastAPI로 Python API 만들기: 타입 검증, 의존성 주입, SQLModel·asyncpg, JWT, 배포
FastAPI 정리. Pydantic과 타입 힌트 기반 자동 검증, OpenAPI 문서, 의존성 주입, SQLModel·asyncpg 데이터베이스, JWT 인증, CORS, 백그라운드 태스크, uvicorn·Docker 배포를 예제로 다룹니다.
-
MCP(Model Context Protocol) 서버 만들기: Python·TypeScript 구현과 Claude Desktop 연결
MCP(Model Context Protocol)는 Anthropic이 만든 AI와 외부 도구 연결 표준입니다. Claude Desktop, Cursor, VS Code에서 MCP 서버를 만들고 연결하는 방법을 Python·TypeScript 예제로 설명합니다.
-
Python 실전 데이터 분석 | Pandas로 데이터 분석하기
Pandas로 CSV를 불러와 기본 탐색을 하고, 분포와 상관관계를 보는 EDA, groupby 그룹 집계, resample과 rolling을 쓴 시계열 분석, 고객 분석 예제와 이상치 플래그 요약까지 실제 분석 순서대로 진행합니다.
-
SDL2 실전 가이드 | 게임 개발 입문
SDL2로 윈도우를 띄우고 키보드·마우스·게임패드 이벤트, 도형과 텍스처 렌더링, SDL_image·SDL_ttf·SDL_mixer, 델타 타임 기반 게임 루프, AABB 충돌 감지를 C++과 PySDL2 예제로 익히고 Pong과 플랫포머를 만듭니다.
-
GStreamer 실전 가이드 | 파이프라인·C/Python·gst-launch로 멀티미디어 다루기
GStreamer 1.x로 재생·인코딩·스트리밍 파이프라인을 구성하는 방법을 정리합니다. Element·Pad·Caps 개념, gst-launch-1.0, C API, Python gi 예제, Bus 메시지·GST_DEBUG까지.
-
C++·Python·Java·JavaScript 성능 최적화: 프로파일링부터 알고리즘·메모리·언어별 기법까지
C++·Python·Java·JavaScript 코드가 느릴 때 언어별 프로파일러로 병목을 먼저 찾고, 시간복잡도 개선과 메모이제이션, 언어별 메모리 최적화, 각 런타임에 맞는 최적화 기법을 적용하는 순서를 설명합니다.
-
언어별 자료구조 비교: C++, Python, Java, JavaScript 표준 컬렉션
C++ vector, Python list, Java ArrayList, JavaScript Array처럼 이름이 비슷한 컬렉션이 내부 구현과 성능에서 어떻게 다른지 배열, 연결 리스트, 맵, 셋 순으로 비교하고 언어별로 알맞은 자료구조 선택 기준을 제시합니다.
-
Python pip uv poetry 비교 | 속도·lock·가상환경·프로젝트 세팅
pip와 venv, uv, Poetry가 각각 맡는 역할을 설치 속도, lock 파일, 가상환경 관리, pyproject.toml 기준으로 비교하고, 재현 가능한 빌드와 CI 캐시 설정, 프로젝트 규모별 세팅 패턴을 제시합니다.
-
Python 실전 시리즈 전체 목차 | #01~#23 학습 경로·영문 글·연관 글
환경 설정과 기본 문법(#01)부터 작업 스케줄링(#23)까지 Python 시리즈 23편을 입문·웹·데이터·자동화 트랙으로 나눠 읽는 순서를 안내합니다. venv·Poetry 같은 도구 선택, 어디서 건너뛰어도 되는지, 함께 읽을 단편 글도 짚어 둡니다.
-
프로그래밍 언어별 흔한 에러 해결 가이드 | C++, Python, Java, JavaScript
C++ 세그폴트와 undefined reference, Python IndentationError·TypeError, Java NullPointerException, JavaScript의 undefined 속성 접근과 this 바인딩까지 언어별로 자주 만나는 에러의 원인과 해결 코드를 보여줍니다.
-
Python list vs tuple vs set: 성능·가변성 차이와 선택 기준
Python list, tuple, set을 가변성, in 검색과 추가·삭제 성능, 메모리 사용량 기준으로 비교하고, set 인덱싱이나 list를 딕셔너리 키로 쓰는 실수, named tuple과 set 연산 활용, 상황별 선택 플로우를 설명합니다.
-
Python 데이터 처리 스크립트 최적화 사례 | cProfile로 병목 찾고 NumPy·Cython·multiprocessing 비교하기
느린 Python 데이터 처리 스크립트를 cProfile로 분석해 중첩 루프와 문자열 연산 병목을 찾고, NumPy 벡터화, Cython, multiprocessing을 차례로 적용해 실행 시간을 줄여 간 과정을 단계별 측정 결과와 함께 보여 줍니다.
-
Python 컴프리헨션: 리스트·딕셔너리·세트 컴프리헨션과 가독성 기준
리스트·딕셔너리·세트 컴프리헨션의 문법과 필터링, if-else 변환, 중첩 루프 순서를 예제로 익히고, 대용량 데이터에서 제너레이터 표현식으로 메모리를 아끼는 방법을 비교합니다. CSV 파싱과 API 응답 처리 같은 실전 예제도 담았습니다.
-
Python 데코레이터: 동작 원리, functools.wraps, 인자 있는 데코레이터
함수를 감싸는 기본 데코레이터에서 시작해 인자를 받는 데코레이터 팩토리, 캐싱·인증·재시도 데코레이터, 클래스 데코레이터를 차례로 만들어 봅니다. functools.wraps로 이름과 docstring을 보존하는 방법과 여러 데코레이터의 적용 순서도 설명합니다.
-
Flask 기초 | Python 웹 프레임워크 시작하기
pip로 Flask를 설치하고 Hello World를 띄운 뒤 라우팅과 HTTP 메서드, Jinja2 템플릿, 폼 데이터 처리, jsonify를 쓴 REST API, 세션과 쿠키까지 차례로 구현합니다. 마지막에는 간단한 블로그 API를 만들어 앞의 기능을 묶어 봅니다.
-
Django 기초 | Python 풀스택 웹 프레임워크 시작하기
startproject로 프로젝트를 만들고 모델 정의와 마이그레이션, 함수형·클래스형 뷰, URL 패턴, 템플릿, Admin 등록을 거쳐 간단한 블로그를 완성합니다. select_related로 N+1 쿼리를 줄이는 법과 DRF API, 배포 전 체크리스트도 담았습니다.
-
Python REST API | Flask/Django로 API 서버 만들기
Python으로 REST API를 만드는 방법. RESTful 설계 원칙, Flask CRUD API, Django REST Framework의 시리얼라이저·ViewSet·라우팅, JWT 인증과 권한, 에러 응답 처리까지 예제로 정리합니다.
-
Python 데이터베이스: SQLite, PostgreSQL 연결과 ORM
sqlite3로 테이블을 만들고 SQL을 실행하는 기본에서 출발해 SQLAlchemy ORM 모델 정의, CRUD, 일대다 relationship 설정, Flask와 SQLAlchemy를 묶은 API 예제까지 다룹니다. 트랜잭션과 연결 해제, N+1 쿼리 문제도 짚습니다.
-
Python 웹 앱 배포: Heroku, AWS, Docker
Python 웹 앱을 서버에 올리기 전에 requirements.txt, .env 환경 변수, Gunicorn 설정을 다지고, Docker·docker-compose, Heroku Procfile, EC2와 Nginx 리버스 프록시 배포 절차를 순서대로 따라갑니다.
-
Pandas 기초: DataFrame 만들기, 선택·필터링·집계
Series와 DataFrame 생성, CSV·Excel 입출력, info와 describe로 데이터 훑기, loc·iloc 선택과 조건 필터링, groupby 집계, merge와 concat 병합을 예제로 익힙니다. 판매 데이터 분석 예제로 전체 흐름을 한 번 더 따라갑니다.
-
Matplotlib 기초: Python 데이터 시각화 그래프 그리기
plt.plot 선 그래프에서 시작해 막대·가로 막대 그래프, 히스토그램, 산점도, subplots로 여러 그래프 배치까지 예제로 그려 봅니다. 판매 데이터 시각화와 회귀선이 있는 산점도·잔차 플롯 예제, 스타일과 폰트를 한 번에 맞추는 설정도 담았습니다.
-
Python 데이터 전처리: 결측치, 이상치, 정규화
pandas로 하는 데이터 전처리. 결측치 확인과 처리, IQR·Z-Score 이상치 처리, Min-Max 정규화와 표준화, 범주형 데이터 인코딩까지 모델 학습 전에 필요한 단계를 예제로 정리합니다.
-
Python 파일 자동화 | 파일 정리, 이름 변경, 백업 자동화
glob과 pathlib로 확장자·수정 시간 조건에 맞는 파일을 찾고, 일괄 이름 변경과 순번 붙이기, 확장자별 폴더 정리, 자동 백업과 오래된 백업 삭제, 해시로 중복 파일 찾기를 Python 스크립트로 구현합니다.
-
Python 웹 스크래핑: BeautifulSoup와 Selenium
requests로 HTML을 가져오고 BeautifulSoup로 태그를 파싱해 뉴스 목록을 수집한 뒤, JavaScript로 그려지는 페이지는 Selenium으로 다룹니다. 상품 가격 모니터링 예제, CSV 저장, 요청 간격과 robots.txt 같은 스크래핑 에티켓도 설명합니다.
-
Python 작업 스케줄링: schedule·APScheduler·cron으로 자동화하기
schedule 라이브러리로 매일·매주 작업을 예약하는 방법, 크론 표현식과 여러 트리거를 지원하는 APScheduler, Windows 작업 스케줄러와 Linux cron 등록을 비교합니다. 자동 백업, 주기적 스크래핑, 이메일 리포트 발송 예제도 담았습니다.
-
Python 환경 설정 | Windows/Mac에서 Python 설치하고 시작하기
Windows·Mac·Linux에서 Python을 설치하고 pip와 requirements.txt, Poetry로 의존성을 관리하며, venv 가상환경 워크플로, VS Code·PyCharm 인터프리터 설정, src·tests 프로젝트 구조까지 개발 환경을 구성합니다.
-
Python 기본 문법: 변수·연산자·조건문·반복문과 CPython이 코드를 실행하는 방식
Python 변수와 언패킹, 타입 힌트, 산술·비교·멤버십 연산자, if-elif와 Truthy·Falsy, for·while과 루프 else절, 들여쓰기 규칙을 익히고 CPython이 이 코드를 바이트코드와 스택 머신으로 실행하는 과정을 살펴봅니다.
-
Python 자료형: 리스트·딕셔너리·튜플·세트 사용법과 CPython 내부 구조, 성능 차이
Python 내장 자료형 정리. 리스트, 딕셔너리, 튜플, 세트의 사용법과 선택 기준, 성능 비교, CPython에서 list와 dict의 메모리 구조, 자주 하는 실수와 고급 활용 패턴을 다룹니다.
-
Python 함수: 매개변수, 반환값, 람다, 데코레이터
위치·키워드·기본값 인자와 *args, **kwargs 규칙부터 람다, nonlocal을 쓰는 클로저, 데코레이터 작성까지 Python 함수를 예제로 익힙니다. 마지막에는 클로저가 cell 객체로 값을 붙잡는 방식과 @ 문법이 실제로 풀리는 모습을 CPython 관점에서 봅니다.
-
Python 클래스: 객체지향 프로그래밍(OOP) 기초와 특수 메서드
self와 __init__, 클래스 변수와 인스턴스 변수의 차이에서 시작해 상속과 super(), @property 캡슐화, __str__·__len__·__call__ 같은 특수 메서드, @classmethod와 @staticmethod, 추상 클래스까지 Python 객체지향을 예제로 짚습니다.
-
Python 모듈과 패키지: import, pip, 가상환경
import 네 가지 방식의 차이, __name__ == "__main__" 동작, 모듈 검색 경로와 상대·절대 import, __init__.py로 패키지 만들기를 설명합니다. pip와 requirements.txt, venv 가상환경으로 프로젝트별 의존성을 분리하는 방법까지 다룹니다.
-
Python 파일 처리: 텍스트·CSV·JSON 읽고 쓰기
open과 with 문으로 텍스트 파일을 읽고 쓰는 기본에서 출발해 csv 모듈의 reader·DictWriter, json.load와 json.dump, pathlib 경로 처리를 예제로 보여줍니다. 로그 파일 분석과 설정 파일 관리 스크립트로 실제 쓰임새까지 연결합니다.
-
Python 예외 처리: try-except, raise, 커스텀 예외
try-except의 기본과 else·finally가 각각 언제 실행되는지, raise로 예외를 던지고 다시 올리는 방법, Exception을 상속한 커스텀 예외 설계를 코드로 설명합니다. 안전한 파일 처리와 재시도 로직 예제로 실제 적용 방식도 보여줍니다.
-
정렬 문제 풀이: 커스텀 비교 함수, 안정 정렬, 코딩 테스트 정렬 패턴
코딩 테스트 정렬 문제 풀이, 커스텀 key, 퀵·머지·힙·카운팅 정렬의 내부 동작과 프로덕션 정렬 패턴까지 정리합니다. 코딩 테스트에서 정렬은 문제 해결의 첫 단계인 경우가 많습니다. 후보를 점수·시간 순으로 줄이거나, 그리디·이진 탐색 전에 순서를 맞출 때 sort와 key만으로 조건을 표현하는 경우가 많습니다.
-
C++와 Python 중 무엇을 먼저 배울까: 속도, 학습 난이도, 취업 시장 비교
첫 언어로 C++와 Python 중 무엇을 고를지 실행 속도, 학습 곡선, 쓰이는 분야와 취업 시장을 기준으로 비교합니다. 같은 작업을 두 언어로 작성한 코드, 피보나치 계산 벤치마크, 게임·시스템 개발과 데이터 분석 등 목표별 추천 경로를 담았습니다.
-
pybind11로 C++와 Python 연결하기: 모듈·클래스 바인딩, NumPy zero-copy, GIL, 예외 변환
pybind11로 C++ 함수·클래스를 Python 모듈로 노출하는 방법입니다. 오버로드와 기본값 인자, 프로퍼티와 상속, 스마트 포인터 반환, NumPy 배열 zero-copy 공유, GIL 해제, C++ 예외를 Python 예외로 바꾸는 법을 예제로 설명합니다.
-
NumPy 기초: 배열 연산, 브로드캐스팅, 벡터화
ndarray 생성과 벡터화 연산, 브로드캐스팅 규칙, 불린 인덱싱, reshape, 통계 함수와 행렬 연산을 예제로 설명합니다. 이미지 배열 처리와 정규화된 배치 벡터 연산 예제로 Python 리스트 루프 대신 배열 연산을 쓰는 방식을 익힙니다.
-
C++에 스크립트 엔진 붙이기: Lua·pybind11·V8 선택 기준과 바인딩, 샌드박싱
밸런스 수정마다 재빌드하지 않도록 C++에 스크립트 엔진을 붙일 때, Lua·Python(pybind11)·V8 중 무엇을 고를지 기준을 세웁니다. 임베딩과 확장의 차이, 스레드 모델, 메모리·실행 시간 제한, 엔진별 샌드박싱 가능 범위를 비교합니다.
-
C++ Python과 C++의 만남 | pybind11으로 고성능 엔진 만들기
Python 루프 중 느린 부분만 C++로 옮기기 위해 pybind11로 함수와 클래스를 노출하고 CMake·pyproject.toml로 확장 모듈을 빌드하는 과정을 보여줍니다. NumPy 배열 전달과 GIL 해제, 예외 등록, 자주 만나는 import·링크 에러 해결도 다룹니다.