블로그
직접 써보고
남은 것.
혼자 회사를 만들며 쓴 시스템과 AI 도구를, 해본 그대로 적습니다.
유튜브 영상 소리가 작게 들릴 때 ffmpeg로 -14 LUFS에 맞추는 법 — 재기, 1단계, 2단계
유튜브에 올린 영상만 소리가 작게 들린다면 파일의 소리 크기(LUFS)를 먼저 재 보면 됩니다. 무료 ffmpeg로 지금 크기를 재는 법, loudnorm으로 -14에 맞추는 1단계·2단계 방법, I=-14를 빠뜨리면 기본값 -24로 맞춰져 더 작아지는 함정을 실제로 돌려 본 결과와 함께 정리했습니다.
AI·도구 사용기Claude 무료 계정으로 Slides·Docs·Design 쓰는 법과 무료 한도
9월부터 Claude의 Slides, Docs, Design이 무료 요금제에도 들어왔습니다. 무료 칸에 무엇이 들어 있는지, 대화에서 시작하는 법, 무료로 쓸 때 걸리는 한도와 Opus를 못 쓰는 점을 Anthropic 공식 요금제 페이지와 업데이트 기록 기준으로 정리했습니다.
문제 해결Cloudflare Pages에서 글 주소를 바꿀 때 옛 주소를 301로 넘기는 법 — _redirects 한 줄과 한글 주소 확인
블로그 글을 합치거나 주소를 바꿔도 여기저기 걸어 둔 옛 링크는 고치지 않아도 됩니다. Cloudflare Pages의 _redirects 파일에 옛 주소와 새 주소를 한 줄씩 적는 법, 끝 슬래시를 두 줄로 적는 이유, 한글 주소를 curl로 확인할 때 404가 나오는 이유를 정리했습니다.
회사 시스템 구축기맥미니 집 서버가 정전 뒤 다시 살아나는지 확인하는 법 — 자동 켜기, FileVault, 컨테이너 재시작
전기가 돌아왔을 때 맥미니 서버가 혼자 다시 올라오는지는 pmset, fdesetup, docker inspect, launchd 설정 네 가지로 미리 확인할 수 있습니다. FileVault가 켜져 있으면 잠금 화면에서 멈추는 이유와 고를 수 있는 선택지를 정리했습니다.
회사 시스템 구축기아침 7시 반에 글 초안이 와 있게 만든 구조 — 수집, 후보, 초안, 검토
매일 06:00 뉴스 요약, 06:15 주제 후보 적재, 06:20 초안 한 건, 07:30 텔레그램 알림으로 이어지는 Spring 스케줄러 체인입니다. 후보를 고르는 순서, 안 쓴 초안이 쌓이지 않게 한 장치, 초안을 그대로 올리지 않는 이유를 코드와 함께 적었습니다.
AI·도구 사용기Sphinx로 AI가 짠 코드를 push 전에 퀴즈로 확인하기 — 설치부터 건너뛰기까지
Sphinx는 main 같은 브랜치에 push할 때 바뀐 코드에 대한 질문을 던지고, 맞혀야 push를 이어 주는 무료 오픈소스 git 훅입니다. 설치 명령, 실제로 받은 질문과 오답 뒤 흐름, 코드가 어디로 나가는지, 건너뛰는 세 가지 방법을 정리했습니다.
AI·도구 사용기폰으로 집 맥의 클로드 코드를 이어서 쓰는 방법 (Orca + herdr + mosh)
집 맥에서 돌던 클로드 코드 작업을 밖에서 폰으로 확인하고 다음 지시를 보내는 구성입니다. 폰은 Orca 앱으로 연동하고, 세션은 herdr로 살려 두고, 다른 컴퓨터에서는 mosh로 붙습니다. 설정 순서와 mosh-server를 못 찾을 때 고치는 법을 적었습니다.
회사 시스템 구축기GitHub Actions와 Watchtower로 집 서버에 접속하지 않고 배포하는 방법
코드를 main에 올리면 GitHub Actions가 도커 이미지를 ghcr.io에 올리고, 집 서버의 Watchtower가 5분마다 확인해 컨테이너를 바꿔 끼우는 구성입니다. 워크플로·compose 설정, 자동으로 바꿀 컨테이너만 고르는 라벨, 실제 로그와 되돌리는 방법을 적었습니다.
AI·도구 사용기Threads API로 내 글 지표를 기간별로 한 번에 뽑는 방법 (유튜브 Analytics 포함)
Threads 앱에서 글을 하나씩 눌러 보던 조회수·좋아요·댓글·리포스트·공유를 API로 기간을 정해 한 번에 표로 받는 순서입니다. 토큰 발급과 60일 갱신, 답글 계정 조회, 유튜브 검색어·추천 영상 조회와 API로 안 나오는 지표까지 적었습니다.
AI·도구 사용기지니젠AI 한국어 리더보드로 모델 고르는 법: 7개 평가 항목과 등급 분포
오픈라우터 모델 330개를 한국어로만 채점한 허깅페이스 리더보드에서 무엇을 재는지, 등급이 어떻게 나뉘었는지, 후보를 좁히는 순서와 이 순위표가 말해 주지 않는 것을 적었습니다.
AI·도구 사용기ChatGPT 메모리에 저장된 내용 보고 고치고 지우는 법
ChatGPT가 나에 대해 기억하는 내용을 한국어 설정 화면 어디서 확인하는지, 고치기·다시 언급하지 않기·삭제가 각각 무엇을 남기는지 정리했습니다. 채팅을 지워도 저장된 메모리가 남을 수 있는 이유도 함께 다룹니다.
AI·도구 사용기Google Vids에서 AI 영상 클립 무료로 만들기 — 월 6회 한도와 영어 프롬프트
개인 구글 계정으로 vids.new에서 10초짜리 AI 영상을 만드는 순서입니다. 계정별 생성 한도, 영어로만 받는 프롬프트, 1080p 업스케일, 워터마크까지 실제 화면 기준으로 적었습니다.
AI·도구 사용기크롬 창 닫을 때 데이터 삭제 설정 확인법과 Firefox 컨테이너로 탭 나누기
크롬의 사이트 데이터 자동 삭제 설정을 켜도 google.com 데이터가 남는다는 보고를 직접 확인하는 순서와, 쿠키를 칸별로 나누는 Firefox 153 컨테이너 사용법을 정리했습니다.
AI·도구 사용기ChatGPT·Claude·Gemini 대화 학습 끄는 설정 위치와 꺼도 남는 보관 기간
세 서비스에서 내 대화가 모델 학습에 쓰이지 않게 하는 메뉴 경로와, 끈 뒤에도 보관되는 기간·예외를 공식 도움말 기준으로 비교합니다.
AI·도구 사용기소상공인 지식배움터 전자도서관에서 전자책 무료로 빌리는 법
대출 버튼이 열리는 조건(최근 1년 안 온라인교육 수료), 소상공인과 예비창업자의 월 대출 권수 차이, 14일 자동 반납과 포인트 추가 대출까지 공식 안내 페이지 기준으로 정리했습니다.
Threads 인사이트 API 수집기에서 공유가 0으로 찍힌 이유와 빠진 지표 찾는 법
Threads 글의 공유 10건이 직접 만든 지표 수집기에서는 0으로 보였습니다. 인사이트 API가 주는 여섯 지표와 수집 목록을 대조하는 법, 안 잰 칸을 0과 구분하는 법, 과거 글 값을 다시 채울 때 주의할 점을 적었습니다.
AI·도구 사용기Claude Academy 무료 코스 고르는 순서: Claude Code 101에서 API까지
Anthropic의 무료 학습 사이트 Claude Academy에서 이미 AI 도구를 쓰는 사람이 먼저 들을 코스 다섯 개와 나중에 볼 코스를 나눴습니다. 코스별 시간·강의 수, 시작 전 필요한 것, 배지 조건을 함께 적었습니다.
회사 시스템 구축기Cloudflare Tunnel로 포트포워딩 없이 집 서버를 도메인에 연결하는 방법
공유기 포트를 열지 않고 집에 둔 Mac mini를 내 도메인으로 공개하는 순서입니다. cloudflared 설치, 터널 생성, DNS 연결, config.yml 작성, 서비스 등록, 연결 확인까지와 석 달 넘게 운영하며 알게 된 것, 무료 플랜의 한도를 적었습니다.
PostgreSQL 테이블 건수로 자가호스팅 회사 시스템이 실제로 도는지 확인하기
집 서버에서 넉 달 돌린 1인 회사 시스템을 운영 DB 테이블 건수로 점검한 기록입니다. 건수를 세는 명령, 쌓이는 테이블과 멈춘 테이블을 가르는 기준, 건수만으로는 안 보이는 것을 정리합니다.
문제 해결SSH 원격 명령의 command not found, zsh .zshenv로 PATH 고치기
ssh 서버 "명령" 형태로 던질 때만 도구를 못 찾는 이유를 zsh 설정 파일 읽는 순서와 macOS path_helper로 설명합니다. 확인 명령 세 줄, .zshenv 설정 예시, bash 서버일 때와 스크립트에서 실패를 구분하는 방법까지 담았습니다.
회사 시스템 구축기GitHub Actions 무료 2,000분을 다 썼을 때 집 컴퓨터를 self-hosted 러너로 쓰는 방법
비공개 저장소 다섯 개를 돌리다가 월 2,000분 한도에 닿았습니다. 분을 줄이는 설정 세 가지, 집 컴퓨터를 조직 단위 러너로 등록하는 순서, 조직 변수 하나로 GitHub 러너와 집 러너를 오가는 구성을 적었습니다.
문제 해결노션 API 자동화를 속성 ID로 짜서 컬럼 이름 변경에 안 깨지게 하기
노션 데이터베이스에 자동으로 기록하는 코드가 컬럼 이름 하나 바꿨다고 멈출 때, 원인과 속성 ID 매핑으로 고치는 코드, 그래도 남는 한계와 API 버전 변경까지 다룹니다.
AI 조사 보고서 검증하는 순서: 사이트 50곳에서 많다던 문제가 세 곳뿐이었던 이유
AI 에이전트가 올린 사이트 조사 결과를 다시 열어 보니 대부분 검사 방식에서 생긴 오판이었습니다. 표본을 어디서 고르는지, 근거를 어떤 형식으로 받는지, 원격 명령이 0을 돌려줄 때 무엇을 의심하는지 적었습니다.
문제 해결GitHub 토큰 만료로 멈춘 자동 발행 찾기: 결과물 헬스체크와 컨테이너 재생성
GitHub fine-grained PAT 기한이 지나 블로그 자동 발행이 세 번 실패했고, 알아챈 건 닷새 뒤였습니다. 401이 났을 때 확인하는 순서, 컨테이너에 새 토큰을 넣는 방법, 결과물 기준 헬스체크를 적었습니다.
문제 해결카톡·스레드 링크 미리보기가 안 뜰 때 확인 순서: og:image 용량, 크롤러 UA, Cloudflare AI 봇 차단
og 태그가 멀쩡한데도 카카오톡과 스레드에서 링크 미리보기가 안 뜬 사이트를 curl로 크롤러 응답을 재현해 고친 과정입니다. 원인 세 가지와 각각 확인하는 명령, 고친 뒤에도 안 되는 것을 정리했습니다.
문제 해결whisper.cpp -dtw 타임스탬프로 자막 싱크를 검증하면 안 되는 이유
whisper.cpp의 -dtw 옵션은 자막 분할 경계(t0/t1)를 바꾸지 않고, 원본 오디오와 대조하면 오히려 늦게 찍혔습니다. 자막 싱크를 잴 정답지를 원본 오디오에서 뽑는 방법과 -ml이 바이트 기준이라는 점까지 실측값으로 정리했습니다.
문제 해결로컬 개발 서버 노출 확인: lsof로 0.0.0.0 바인드를 찾고 127.0.0.1로 닫는 법
localhost로 띄운 개발 서버도 바인드 주소에 따라 같은 와이파이의 다른 기기에서 열립니다. 바인드 주소를 확인하는 명령, 고치는 코드, 127.0.0.1로도 막히지 않는 경로를 함께 적었습니다.
네이버 클라우드 SENS 인증번호 발송 실패, 알림톡 일일 한도와 SMS 폴백 400 에러가 겹친 경우
알림톡은 일일 한도 1,000건에 걸려 429를, 폴백 SMS는 대시가 들어간 발신번호 때문에 400을 내서 인증번호가 503으로 막혔던 장애입니다. 로그로 원인을 가르는 법, 바로 고치는 설정, 폴백을 평소에도 한 번씩 태워 보는 방법을 적었습니다.
AI·도구 사용기LLM 작업 병렬화 전에 호출당 고정비 재기: 68초를 찾고 6분을 2분 53초로
CLI로 부르는 LLM 작업을 잘게 쪼개 병렬로 돌려도 덜 빨라지는 이유와, 호출 시간을 고정비와 생성 시간으로 나눠 재는 순서를 다룹니다. 쪼개는 방향을 뒤집어 52%를 줄인 실제 수치를 함께 적었습니다.
문제 해결Remotion 영상 렌더 속도 높이기 — 인코더 튜닝 대신 구간별 스틸과 ffmpeg concat
브라우저로 프레임을 그리는 Remotion 렌더에서 x264 프리셋·GPU·동시성을 바꿔 본 실측값과, 정지 화면이 많은 영상을 구간별 스틸 1장과 ffmpeg concat으로 이어 붙여 15분 걸리던 렌더를 90.2초로 줄인 방법을 적었습니다.
문제 해결whisper.cpp 버전 설정이 안 먹을 때 — 옵셔널 체이닝 폴백과 Metal GPU 타임아웃
설정 파일에 적은 whisper.cpp 버전이 옵셔널 체이닝 폴백 때문에 무시되던 원인과, 그 덕분에 Metal GPU 타임아웃을 피하고 있던 구조를 다룹니다. 실제로 도는 바이너리를 확인하는 순서와 whisper-cli -ng 로 바꿀 때의 조건을 적었습니다.
AI·도구 사용기AI 워커 지시서를 자기완결로 쓰는 법: 경로 참조 대신 본문, 출력 첫 글자, 확인 불가 표시
작업 폴더 밖을 못 읽는 AI 워커에 레포 경로를 넘겼다가 블로그 초안 두 건이 발행에 실패했습니다. 실패 로그와 남은 초안으로 원인을 찾고 지시서와 뒷단을 고친 순서를 적었습니다.
문제 해결Lighthouse 속도 점수가 재는 방식마다 다른 이유와 실측으로 다시 재는 법
Lighthouse 기본값인 시뮬레이션 스로틀링이 같은 페이지를 72점으로, 실제 스로틀링이 100점으로 잰 사례입니다. 측정을 의심해야 하는 신호와 낮은 점수를 한 번 더 확인하는 순서를 적었습니다.
AI·도구 사용기허깅페이스 오픈소스 모델 고르는 법: 다운로드 수 대신 공개 범위와 손상도 확인
허깅페이스 다운로드 수가 실제로 무엇을 세는지, 그리고 원본 모델은 공개 범위로, 파생 튜닝 모델은 KL과 손댄 텐서 수로 거르는 순서를 적었습니다.
문제 해결도커 백엔드를 재생성한 뒤 nginx가 502를 낼 때 resolver와 변수 proxy_pass로 고치기
proxy_pass에 컨테이너 이름을 그대로 쓰면 nginx는 시작할 때 찾은 IP를 계속 씁니다. 원인을 확인하는 순서, 재시작으로 급하게 푸는 법, resolver 127.0.0.11과 변수 proxy_pass로 바꾸는 설정과 바꾼 뒤 404가 나는 경우를 적었습니다.
AI 자동 작업이 "파일에 접근할 수 없습니다"로 끝날 때 지시서와 받는 쪽에서 고칠 것
정해진 시각에 돌린 AI 작업이 글 대신 "파일에 접근할 수 없다"는 답을 남기고 형식 오류로 버려진 로그를 따라갑니다. 지시서에 못 할 때의 답 형식을 정해 두는 법과 받는 쪽에서 고친 세 가지를 적었습니다.
회사 시스템 구축기claude -p와 텔레그램으로 음성비서 만들기: 폰에 말하면 집 맥이 답하는 구성
갤럭시 폰 앱이 받아 적은 말을 집 맥의 게이트웨이가 claude -p나 다른 에이전트에 넘기고, 결과를 텔레그램과 이어폰으로 돌려받는 구성입니다. API 키 없이 구독 CLI를 쓰는 방법과 답이 안 올 때 확인할 곳을 함께 적었습니다.
에러 없이 멈춘 크론 백업·while read 루프·Apps Script 메일 알림, 실패를 로그로 남기는 법
크론 백업, 셸 while read 루프, Apps Script 메일 알림이 에러 한 줄 없이 멈췄던 세 가지 사례입니다. 각각 왜 조용했는지와 실패 로그·성공 신호(heartbeat)로 막는 방법을 정리합니다.
문제 해결컨테이너 AccessDeniedException 해결: 읽기전용 파일시스템에서 임시 폴더를 /tmp로 옮기기
로컬에서는 되던 코드가 Docker 컨테이너에서 AccessDeniedException: /app/build 로 멈춘 원인과, 임시 경로·예외 처리·볼륨으로 나눠 고친 과정을 적었습니다. 로컬에서 읽기전용 환경을 미리 재현하는 docker run 옵션도 함께 정리했습니다.
회사 시스템 구축기Tailscale로 집 서버·맥·안드로이드 폰을 한 네트워크로 묶는 방법
포트포워딩 없이 밖에서 집 서버에 ssh로 들어가고, 다른 네트워크에 있는 안드로이드 폰에 무선 adb로 앱을 설치하기까지의 설정 순서입니다. 무료 범위, 연결 확인 명령, 서버에서 꺼 둘 설정을 함께 적었습니다.
문제 해결셸 while read 루프가 한 건만 돌고 끝날 때 stdin을 막아 고치는 법
루프 안에서 부른 ssh나 CLI가 남은 입력을 읽어 버려서 생기는 버그입니다. 에러 없이 한 바퀴만 도는 증상으로 알아보는 방법과 </dev/null, ssh -n, 별도 파일 디스크립터 세 가지 해법을 정리했습니다.
문제 해결오래된 인텔 맥에서 Claude Code가 Illegal instruction: 4로 죽을 때 AVX2 확인하는 법
Claude Code 같은 최신 CLI가 설치 중 Illegal instruction: 4로 죽는다면 CPU에 AVX2가 있는지부터 봅니다. 터미널 명령 두세 줄로 확인하는 순서와, 재설치로는 안 풀리는 이유를 적었습니다.
회사 시스템 구축기PostgreSQL 백업 복구 리허설, 운영 DB 대신 임시 DB에 pg_restore 하기
Backblaze B2에 올려둔 암호화 덤프를 내려받아 임시 데이터베이스에 복원하고 운영 DB와 행 수를 대조하는 절차입니다. 단계별 명령어와 안 될 때 확인할 곳, 18MB 덤프로 해본 시간을 같이 적었습니다.
KDE Connect와 scrcpy로 갤럭시를 맥에 연결하는 법
삼성 연동 앱이 없는 맥에서 갤럭시의 알림·클립보드·파일·폰 화면을 무료 도구 두 개로 붙이는 설치 순서와, 페어링이 안 될 때 확인할 곳을 적었습니다.
회사 시스템 구축기자동 백업이 한 달 동안 안 돈 걸 몰랐던 이유와 heartbeat 감시 붙이기
에러 알림만 걸어 둔 자동화는 스크립트가 아예 실행되지 않으면 아무 신호도 보내지 않습니다. 백업이 지금 도는지 확인하는 순서와, 성공 신호가 끊기면 알리는 heartbeat를 직접 만들거나 Healthchecks.io로 붙이는 방법을 적었습니다.
회사 시스템 구축기cron과 claude -p로 급하지 않은 AI 작업을 새벽 2~5시에 처리하는 워커
낮에 쌓인 요약·리포트 작업을 cron이 새벽 2시에 깨운 Node 워커가 5시까지 한 건씩 처리합니다. 래퍼 스크립트와 루프 코드, 워커가 안 돌 때 확인할 곳을 정리했습니다.
Threads 자동 발행을 켜면서 정한 기준: AI에 맡길 일과 직접 할 일
검토를 마친 글을 매일 08:00에 올리는 일만 자동으로 돌리고, 글 내용과 댓글·답장은 직접 합니다. 자동 발행에서 실제로 생긴 문제 두 가지와 그 뒤에 넣은 장치까지 적었습니다.
회사 시스템 구축기git worktree로 작업 중인 브랜치를 두고 main만 꺼내 배포하기
작업 중인 브랜치를 stash로 치우지 않고, git worktree로 main을 옆 폴더에 따로 열어 배포하는 방법입니다. add·list·remove 명령, .env와 node_modules가 따라오지 않는 점, remove가 거부되는 경우까지 정리했습니다.
OpenRouter 무료 모델 fallback으로 자동화 AI 비용을 거의 0원으로 맞추는 법
요약·정제·분류 같은 자동화 작업을 싼 모델과 무료 모델로 나눠 돌린 구성입니다. 모델별 출력 단가, OpenRouter fallback 설정 코드, 수수료와 무료 호출 한도, 이 방식이 안 맞는 일을 적었습니다.
Threads Insights API로 글별 조회수 뽑기: 매일 올린 5편이 합쳐 88회였던 기록
Threads 글마다 조회수·좋아요·답글 수를 API로 모으는 방법과, 그 숫자를 읽을 때 걸러야 하는 것들을 적었습니다. 5일 동안 매일 올린 글에서 단발 글과 댓글 체인 글의 조회수가 어떻게 갈렸는지도 함께 남깁니다.
회사 시스템 구축기중고 Mac mini 2018을 25만 원에 사서 회사 서버로 쓰는 구성과 비용
당근에서 산 2018년 맥미니 한 대에 백엔드, DB, 봇, 자동 배포를 올려 쓰고 있습니다. 산 값과 매달 드는 돈, 같은 사양 클라우드 요금, 넉 달 돌린 뒤의 메모리와 가동 기록, 자가호스팅이 맞는 조건을 적었습니다.
AI·도구 사용기Claude 구독 한도가 리셋되면 ntfy로 폰에 알림 받기
Claude 구독 사용량을 주기적으로 읽어 5시간·주간 한도가 풀리는 순간을 잡고, ntfy로 폰과 애플워치에 푸시하는 구성입니다. 오래된 맥의 AVX2 문제, SSH에서 잠기는 Keychain, 토큰 갱신을 공식 CLI에 맡긴 이유까지 정리했습니다.
유튜브 영상을 요약해 노션에 쌓는 자료조사 도구, 첫 버전 범위와 배포에서 막힌 곳
유튜브 링크를 넣으면 자막을 받아 Gemini로 요약·분류하고 노션 DB에 저장하는 도구를 한 주 동안 만들었습니다. 첫 버전에서 뺀 기능, 영상 한 편 요약 비용 계산, 배포 직전에 걸린 문제와 고친 방법을 정리했습니다.
1인 회사 업무를 조직도로 나누고 AI 도구로 첫 9개 팀을 만드는 순서
혼자 하는 외주 개발 일을 회사 부서처럼 나누고, 공통 서버 위에 팀을 금요일 목표일에 맞춰 하나씩 올리기로 한 계획입니다. 팀을 나눈 기준, 만드는 순서와 이유, 처음 정한 서버 구성, 넉 달 뒤 실제로 돌아간 팀과 멈춘 팀을 같이 적었습니다.