글

라벨이 자동화인 게시물 표시

subprocess timeout not working 원인과 해결법

이미지
3줄 요약 먼저 확인할 것은 timeout 값이 아니라 capture_output 입니다. 같은 명령이 캡처를 켜면 20.01초, 끄면 0.00초였습니다. 그다음은 손자 프로세스입니다. timeout=2 로 10회 돌리면 예외는 매번 2.01초에 뜨지만 고아 프로세스가 10개 쌓입니다. 여기서 멈춰도 됩니다. stdout 을 파일로 받거나 start_new_session=True 와 os.killpg 를 붙이면 둘 다 0개·0.00초로 떨어집니다.

YAML 파싱 차이, 따옴표 없는 값이 파서마다 달라지는 문제

이미지
3줄 요약 따옴표 없이 적은 YAML 값은 파서를 바꾸면 다르게 읽힐까요. 같은 값 42개를 파서 5종에 넣어 대조했습니다. 다섯 곳이 모두 같은 값은 20개(47.6%)뿐이었습니다. PyYAML 6.0.3과 js-yaml 5.4.2만 놓고 보면 42개 중 20개가 다릅니다. 다만 version: 1.10 은 다섯 곳 전부 1.1로 읽습니다. 원인이 구현이 아니라 표기인 값은 파서를 바꿔도 그대로입니다.

프롬프트 캐싱 비용 계산, 5분 TTL 손익분기 정리

이미지
3줄 요약 같은 프리픽스를 TTL 안에 다시 쓰면 5분 캐시는 두 번째 호출부터, 1시간 캐시는 세 번째 호출부터 싸집니다. 공식 문서가 배율로 못 박아 둔 값이라 계산이 단순합니다. 재사용 간격이 TTL을 넘어가면 히트가 0회가 되고 쓰기 배율만 남습니다. 이 구간에서는 5분 캐시가 미캐시보다 25%, 1시간 캐시가 100% 더 비쌉니다. 경계는 하루에 몇 번 도느냐가 아니라 TTL 안에 몇 번 도느냐입니다. 제 파이프라인의 슬롯 간격은 5분의 59.3배였습니다.

oh my zsh 속도 개선, 플러그인을 지우면 빨라질까?

이미지
3줄 요약 빈 설정에서 zsh는 0.010초에 뜨고, 플러그인 세 개를 얹은 현재 설정에서는 중앙 1.310초에 뜹니다. 131배이고, 하루에 셸을 30번 열면 39초입니다. 구문 강조와 자동 제안 플러그인을 통째로 들어내면 돌아오는 시간은 3.7ms입니다. 벽시계 1.310초의 0.28%입니다. 경계는 nvm 자동 로드 360ms와 완성 시스템 233ms입니다. 둘이 프로파일에 잡힌 629ms의 94%이고, 벽시계의 나머지 절반은 프로파일러가 세는 범위 밖입니다.

vimrc 기본 설정, 빈 파일이 끄는 vim 기능과 해결법

이미지
3줄 요약 vimrc는 비어 있으면 아무 일도 하지 않고, 설정을 적을수록 편해진다고 알고 있었습니다. vim 8.2에서 옵션과 기능 37개를 조건 다섯 개로 대조하니 빈 .vimrc 파일 하나 때문에 15개가 후퇴했습니다. incsearch · wildmenu 가 꺼지고 scrolloff 는 5에서 0, history 는 200에서 50으로 내려갔습니다. 판단 기준은 vimrc에 무엇을 적었는가가 아니라 vim -c 'echo exists("#vimStartup#BufReadPost")' 가 1을 돌려주는가입니다.

uv 설치 후 버전이 안 바뀔 때, pip install uv 경로 문제

이미지
3줄 요약 pip install uv 가 Successfully installed uv-0.12.13 을 찍은 직후 uv --version 이 34일 전 버전인 0.12.3을 그대로 출력했습니다. pip는 ~/.local/bin 에 새 바이너리를 넣었고 셸은 /usr/local/bin 을 먼저 봅니다. 두 위치 사이에 릴리스 10개가 쌓여 있었는데 pip 경고는 0줄이었습니다. 설치 직후 which -a uv 와 python3 -c "import uv; print(uv.find_uv_bin())" 두 줄을 찍어 경로가 같은지 확인하십시오.

npm 버전 표기법 캐럿(^), 0.x 버전 주의점

이미지
3줄 요약 캐럿( ^ )은 버전의 왼쪽에서 처음 만나는 0이 아닌 자리를 고정합니다. 그래서 ^7.0.0 은 7.x 전체를, ^0.124.0 은 0.124.x만 허용합니다. 2026-09-12 기준 실측으로 ^7.0.0 은 45일 동안 openai 15개 버전을 지나 5.08MB와 export 431개가 늘었고, 같은 기간 ^0.124.0 은 만족 버전이 1개라 그대로 멈춰 있었습니다. 지금 쓰는 AI SDK의 버전이 0.x인지 1.0 이상인지부터 확인하시고, 아래 조회 스크립트로 자기 package.json 의 실제 드리프트 폭을 재 보시면 됩니다.

한글 토큰 계산, 글자수로 어림하면 안 되는 이유

이미지
3줄 요약 영어 기준 어림셈인 "1토큰 = 4자"를 한글 원고에 쓰면 토큰을 절반 이하로 잡게 됩니다. 원고 55편 624,261자 실측 결과 o200k_base 329,961토큰(토큰당 1.892자), cl100k_base 461,817토큰(1.352자)으로 인코딩만 바꿔도 1.4배가 갈립니다. 글자수÷4 추정치는 실측 대비 52.7% 모자랐습니다. 자기 원고 폴더에 gpt-tokenizer 를 붙여 한 번 세어 보고, 글자수가 아니라 바이트 수 기준 계수 로 예산표를 다시 만드시면 됩니다.

cron 중복 실행 방지, 예약 작업이 겹칠 때 해결법

이미지
3줄 요약 cron은 시작 시각만 보장하고 앞 실행이 끝났는지는 보지 않습니다. 겹침 방지는 표준 문법에 없습니다. 예약 작업 실행 29회 실측에서 소요 시간 중앙값은 29.4분인데 최대가 803분이었고, 최대와 중앙값의 차이가 27.4배였습니다. 하루 점유율은 18.2%인데도 겹침이 났습니다. 자기 작업의 소요 시간부터 열흘치 재보시고, p95가 간격을 넘으면 flock -n 한 줄을 먼저 붙이시면 됩니다.

아파트 관리비 평균 조회, 비교 기준부터 맞추는 법

이미지
3줄 요약 같은 단지 공용관리비 1,700원/㎡을 여섯 개 평균에 대보니 -6.36%에서 +23.74%까지 나왔습니다. 폭이 30.10%p이고 부호까지 뒤집혔습니다 관리비 오픈API 응답에는 면적 필드가 없습니다. ㎡당 단가를 만들려면 기본정보 API를 따로 불러야 하는데, 그 면적은 통계 화면의 면적과 기준이 다릅니다 우리 단지가 비싼지 따지기 전에 지역·단지유형·세대수 구간·난방방식 네 개를 먼저 고정하십시오

LangChain text splitter, 마크다운 코드가 깨질 때

이미지
3줄 요약 LangChain MarkdownHeaderTextSplitter 는 코드블록 안의 들여쓰기까지 지웁니다. 제 원고 45편으로 재현했더니 파이썬 코드 84개 중 67개가 문법 오류 상태로 인덱스에 들어갔습니다. 검색 자체는 멀쩡합니다. 질의 12개로 확인해 보니 어떤 분할기를 써도 정답 문서를 1등으로 찾아냈습니다. 망가지는 것은 찾은 뒤 모델에게 건네는 그 조각입니다. 코드가 든 문서를 인덱싱하고 있다면 오늘 ast.parse 한 줄짜리 검사부터 돌려 보시면 됩니다. 아래 스크립트를 그대로 쓰시면 됩니다.

프롬프트 작성법 예시, 예시 문구가 관용구로 굳는 문제

이미지
3줄 요약 하루 세 번 도는 글쓰기 예약 작업의 산출물 43편을 세어 보니, 프롬프트가 예시로 든 문구 13종이 총 215회, 편당 6.0회 등장하고 있었습니다. 프롬프트에서 문구 지정을 걷어내고 요건만 남긴 뒤 발행한 7편은 그 13종이 0회였고, 산문 길이·표·코드블록 같은 형식 지표는 그대로 유지됐습니다. 자기 에이전트 산출물이 있다면 이 글 마지막의 20줄짜리 검사 스크립트를 코퍼스 폴더에서 한 번 돌려 보시면 됩니다. 고정 목록 없이도 굳어 가는 표현이 나옵니다.

MCP 서버 Connection closed 오류 해결법

이미지
3줄 요약 stdio로 붙인 MCP 서버가 죽으면 클라이언트에는 MCPError: Connection closed 한 줄만 남고, 실제 원인은 서버 프로세스의 stderr에만 기록됩니다. mcp 2.1.1(PyPI 업로드 2026-08-26 01:13 KST) 기준으로 재현해 보니, 원인 문자열은 서버를 직접 실행해 stderr를 읽으면 6줄 안에 나왔습니다. 도구를 20개 붙이면 tools/list 응답만 9,831바이트였습니다. 서버를 붙이기 전에 아래 30줄짜리 핸드셰이크 진단 스크립트를 먼저 돌려 보시면 됩니다.

클로드 예약 작업 여러 개 운영하는 법, 공유 규칙 파일

이미지
3줄 요약 클로드 예약 작업은 실행마다 별개 세션으로 돌아가므로, 앞 작업이 만든 문맥을 뒷 작업이 이어받지 못합니다. 규칙을 프롬프트에만 적어 두면 사라집니다. 저는 8월 26일에 정한 규칙이 8월 27일 산출물에서 빠진 것을 뒤늦게 발견했습니다. 규칙은 여러 작업이 함께 읽는 문서 한 곳에 두고, 기계가 검사하게 만드시면 됩니다.

최저가 주유소, 얼마나 돌아가면 손해일까?

이미지
3줄 요약 오피넷 무료 API로 집 근처 최저가 주유소를 매일 받아보는 자동화를 만들어 봤습니다. 2026년 8월 26일 기준 알뜰(자영)과 정유사 평균의 차이는 리터당 35.55원, 40리터를 넣으면 1,422원입니다. 여기에 2026년 최저임금 10,320원으로 시간값을 매기면 왕복 2.5km가 손익분기입니다. 가격이 싼 곳을 찾는 자동화가 아니라 내 동선 위에 있는 곳 중 가장 싼 곳 을 알려주는 자동화로 바꿔 쓰시면 됩니다.