#파이썬

157 편의 글

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을 중첩해 실전 화면을 조립합니다. 시리즈 내내 확장할 할 일 앱의 화면 뼈대를 세웁니다.

PySide6로 데스크톱 앱 만들기 #1 PySide6란 — Qt와 파이썬으로 데스크톱 앱
5 분 소요

PySide6로 데스크톱 앱 만들기 #1 PySide6란 — Qt와 파이썬으로 데스크톱 앱

파이썬으로 데스크톱 앱을 만드는 선택지를 비교하고, Qt 공식 바인딩인 PySide6를 고르는 이유를 정리합니다. 설치부터 첫 창을 띄우고 이벤트 루프의 의미를 이해하는 데까지 진행합니다.

Microsoft Graph 실무 입문 #7 운영: 스로틀링, 페이지네이션, delta 쿼리, 변경 알림
7 분 소요

Microsoft Graph 실무 입문 #7 운영: 스로틀링, 페이지네이션, delta 쿼리, 변경 알림

Graph 자동화를 운영 수준으로 끌어올립니다. 429와 Retry-After를 존중하는 재시도, 놓치면 데이터가 잘리는 페이지네이션(@odata.nextLink), 폴링을 대체하는 delta 쿼리(deltaLink 상태 관리), 변경 알림 구독(검증 핸드셰이크·갱신·lifecycleNotificationUrl), JSON 배칭까지 시리즈를 마무리합니다.