프롬프트 토큰 수 미리 세기 — 글자 수 어림과 실제 차이 실측 (tiktoken)

프롬프트 토큰 수 미리 세기 — 글자 수 어림과 실제 차이 실측 (tiktoken)

AI에 긴 문서를 넣기 전에 “이게 몇 토큰이지?”를 글자 수로 어림하는 경우가 많습니다. 흔히 듣는 기준이 “4글자에 1토큰”인데, 한글 글에서는 크게 빗나갑니다. 이 블로그에 실제로 발행한 한글 원고로 토큰 수 계산을 tiktoken으로 해 보니, 4글자=1토큰으로 어림한 값은 실제의 절반 정도(-42~-53%)였습니다. 영어 문서에서는 +16%로 꽤 맞았는데도요. 이 글에서는 tiktoken 설치와 처음 만난 SSL 오류, 글 종류별 … 더 읽기

파이썬 cProfile 사용법 — 느린 스크립트 병목 찾기, 2.9초를 0.3초로 (실측)

파이썬 cProfile 사용법 — 느린 스크립트 병목 찾기, 2.9초를 0.3초로 (실측)

매일 돌리는 파이썬 스크립트가 점점 느려지는데 어디가 느린지 모를 때, 감으로 코드를 고치기 시작하면 엉뚱한 곳에 시간을 쓰기 쉽습니다. 파이썬 cProfile 사용법을 알면 설치 없이 명령 한 줄로 “어느 함수가 몇 번 불려 몇 초를 썼는지” 표로 볼 수 있습니다. 접속 로그 10만 줄을 요약하는 스크립트로 직접 해 보니, 처음 버전은 2.92초가 걸렸고 cProfile 표를 … 더 읽기

파일 이름 일괄 변경 파이썬 스크립트 — 미리보기·되돌리기까지, 1,000개 0.97초 (실측)

파일 이름 일괄 변경 파이썬 스크립트 — 미리보기·되돌리기까지, 1,000개 0.97초 (실측)

사진 수백 장을 여행_001.jpg처럼 번호로 정리하거나, 다운로드할 때 붙은 보고서 (1).docx의 ” (1)”을 한꺼번에 지우고 싶을 때가 있습니다. 파일 이름 일괄 변경은 파이썬 몇 줄이면 되지만, 몇 줄짜리로 바로 실행하면 번호가 뒤섞이거나 중간에 멈춰 폴더가 반쯤 바뀐 상태로 남습니다. 직접 단순한 버전부터 돌려 보니 IMG_10.JPG가 여행_002.jpg가 됐고, ” (1)” 지우기와 번호 밀기는 둘 다 FileExistsError로 … 더 읽기

파이썬 메모리 사용량 줄이기 — 큰 파일 한 번에 읽지 않는 법, 512MB CSV로 방식별 실측

파이썬 메모리 사용량 줄이기 — 큰 파일 한 번에 읽지 않는 법, 512MB CSV로 방식별 실측

로그나 CSV가 커지면 잘 돌던 스크립트가 어느 날 MemoryError를 내거나, 작업 관리자에서 파이썬 하나가 몇 GB를 잡고 PC 전체가 느려집니다. 원인은 대부분 코드 한 줄, 파일을 “한 번에” 읽는 습관입니다. 이 글에서는 파이썬 메모리 사용량 줄이기를 주제로, 같은 512MB CSV(1,500만 행)를 일곱 가지 방식으로 읽어 같은 집계를 내고 최대 메모리를 직접 재 봤습니다. 이 노트북(윈도우 … 더 읽기

AI 코드 검증 — AI가 짠 파이썬 코드, 실행 전에 위험한 줄 자동 점검하기 (실측)

AI 코드 검증 — AI가 짠 파이썬 코드, 실행 전에 위험한 줄 자동 점검하기 (실측)

ChatGPT나 Claude에게 “다운로드 폴더 정리 스크립트 짜 줘”라고 하면 몇 초 만에 그럴듯한 코드가 나옵니다. 문제는 그 코드를 끝까지 읽지 않고 바로 실행하는 습관입니다. 수십 줄 중 한 줄에 shutil.rmtree나 shell=True가 숨어 있으면, 실행하고 나서야 알게 됩니다. 이 글에서는 AI 코드 검증의 첫 단계로, 코드를 실행하지 않고 위험한 줄만 골라 줄 번호와 함께 알려 주는 … 더 읽기

argparse 사용법 — 파이썬 스크립트에 명령줄 옵션 붙이기, 직접 걸려 본 함정 4가지 (실측)

argparse 사용법 — 파이썬 스크립트에 명령줄 옵션 붙이기, 직접 걸려 본 함정 4가지 (실측)

처음 만든 스크립트는 보통 sys.argv[1]로 값을 받습니다. 혼자 쓸 때는 괜찮지만, 며칠 지나 다시 실행하거나 다른 사람에게 넘기면 “인자 순서가 뭐였더라”부터 막힙니다. 이 글에서는 파이썬 표준 라이브러리인 argparse 사용법을 오래된 파일을 보관 폴더로 옮기는 실용 스크립트에 붙여 보며 정리합니다. 이 노트북(윈도우 11, Python 3.12.10)에서 직접 돌려 보니, 기본값 그대로 둔 argparse가 –move가 아니라 –mov라고만 쳐도 … 더 읽기

CSV 데이터로 매일 요약 리포트(HTML) 자동 만들기 — 105만 행 2.8초, 표준 라이브러리만 (실측)

CSV 데이터로 매일 요약 리포트(HTML) 자동 만들기 — 105만 행 2.8초, 표준 라이브러리만 (실측)

매일 쌓이는 주문·방문·로그 CSV를 엑셀로 열어 합계를 내고, 전날과 비교하고, 표를 정리해 공유하는 일은 하루 10분이어도 한 달이면 다섯 시간이 넘습니다. 이 글에서는 CSV 리포트 자동 생성을 파이썬 표준 라이브러리만으로 만들어 봅니다. 결과물은 브라우저로 바로 열리는 HTML 파일 하나이고, 매출 합계·전일 대비·최근 7일 평균 대비·분류별 비중·상품 TOP 5·시간대별 막대그래프가 들어갑니다. 이 노트북(윈도우 11, Python 3.12.10)에서 … 더 읽기

파이썬 requests가 응답 없이 멈출 때 — timeout·재시도 실측

파이썬 requests가 응답 없이 멈출 때 — timeout·재시도 실측

파이썬으로 API를 부르거나 웹페이지를 가져오는 스크립트가 아무 오류 없이 멈춰 있는 경우가 있습니다. 대부분 requests timeout을 지정하지 않았거나, 지정했더라도 그 의미를 잘못 알고 있어서 생깁니다. 이 노트북(윈도우 11, Python 3.12, requests 2.34.2, urllib3 2.7.0)에 일부러 느리게 응답하는 테스트 서버를 띄워 놓고 직접 재 봤습니다. 가장 의외였던 결과는 timeout=5를 줬는데도 요청이 19.01초 동안 끝나지 않은 것이었습니다. … 더 읽기

이미지 webp 일괄 변환 — 블로그 이미지 48MB를 3.5MB로 줄인 파이썬 스크립트 (실측)

이미지 webp 일괄 변환 — 블로그 이미지 48MB를 3.5MB로 줄인 파이썬 스크립트 (실측)

블로그에 올리는 이미지는 생각보다 무겁습니다. 이 블로그의 대표이미지 59장(1200×675 PNG)만 해도 합쳐서 20.3MB였고, 한 장에 1MB 가까운 것도 있었습니다. 페이지가 무거우면 모바일에서 늦게 뜨고, 이미지가 쌓일수록 호스팅 용량도 줄어듭니다. 그래서 이미지 webp 일괄 변환 스크립트를 파이썬으로 만들어 이 노트북(윈도우 11, Python 3.12, Pillow 12.3)에서 직접 돌려 봤습니다. 대표이미지 59장과 윈도우 기본 배경화면 사진 36장, 합계 … 더 읽기

git 커밋 파일 삭제 —실수로 올린 큰 파일·비밀키를 히스토리에서 완전히 지우기 (실측)

git 커밋 파일 삭제 —실수로 올린 큰 파일·비밀키를 히스토리에서 완전히 지우기 (실측)

백업 압축 파일이나 API 키가 든 설정 파일을 깃에 같이 올렸다는 걸 뒤늦게 알면, 보통 git rm으로 지우고 커밋합니다. 그런데 git 커밋 파일 삭제는 그렇게 끝나지 않습니다. 이 노트북(윈도우 11, git 2.55)에서 50MB 파일과 가짜 비밀키를 커밋했다가 git rm으로 지우는 상황을 그대로 재현해 봤더니, 파일은 목록에서 사라졌지만 .git 폴더는 여전히 50.0MB였고, 원격에서 새로 clone한 사람도 … 더 읽기