#파이썬

147 편의 글

파이썬 패키징 #5 의존성 잠금: lock 파일과 재현성
5 분 소요

파이썬 패키징 #5 의존성 잠금: lock 파일과 재현성

선언과 잠금이 왜 분리되는지에서 시작해 uv.lock의 내용을 직접 읽습니다. 전이 의존성까지 전부 고정하는 해석 결과, 해시 검증이 막는 공급망 위험, CI에서 --frozen으로 잠금 그대로 재현하는 법, 업그레이드를 일상 업무로 만드는 전략, 도구 간 이동을 여는 표준 pylock.toml(PEP 751)까지 다룹니다.

파이썬 패키징 #4 uv: 2026년 표준 워크플로
5 분 소요

파이썬 패키징 #4 uv: 2026년 표준 워크플로

가상 환경, 의존성 설치, lock, 파이썬 버전 관리를 한 도구로 묶은 uv의 일상 워크플로를 정리합니다. init·add·sync·run 네 명령이 앞 편들의 수작업을 대체하는 과정, 파이썬 인터프리터까지 uv가 설치하는 구조, uvx와 uv tool로 전역 도구를 격리 설치하는 법, 기존 requirements.txt 프로젝트를 흡수하는 마이그레이션까지 다룹니다.

PySide6로 데스크톱 앱 만들기 #7 패키징과 배포 — PyInstaller로 실행 파일 만들기
7 분 소요

PySide6로 데스크톱 앱 만들기 #7 패키징과 배포 — PyInstaller로 실행 파일 만들기

파이썬이 설치되지 않은 컴퓨터에서도 실행되도록 PyInstaller로 앱을 묶는 절차를 정리합니다. onedir과 onefile의 트레이드오프, 데이터 파일 포함, 플랫폼별 주의점과 pyside6-deploy까지 다루는 시리즈의 마지막 편입니다.

파이썬 패키징 #3 pyproject.toml: 프로젝트 설정의 표준
5 분 소요

파이썬 패키징 #3 pyproject.toml: 프로젝트 설정의 표준

setup.py와 흩어진 설정 파일들의 시대가 pyproject.toml 한 파일로 수렴한 과정을 정리합니다. project 테이블의 메타데이터와 의존성 선언, extras와 dependency-groups로 선택 의존성과 개발 의존성을 가르는 법, build-system의 역할, ruff와 pytest 설정까지 tool 테이블로 모으는 실전 구성을 다룹니다.

PySide6로 데스크톱 앱 만들기 #6 스레드와 타이머 — 멈추지 않는 UI
6 분 소요

PySide6로 데스크톱 앱 만들기 #6 스레드와 타이머 — 멈추지 않는 UI

버튼 하나에 긴 작업을 연결하면 창 전체가 응답을 멈추는 이유를 이벤트 루프 구조로 확인하고, QThread와 Worker 패턴으로 UI를 멈추지 않게 만드는 정석 코드를 완성합니다. 주기 작업을 처리하는 QTimer까지 다룹니다.

파이썬 패키징 #2 pip와 requirements.txt: 전통 워크플로의 한계
5 분 소요

파이썬 패키징 #2 pip와 requirements.txt: 전통 워크플로의 한계

pip의 동작 원리와 requirements.txt 워크플로를 정리하고, 이 방식이 어디서 무너지는지 짚습니다. 버전 지정자를 읽는 법, pip freeze가 직접 의존성과 전이 의존성을 구분하지 못하는 문제, 버전을 안 박으면 설치 시점마다 결과가 달라지는 재현성 구멍, constraints 파일까지 다루며 다음 세대 도구가 나온 이유를 만듭니다.

PySide6로 데스크톱 앱 만들기 #5 모델과 뷰 — 리스트·테이블에 데이터 연결
7 분 소요

PySide6로 데스크톱 앱 만들기 #5 모델과 뷰 — 리스트·테이블에 데이터 연결

위젯에 데이터를 직접 넣는 방식의 한계를 짚고, Qt의 모델/뷰 구조로 넘어갑니다. QAbstractTableModel 상속 구현, 데이터 변경 통지, QSortFilterProxyModel 검색 필터, 선택 처리까지 할 일 테이블로 실습합니다.

파이썬 서버가 느릴 때: py-spy로 5분 안에 병목 찾기
5 분 소요

파이썬 서버가 느릴 때: py-spy로 5분 안에 병목 찾기

운영 중인 파이썬 프로세스에 코드 수정·재시작 없이 붙는 샘플링 프로파일러 py-spy 사용법을 정리합니다. dump로 멈춘 프로세스의 정체 확인, top으로 실시간 병목 관찰, record와 플레임그래프, --idle로 보는 off-CPU 대기, GIL 관점의 해석, 컨테이너에서 쓰는 법까지 다룹니다.

파이썬 패키징 #1 가상 환경: 환경이 꼬이는 원리와 venv
5 분 소요

파이썬 패키징 #1 가상 환경: 환경이 꼬이는 원리와 venv

파이썬 환경이 꼬이는 구조적 원인부터 정리합니다. import가 패키지를 찾는 경로와 site-packages가 하나뿐이라 생기는 충돌, 시스템 파이썬을 건드리면 안 되는 이유와 PEP 668 에러의 의미, venv로 프로젝트마다 환경을 격리하는 방법, activate의 정체가 PATH 조작일 뿐이라는 것까지 다룹니다.

PySide6로 데스크톱 앱 만들기 #4 Qt Designer와 UI 파일 — 화면을 그려서 불러오기
7 분 소요

PySide6로 데스크톱 앱 만들기 #4 Qt Designer와 UI 파일 — 화면을 그려서 불러오기

PySide6에 포함된 Qt Designer로 화면을 그리고, .ui 파일을 pyside6-uic와 QUiLoader 두 방식으로 불러오는 법을 정리합니다. 코드와 화면을 분리하는 워크플로를 할 일 앱 폼으로 실습합니다.

PySide6로 데스크톱 앱 만들기 #3 시그널과 슬롯 — 이벤트 처리의 핵심
5 분 소요

PySide6로 데스크톱 앱 만들기 #3 시그널과 슬롯 — 이벤트 처리의 핵심

Qt 이벤트 처리의 중심인 시그널과 슬롯 모델을 정리합니다. clicked.connect부터 인자 있는 시그널, Signal로 선언하는 커스텀 시그널까지 배우고 할 일 앱에 실제 동작을 연결합니다.

PySide6로 데스크톱 앱 만들기 #2 위젯과 레이아웃 — 화면을 조립하는 법
5 분 소요

PySide6로 데스크톱 앱 만들기 #2 위젯과 레이아웃 — 화면을 조립하는 법

자주 쓰는 위젯을 카탈로그로 정리하고, QVBoxLayout과 QHBoxLayout을 중첩해 실전 화면을 조립합니다. 시리즈 내내 확장할 할 일 앱의 화면 뼈대를 세웁니다.