Blog
혼자 회사를 굴리며 만든 시스템과, 그 과정에서 쓴 AI 도구를 코드와 함께 기록합니다.
포트포워딩 없이 집 서버를 외부에 — Cloudflare Tunnel 자가호스팅
공유기 포트를 하나도 열지 않고 집 Mac mini 를 도메인으로 외부에 공개하는 Cloudflare Tunnel 설정 전체입니다. cloudflared 설치부터 config.yml ingress, 서비스 등록까지 여섯 단계와 석 달 운영에서 알게 된 것 넷을 적습니다.
1인 회사 시스템 build혼자 만든 회사 시스템, 넉 달 치를 DB에서 세어봤습니다
혼자 쓰려고 넉 달간 붙인 회사 시스템을 닫으면서 운영 DB에 직접 물어봤습니다. 도는 것과 안 도는 것을 테이블 건수로 세었고, 만든 개수는 늘었는데 하루는 안 바뀐 이유를 적습니다.
1인 회사 시스템 buildSSH로 명령을 던지면 command not found 가 나는 이유
터미널로 접속하면 되는데 ssh 서버 "명령" 형태로는 실패하는 문제. macOS·리눅스에서 비대화형 셸이 읽는 설정 파일이 다르기 때문이며, .zshenv로 해결합니다.
1인 회사 시스템 build깃허브 액션 무료 분을 다 쓰면 집 컴퓨터를 러너로 붙인다
비공개 저장소의 월 2,000분을 소진했을 때, 먼저 줄이는 방법과 자체 러너로 옮기는 절차를 정리합니다. 변수 하나로 되돌릴 수 있게 붙이는 구성까지 다룹니다.
1인 회사 시스템 build노션 자동화가 컬럼 이름을 바꿀 때마다 깨지는 이유
노션 API 연동을 컬럼 이름으로 짜면 이름을 바꾸는 순간 실패합니다. 속성 ID로 매핑을 만들어 두는 방법과, 그래도 남는 한계를 정리합니다.
AI가 조사해준 50곳, 다시 세어보니 세 곳이었습니다
AI에 맡긴 조사 보고서가 크게 틀려 있었는데 읽을 때는 전혀 이상해 보이지 않았습니다. 잘 확인한 결론과 잘못 확인한 결론이 왜 똑같이 생겼는지, 무엇부터 열어봐야 하는지 정리한 주간 회고입니다.
1인 회사 시스템 build만료된 토큰이 닷새를 먹었다 — 조용히 안 도는 자동화를 찾는 법
만료된 GitHub PAT 때문에 블로그 자동 발행이 닷새간 멈췄던 기록과, 실행이 아니라 산출물로 보는 헬스체크·실패 상태 전환·컨테이너 env 검증을 정리합니다.
1인 회사 시스템 build링크 미리보기가 안 뜨는 세 가지 이유 — 카카오 용량·크롤러 UA·AI 봇 차단
카톡·스레드에 링크를 넣어도 미리보기가 안 뜨던 문제를 og:image 용량, 크롤러 UA, Cloudflare AI 봇 차단 순서로 진단한 기록입니다.
1인 회사 시스템 build정밀하다는 옵션이 실제로는 590ms 더 틀렸다
whisper의 DTW 정밀 타임스탬프를 자막 싱크 정답지로 쓰려다 실패한 기록. 왜 정답지는 도구의 정밀 모드가 아니라 원본 오디오여야 하는지 실측으로 정리합니다.
1인 회사 시스템 build로컬 개발 서버는 같은 와이파이 전체에 열려 있다
개발 서버가 0.0.0.0에 바인드되면 localhost 주소여도 같은 네트워크 전체에 노출됩니다. 실측 사례와 확인·수정 방법을 정리합니다.
1인 회사 시스템 build폴백은 평소에 안 돌면 폴백이 아니었다
알림톡 일일 한도 초과와 대시가 섞인 발신번호 형식이 겹쳐 인증번호가 전면 실패한 장애를 통해, 폴백 경로를 카나리로 강제 실행해야 하는 이유를 정리합니다.
AI 도구 신기능 풀이잘게 쪼개 병렬로 돌렸더니 정확히 거꾸로였다 — 호출당 고정비 68초
LLM 호출당 고정비용 68초를 계측한 뒤 분할·병렬화 전략을 뒤집어 6분 4초짜리 단계를 2분 53초로 줄인 최적화 회고입니다.
사이트가 느리다고 해서 고쳤는데, 느린 건 사이트가 아니었습니다
속도 점수를 믿고 멀쩡한 페이지를 뜯었다가, 문제가 페이지가 아니라 재는 방식에 있었다는 걸 알게 된 이야기입니다. 점수가 낮게 나왔을 때 고치기 전에 확인할 두 가지를 정리했습니다.
1인 회사 시스템 build튜닝으로 11%를 줄이다 판을 바꾸니 10배가 됐다 — 병목은 인코딩이 아니었다
5분 영상 렌더가 15분 걸리던 파이프라인에서 인코더·GPU·동시성 튜닝의 천장을 확인하고, 프레임별 래스터화라는 진짜 병목을 스틸+concat 방식으로 뒤집은 기록입니다.
1인 회사 시스템 build잘 돌던 이유가 버그였다 — 죽은 설정값이 GPU 타임아웃을 막고 있었다
설정 파일의 죽은 버전 값이 옛 바이너리를 붙잡아 GPU 타임아웃 버그를 우연히 막고 있던 사례와, 서로 상쇄된 두 버그를 다루는 판단 기준을 정리합니다.
AI 도구 신기능 풀이AI에 작업을 시킬 때 지시서를 자기완결로 쓰는 법
별도 환경의 AI 워커가 산출물 대신 설명문을 돌려주는 조용한 실패의 원인과, 지시서를 자기완결로 쓰는 네 가지 방법을 정리합니다.
1인 회사 시스템 build사이트 속도 점수, 도구마다 다른 이유 — 시뮬레이션과 실측
자체 진단 도구가 낸 성능 72점이 왜 안 움직였는지, 스로틀링 방식(시뮬레이션·실측) 차이와 교차 검증 설계로 오탐을 걸러낸 과정을 정리합니다.
AI 도구 신기능 풀이오픈소스 모델 고를 때 다운로드 수를 믿으면 안 되는 이유
허깅페이스 다운로드 수 대신 공개 범위와 손상도라는 두 축으로 오픈소스 모델을 고르는 실무 기준을 정리합니다.
1인 회사 시스템 build컨테이너를 다시 만들면 앞단이 502가 되는 이유 (nginx DNS 캐시)
nginx가 기동 시점에 딱 한 번만 이름을 풀어 IP를 굳혀 넣는 특성 때문에 백엔드 재생성 후 502가 나는 원인과, resolver와 변수 proxy_pass로 근본 해결하는 법을 정리합니다.
AI는 못 하겠다고 답했는데, 제가 그 말을 못 받았습니다
AI에 맡긴 작업이 빈손으로 돌아온 이유를 따라가 보니, 원인은 AI가 아니라 제가 쓴 지시서였습니다. 못 하겠다는 답을 받을 자리를 만들어 두는 법 네 가지를 정리한 주간 회고입니다.
1인 회사 시스템 build폰에 말하면 집 맥이 일한다 — 자작 음성비서 구성
받아쓰기·텔레그램 봇·집 맥의 게이트웨이·구독 CLI를 엮어 음성으로 맥을 부리는 자작 비서를 만든 과정과, 인격 오염·chat_id 함정, 안전 설계를 정리합니다.
1인 회사 시스템 build조용한 실패가 제일 비싸다 — 에러 핸들링
고장이 아니라 각자 규칙대로 정상 동작해서 소리 없이 멈추는 실패 세 가지와, best-effort 부가기능도 실패를 반드시 로그로 남기는 방어법을 정리합니다.
1인 회사 시스템 build로컬은 됐는데 컨테이너서 터지는 이유 — 읽기전용 파일시스템
로컬에선 되던 코드가 컨테이너에서 AccessDeniedException으로 죽는 이유를 읽기전용 파일시스템 관점에서 짚고, 임시 파일 경로·예외 처리·볼륨 마운트로 푸는 법을 정리합니다.
서버, 컴퓨터, 폰을 하나의 네트워크로 묶었습니다
집 서버, 사무실 컴퓨터, 폰이 장소와 상관없이 서로 옆방처럼 통하게 만든 이야기입니다. 무료 도구 테일스케일로 기기들을 묶은 과정과, 매일 글을 올리며 보인 데이터 하나를 정리한 주간 회고입니다.
1인 회사 시스템 buildTailscale로 흩어진 기기들을 하나의 네트워크로 묶기
집 서버, 사무실 맥, 안드로이드 폰을 Tailscale 사설망으로 묶는 절차를 정리합니다. 포트포워딩 없이 어디서든 100.x 주소로 접속하고, 다른 네트워크에 있는 폰에 무선 adb로 앱을 설치하는 방법까지 실측 기준으로 다룹니다.
1인 회사 시스템 build셸 while read 루프가 한 건만 처리하고 멈추는 이유
셸 while read 루프가 큐를 쌓아도 한 건만 돌고 정상 종료하는 stdin 잠식 버그의 원인과 </dev/null·ssh -n·exec 3< 해법을 실측 사례로 정리합니다.
1인 회사 시스템 build오래된 맥에서 최신 CLI가 죽는 이유: AVX2와 Illegal instruction: 4
오래된 맥에서 최신 CLI가 Illegal instruction: 4로 죽는 이유를 AVX2 명령어 세트로 설명하고, sysctl로 진단하는 법과 실측 해결 과정을 정리합니다.
1인 회사 시스템 build운영 DB 안 건드리고 백업 복구 리허설하기
백업 파일이 쌓이는 것과 그걸로 서버가 살아나는 것은 다른 문제입니다. 운영 데이터베이스에 손대지 않고 임시 DB로 복구를 리허설하는 5단계 절차와 명령어, 그리고 18MB 덤프 기준 10초 실측을 정리합니다.
백업이 있다는 안심을 시험해봤습니다
백업 파일이 매일 쌓이는 것과 그 파일로 서버가 살아나는 것은 다른 문제입니다. 처음 해본 10초짜리 복구 리허설, 그리고 예상이 뒤집힌 발행 데이터 하나를 정리한 주간 회고입니다.
갤럭시로 바꿨더니 맥과 아무것도 안 붙었습니다
삼성 연동은 윈도우용만 있고 맥용이 없습니다. KDE Connect와 scrcpy 무료 도구 둘로 알림·클립보드·화면을 붙이고, 없는 음성 명령은 직접 만든 한 주의 회고. 읽히는 글의 조건 하나와 아침 8시 발행 규율 이야기까지.
1인 회사 시스템 build한 달 동안 조용히 안 돌던 백업
매일 돌기로 한 백업이 에러 하나 없이 한 달째 멈춰 있었습니다. 자동화가 실패할 때 왜 조용한지, 그리고 성공 신호가 끊기면 알아채는 heartbeat 방식으로 어떻게 바꿨는지 정리합니다.
1인 회사 시스템 build구독 요금제 한도를 피해 AI 워커를 새벽에만 돌리기
AI 분석을 구독 요금제로 자동화하면 짧은 시간에 몰아 쓸 때 한도에 걸립니다. 작업을 큐에 쌓아 두고 새벽 시간창에서만, 건당 간격을 두고 천천히 처리해 비용을 거의 0으로 유지하는 워커 설계를 cron·시간창·페이싱 코드까지 정리합니다.
AI한테 맡겨도 되는 일은 따로 있었습니다
혼자 일하면 다 직접 해야 할 것 같지만, 맡길 일과 끝까지 손으로 할 일은 선이 분명했습니다. 무엇을 자동화하고 무엇을 내 손으로 할지 가르는 기준에 대한 한 주의 회고.
1인 회사 시스템 buildgit worktree로 배포본과 작업본 분리하기
git worktree로 배포 브랜치와 작업 브랜치를 디렉토리째 분리하는 법. git stash·checkout 왕복 없이 핫픽스에 대응하고, add·list·remove 세 명령과 .env·빌드 산출물이 worktree마다 분리되는 점까지 1인 안전 배포 기준으로 정리합니다.
회사 굴리는 AI 비용이 한 달에 거의 0원입니다
1인 회사를 한 달 혼자 굴리며 본 것. 회사 서버는 당근 25만원 중고 컴퓨터 한 대, AI 비용은 일의 무게에 따라 모델을 나눠 써서 거의 0원으로 맞췄습니다. 매일 만든 것 중 유독 멀리 간 한 편의 공통점은 자랑이 아니라 남이 가져갈 이득이었다는, 첫 달 회고.
많이 만드는 건 어렵지 않았습니다
많이 만든 한 주의 회고. 정작 어려운 건 만드는 일이 아니라, 만든 걸 남이 알아보게 전하는 일이었습니다. 회사 서버를 중고 컴퓨터 한 대로 들인 이야기도.
1인 회사 시스템 build회사 서버를 당근에서 25만 원에 샀습니다
1인 회사의 서버는 중고 미니PC 한 대입니다. 당근 25만 원짜리 2018년 맥미니, 운영비는 전기세 월 2~3만 원. 같은 사양 클라우드 대비 어떻게 싸지는지, 그 위에 뭐가 도는지, 어떤 조건에서 자가호스팅이 맞는지 실비용 구조를 공개합니다.
AI 도구 신기능 풀이한도를 다 쓰고 싶어서, 리셋되면 폰으로 알려주는 걸 만들었습니다
AI 모델 구독 한도를 꽉 채워 쓰려고, 한도가 리셋되는 순간을 감지해 폰으로 알려주는 작은 도구를 만들었습니다. 만들면서 막힌 세 가지 — 오래된 맥의 AVX2, SSH에서 잠긴 Keychain, 공식 vs 비공식 토큰 갱신.
정작 모으는 건 제일 안 중요했습니다
첫 직원 정보조사팀을 만든 회고. 코드보다 "뭘 안 만들까" 정하는 시간이 더 길었고, 정작 모으는 일은 제일 안 중요했습니다.
서버비 0원으로 회사를 시작했습니다
집에 있던 미니PC 한 대로 차린 첫 주. 이번 주 금요일, 첫 직원이 출근합니다.
혼자서 회사를 만들기로 했습니다
외주 개발 3년째. 매주 부서를 하나씩 설립하는 14주 프로젝트. 혼자서도 돌아가는 회사를 만들 수 있을지.