기록하는
작업실
AI 1인 개발의 경험담·노하우·생각을 글로 남깁니다.
제목만 고쳐 달라고 했는데 본문이 사라졌다
손 편집이 사실상 불가능한 위키에서, rewrite 검증과 언두를 붙인 이유
포기할까 했다가 Grok이랑 요구사항부터 다시 짚었다
무인으로 쌓인 myWiki 산 앞에서, 다시 짓기 대신 고치기를 고른 날
세컨드처럼 가려다 비용에 꺾였다
종합 분석 요약을 빼고, 병합은 제목·요약만 물어 본문을 순차로 붙인 이유
인덱스랑 키워드가 생각보다 안 나왔다
종단 분류와 횡단 필터를 가르고, 개수 캡으로 병합까지 가둔 이야기
본문이 DB에 들어가 있더라
무인 완주 한 번 해 보고, Postgres 컬럼을 버리고 md 파일 2층으로 엎은 이유
채팅이 느린 건 원가보다 대기 시간이었다
문서 지도 전체 주입을 끊고 4k/10k 캡을 걸었지만, 단답·검색·종합은 아직 미완이다
무인으로 다 만든 다음에야 고칠 산이 보였다
요구·화면만 잡고 dispatch로 밀어 올린 myWiki, 중간 리뷰 없이 비대해진 뒤의 비용
우리 왜 이제 만남
Claude 한도 불만이 쌓여 기대 없이 넘어온 Grok 첫날, 속도와 티키타카 체감
todo에 모델을 박아 두는 이유
dispatch가 서브에이전트로 돌릴 때 model 태그로 토큰을 나누고, 문맥 때문에 todo가 길어지는 이야기
서브에이전트는 백지다
todo 한 줄과 상세 블록이 곧 전부일 때 생기는 함정, 140턴까지 가본 이야기
AI를 쓰는 궁극적인 목표 - 루프 엔지니어링
에이전트 개발의 시작 - 프롬프트 엔지니어링
말을 안 해도 되게 만드는 일 - 하네스 엔지니어링
일단 시작하시라
삽질하다 찾은 토큰 절약 두 가지
디폴트 세션 모델을 낮추고 스킬별 model을 고정해 크론 토큰을 줄인 법
에이전트가 내 말을 안 듣는다면
Claude Code의 CLAUDE.md·스킬·커맨드·훅, 4가지 컨트롤 레버의 신뢰도 차이와 고르는 기준
스킬은 결국 잘 만든 프롬프트다
행동 제약, 재사용, 자동 호출, 쉬운 제작. Claude Code 스킬의 네 가지 속성 정리
직접 짠 코드가 이미 Claude Code에 있었다
프롬프트 엔지니어링이 도구에 내장되는 시대, 빌더가 붙들어야 할 건 LLM 특성 이해다
LLM은 새 세션마다 당신을 처음 만난다 - 컨텍스트 엔지니어링
기억 없는 LLM에게 프로젝트 맥락을 실어 보내는 컨텍스트 엔지니어링과 CLAUDE.md
코드를 못 짜도 앱을 만든다
10년차 개발자가 자연어로 앱을 만들며 정리한, 비개발자가 지켜야 할 것들
AI가 다 짜주는데, 나는 왜 블로그를 쓰나
블로그를 쓰는 진짜 이유는 콘텐츠가 아니라 리뷰였다
자동화하면 안 되는 자리에 자동화를 넣었었다
안전한 자동화는 어디를 사람 몫으로 남길지 아는 것
Claude 디플로이 스킬 버리고 GitHub Actions로 갔더니 토큰이 0이 됐다
self-hosted runner 삽질 끝에 appleboy/ssh-action으로 정리한 배포 자동화
AI 에이전트에게 지시서 쓰는 법
build-plan 포맷으로 에이전트에게 맥락을 통째로 전달하는 지시서 작성법
아이디어에서 빌드플랜까지
AI로 앱 설계 문서 8종을 자동화한, 마이위키에서 검증한 docs-spec 파이프라인
에이전트 돌리면서 맥북 덮으면 안 되는 이유 — Amphetamine 쓰게 된 사연
raw를 전부 안 읽어도 답이 나오는 이유 — 위키 인덱스 우선순위 4단계
[블로그 3편] 씨드에서 바로 초안으로 넘어갔더니 내 생각이랑 달랐다
seed에서 draft로 바로 넘어가면 방향이 틀어지는 이유, 그리고 brief 단계를 끼워 막은 과정
소재가 바닥난 게 아니었다
1일 1블로그 하다 만든 blog-mine 스킬, 이미 겪은 걸 채굴하는 법
결국 모든 스킬은 같은 모양이었다
블로그·앱·할일 파이프라인을 따로 만들었는데 전부 같은 구조로 수렴한 이유
코덱스 정액 끊고 Claude CLI를 붙였다
매일 AI 뉴스를 cron으로 받으면서도 크레딧은 한 푼도 안 쓰는 방법
digest를 돌려도 위키가 안 쌓이던 이유
raw 1861개를 못 찾던 digest를 2차 인덱스 요약 캐시로 풀어낸 이야기
스킬은 쓰다 보면 커진다
대화를 주고받으며 triage 스킬을 처음부터 만들고 점점 키워간 실전 기록
모델에 로직을 넣으면 중복이 사라진다
ORM 도메인 모델로 같은 수정 규칙을 모델 메서드 한 곳에 모아 중복 없애기
같은 코드를 두 번 쓰지 않으려고
도메인 셋째쯤 반복되는 코드를 공통 모듈·Base 클래스·명명 규칙으로 모으기
라우터는 HTTP만, 로직은 서비스로: 계층 분리
라우터·서비스·리포지토리로 계층마다 책임을 한 줄씩 깔끔하게 나눈 이유와 효과
폴더가 곧 설계다: 도메인 기반 프로젝트 구조
기능이 아니라 도메인 기준으로 프로젝트 폴더를 나눈 이유와 그 효과 정리
데이터 접근은 리포지토리로만
제네릭 BaseRepository로 쿼리를 가둬 고칠 곳을 한 군데로 모으는 법
다들 ORM이 처음이라, 백엔드 개발 가이드를 썼다
복붙 중복을 막으려고 직접 쓴 17개 섹션짜리 백엔드 설계 스터디 가이드
경계마다 검증한다: 스키마(DTO)와 다층 방어
스키마(DTO)로 모델을 그대로 내보내지 않고 계층마다 다른 책임으로 검증하기
처리할 수 있는 예외만 잡는다: 예외 처리 전략
복구 가능한 예외만 잡고 못 하면 위로 넘기는, 계층별 예외 처리 전략 정리
Todoist 자동화는 정리부터 만들었다
Todoist를 Claude Code에 MCP로 붙여 triage부터 계획·실행까지 자동화한 순서
처음으로 원하는 기능이 다 있는 할일 앱
전역 quick add부터 무료 요금제와 API·MCP까지, 내가 Todoist를 고른 이유
주식 앱 코드에 저스티스 리그가 살았다
BaseSqlModel·BaseRepository와 15챕터 가이드로 패턴을 통일한 법
AI가 못한 게 아니라 내가 서툴렀다
구현·검증 분리, 문서 동기화, 머지 충돌까지 다섯 번 데이고 바꾼 순서
쌓기만 하고 못 꺼내면 소용없다
위키에 검색을 붙이고 query 스킬을 만들게 된 이유와 그 과정 이야기
안 풀린 건 수집이 아니라 소화였다
Claude Code가 second 위키를 스스로 관리하게 만든 소화 기준·pin·훅
자동으로 안 쌓이면 안 모은다
CLI는 PC 앞에서만, 리모트는 위키를 고치려 들어 헤르메스로 옮긴 이유
집 서버에 주식 앱 배포하다 겪은 삽질 3가지
iptime CAA 차단, DB 포트 충돌, 수동 체크아웃까지 배포 삽질 3가지
[블로그 2편] 일부러 만든 예시에서 AI 환각이 생겼다
마커를 없앴더니 AI가 내 이야기처럼 보이는 것들로 빈칸을 스스로 채웠다
[블로그 5편] DB 없이 AI가 블로그를 통째로 관리한다는 것
텍스트 파일만 있으면 AI가 블로그를 전부 읽고 전부 쓸 수 있는 진짜 이유
[블로그 4편] 대화가 글이 되는 법
서술 한 줄로 발행까지 가는 slowloop 블로그 스킬 파이프라인 설계 이야기
[블로그 1편] DB 없이 마크다운만으로 만든 블로그
slowloop 블로그 기술 구조, Astro와 텍스트 파일과 second 위키
AI 에이전트와 혼자 만드는 사람
slowloop을 시작하며, 세컨드 브레인이 없었다면 여기까지 못 왔을 이야기
코딩 전에 결정부터 끝낸다
docs-spec 스킬로 혼자 개발할 때도 결정과 명세화를 코딩 전에 강제하는 방법
어머니 온라인 미술관을 6시간 만에 만든 법
퇴근길 기획 1시간, AI가 허락도 없이 먼저 지어버린 갤러리, 그리고 집서버 배포까지
다 만들고 나서 약관을 읽었다
주식 포트폴리오 앱 개발기, KIS API 규제 삽질과 막판 방향 전환까지
앱을 만들기 전에, CLI랑 옵시디언으로 먼저 해봤다
흩어진 채팅이력 130개를 CLI에 다 부어 하루 만에 가설을 검증한 방법
주식 대신 주식앱을 만들기로 했다
주식은 1도 몰랐지만 만들고 싶었다, 1년의 공백 끝에 다시 잡으니 2주
놀던 컴퓨터로 호스팅비 0원 만들기
호스팅비가 부담돼 집에 집서버를 켰고, 인증서와 도메인에 부딪힌 그 시작
템플릿은 찍었는데 좋고 나쁨을 못 골랐다
자동 생성은 됐지만 자가 검증은 안 됐다, 자율 루프가 서려면 필요한 전제
남는 토큰으로 시작한 실험이 아틀라스의 기반이 됐다
생성은 AI, 평가는 사람으로 나눈 템플릿 실험이 남긴 것과 다음 단계 정리
토큰이 매번 남아서 화면을 만들었다
매주 남는 토큰으로 화면을 만들기 시작한 디자인 실험, 그 출발점 이야기
내가 디자인을 못 고르니까 사용자한테 투표를 시켰다
홈 시안 투표로 평가를 외주화하고, 그 신호를 다시 생성 루프로 되돌린 방법
어머니도 나도 영어를 못 하는데
번역가 없이 다국어 사이트를 운영하기, DB를 통째로 언어모델로 채우는 구조
한 번에 만들지 않았다
요구사항·기획·시안·동작으로 한새암 미술관을 구간으로 나눠 만든 이유와 회고
5년 전 못 판 어머니 작품, 이번엔 보여주는 곳으로
쇼핑몰로 한 번 실패한 어머니 갤러리, 이번엔 미술관으로 다시 시작한 이유
도구를 통합하면 안 되는 이유
기획→개발→배포 핸드오프마다 맥락이 증발하는 문제, 해결책은 도구 통합이 아니었다
큰 작업을 구간으로 나누는 이유
AI와 큰 일을 할 때 작업을 구간으로 나누고 경계마다 게이트를 두는 패턴
AI랑 한 대화가 사라지는 게 아까웠다
한 달치 AI 대화가 남긴 것, raw와 wiki를 둘로 나눈 설계 결정 이야기
내가 쓰고 싶은데 없어서, 앱을 직접 만들기 시작했다
PKM 앱 수십 개를 뒤졌는데 없어서, OAuth 삽질 끝에 직접 만들기로 했다
AI가 썼지만, 내 이야기
세컨드 브레인에 쌓인 raw 대화가 블로그 글이 되는 콘텐츠 엔진 활용기
기획 AI와 개발 AI가 따로 노는 게 답답했다
에이전트끼리 맥락이 끊기는 문제를 second 브레인으로 연결해 푼 방법
문서화를 세 번 포기하고 나서야 됐다
docs-init 스킬로 index.md·log.md 두 파일만 남긴 문서 골격 최소화
"앱 만들어줘" 한 마디가 왜 더 느린가
build-plan 스킬로 한 세션에 한 항목씩 나눠 개발 시간 단축하는 법
집서버 1대에 앱 여러 개 올리기
단일 Caddy·web_edge로 주식앱·미술관·봇을 한 서버에 올린 구성
Discord 메시지가 위키에 자동으로 쌓이는 루프
폰에서 아이디어를 던지면 second 위키에 쌓이는 루프, ops 레포 하나로 구현하기
두 AI 에이전트를 같이 쓰는 법
채팅 입구는 hermes, 코딩·위키 편집은 Claude Code로 나눈 분담 구조