모든 포스트
파이썬 패키징 #1 가상 환경: 환경이 꼬이는 원리와 venv
파이썬 환경이 꼬이는 구조적 원인부터 정리합니다. import가 패키지를 찾는 경로와 site-packages가 하나뿐이라 생기는 충돌, 시스템 파이썬을 건드리면 안 되는 이유와 PEP 668 에러의 의미, venv로 프로젝트마다 환경을 격리하는 방법, activate의 정체가 PATH 조작일 뿐이라는 것까지 다룹니다.
CDN이 속도를 높이는 방법: 캐시 히트부터 동적 콘텐츠까지
실무자 관점에서 CDN의 동작을 정리합니다. 거리(RTT)를 줄이는 엣지 구조, 캐시 히트율을 결정하는 Cache-Control과 캐시 키, 무효화와 배포 전략, 캐시가 안 되는 동적 콘텐츠까지 CDN이 돕는 방식(TLS 종료·커넥션 재사용), 그리고 히트율을 갉아먹는 흔한 실수들을 다룹니다.
NAT Gateway 요금 절감: 시간당이 아니라 처리 요금이 본체입니다
NAT Gateway 청구서를 분해하고 절감 순서를 정리합니다. 시간당·데이터 처리·인터넷 전송이 겹치는 3층 과금 구조, 다운로드에도 처리 요금이 붙는 지점, 무료인 게이트웨이 엔드포인트부터 인터페이스 엔드포인트, IPv6와 NAT 인스턴스까지 이어지는 우회 경로별 손익, 트래픽 주범을 찾는 진단 방법, 멀티 AZ 배치의 비용 구조까지 다룹니다.
PySide6로 데스크톱 앱 만들기 #4 Qt Designer와 UI 파일 — 화면을 그려서 불러오기
PySide6에 포함된 Qt Designer로 화면을 그리고, .ui 파일을 pyside6-uic와 QUiLoader 두 방식으로 불러오는 법을 정리합니다. 코드와 화면을 분리하는 워크플로를 할 일 앱 폼으로 실습합니다.
DynamoDB vs RDS: AWS 데이터베이스 선택 기준
DynamoDB와 RDS를 가르는 실무 기준을 정리합니다. 키-밸류와 관계형이라는 데이터 모델 차이, 요청당 과금과 인스턴스 시간당 과금이 갈라 놓는 청구서 구조, 액세스 패턴을 먼저 설계해야 하는 DynamoDB의 제약, GSI가 쓰기 비용을 배수로 만드는 함정, 트래픽 패턴으로 가르는 판단 순서와 둘을 병행하는 구성까지 다룹니다.
PySide6로 데스크톱 앱 만들기 #3 시그널과 슬롯 — 이벤트 처리의 핵심
Qt 이벤트 처리의 중심인 시그널과 슬롯 모델을 정리합니다. clicked.connect부터 인자 있는 시그널, Signal로 선언하는 커스텀 시그널까지 배우고 할 일 앱에 실제 동작을 연결합니다.
Redis가 빠른 이유: 메모리, 단일 스레드, 자료구조
Redis가 초당 수십만 요청을 처리하는 구조적 이유를 정리합니다. 디스크 없는 메모리 접근, 락이 필요 없는 단일 스레드 이벤트 루프, 목적에 맞게 구현된 자료구조라는 세 기둥과, 단일 스레드의 함정(느린 명령이 전체를 막는 구조), 그리고 Redis가 느려지는 경우까지 다룹니다.
MCP(Model Context Protocol) 정리: AI가 도구를 쓰는 표준
AI 에이전트 글마다 등장하는 MCP를 한 편으로 정리합니다. 도구 연동의 N×M 문제를 표준 인터페이스로 푸는 구조, 함수 호출과의 관계, 호스트·클라이언트·서버와 tools·resources·prompts 프리미티브, 2026년 현재의 채택 현황과 재단 이관, 서드파티 서버 신뢰와 프롬프트 인젝션 같은 보안 주의점, 도입이 필요한 경우와 아닌 경우까지 다룹니다.
PySide6로 데스크톱 앱 만들기 #2 위젯과 레이아웃 — 화면을 조립하는 법
자주 쓰는 위젯을 카탈로그로 정리하고, QVBoxLayout과 QHBoxLayout을 중첩해 실전 화면을 조립합니다. 시리즈 내내 확장할 할 일 앱의 화면 뼈대를 세웁니다.
데이터베이스 인덱스가 하는 일: B-tree, 조회 비용, 쓰기의 대가
인덱스가 조회를 빠르게 만드는 원리를 B-tree 구조에서 풀어냅니다. 풀 스캔과의 비용 차이, 복합 인덱스와 컬럼 순서, 인덱스가 공짜가 아닌 이유(쓰기 비용·저장 공간), 어떤 컬럼에 인덱스를 만들고 어떤 컬럼에는 만들지 않는지의 실무 기준까지 정리합니다.
PySide6로 데스크톱 앱 만들기 #1 PySide6란 — Qt와 파이썬으로 데스크톱 앱
파이썬으로 데스크톱 앱을 만드는 선택지를 비교하고, Qt 공식 바인딩인 PySide6를 고르는 이유를 정리합니다. 설치부터 첫 창을 띄우고 이벤트 루프의 의미를 이해하는 데까지 진행합니다.
RAG vs 파인튜닝 vs 롱 컨텍스트: LLM에 지식을 넣는 방법 선택
LLM에 우리 데이터를 넣는 세 가지 방법을 가르는 실무 기준을 정리합니다. 검색해서 주입하는 RAG, 가중치를 바꾸는 파인튜닝, 통째로 넣고 캐싱하는 롱 컨텍스트의 구조 차이, 파인튜닝은 지식이 아니라 행동을 가르치는 도구라는 경계, 갱신 빈도와 지식 크기로 가르는 판단 순서, 셋을 조합하는 실전 구성까지 다룹니다.