Dev Notes from ceanlab

제품과 AI에 관한 개발 기록

제품을 만들며 쌓은 개발 기록과 AI 워크플로에 관한 이야기를 공유합니다.

나눌수록 빨라지지 않습니다 — 에이전트를 병렬로 돌릴 때와 아닐 때

여덟 편을 여덟 에이전트에게 나눠도 여덟 배 빨라지지 않는 이유 — 의존성, 공유 자원, 그리고 합치는 비용.

루트 경로는 어느 언어로 보낼까 — 로케일 라우팅과 폴백 4층

접속 국가와 브라우저 언어 중 무엇을 믿을지, 판정이 실패하면 무엇이 받아줄지 — 루트 경로에 쌓은 네 층.

컨텍스트는 무한하지 않습니다 — 에이전트에게 무엇을 읽힐지 고르기

규칙 문서가 길수록 덜 지켜지는 이유와, 항상 읽힐 것과 필요할 때 읽을 것을 나누는 기준.

sitemap 을 손으로 쓰지 않기 — 생성할 것과 선언할 것의 경계

손으로 쓴 sitemap 은 반드시 어긋납니다 — 무엇을 유도하고 무엇을 선언할지, 경계를 어디에 그을지에 대한 기록.

아무도 보지 않는 시간에 도는 에이전트 — 무인 실행의 안전장치

새벽에 혼자 도는 에이전트에게 필요한 건 더 좋은 프롬프트가 아니라 좁은 피해 반경 — 경계·게이트·판정 가능한 완료 조건.

경로를 옮기면 색인이 남습니다 — URL 이전과 리다이렉트 설계

테스트 페이지 하나를 옮기며 배운 것 — 301 과 302 의 실제 차이, 슬래시 하나가 만드는 두 개의 URL, 같이 옮겨야 하는 canonical 과 sitemap.

세 번째로 같은 프롬프트를 쓰고 있다면 — 반복 작업을 스킬로 굳히기

매번 다시 설명하던 절차를 스킬로 옮긴 기록 — 무엇을 굳히고, 무엇을 문서와 코드에 남길지.

웹에서 앱으로 넘기고, 실패를 감지하기 — 딥링크 폴백의 실제

앱이 안 열렸다는 걸 브라우저는 알려주지 않습니다. 가시성 변화로 추론하는 폴백과 그 한계.

에이전트는 중간에 끊깁니다 — 재개 가능한 작업으로 설계하기

긴 작업이 중단됐을 때 처음부터 다시 하지 않게 만드는 설계 — 저장소에 남는 큐, 원자적 커밋, START/RESUME 분리.

지켜야 할 규칙은 빌드가 지키게 한다 — 이중 언어 사이트의 불변식 강제하기

문서에 적어도 계속 깨지던 세 가지 규칙을 빌드 훅 60줄로 옮긴 기록 — 조용한 오류를 시끄러운 실패로 바꾸기.

CLAUDE.md 는 안내문이 아니라 계약서다 — 에이전트가 실제로 지키는 규칙 쓰기

규칙을 늘릴수록 무시당했습니다. 문서를 절반으로 줄이고 판단이 갈리는 지점만 남겼더니 달라진 것들.

정적 사이트에 예약 게시 붙이기 — 서버가 없는데 시간이 흐르게 만드는 법

요청 시점에 판단할 서버가 없는 사이트에서 예약 게시를 구현한 방법 — 빌드 필터, 매일 도는 재빌드, 그리고 미리 밟아본 함정들.

AI 에이전트가 제품 전체를 이해하게 만드는 폴더 구조

iOS, Android, Web 저장소와 계획 문서를 하나의 상위 작업공간에 모아, AI에게 더 넓은 맥락과 명확한 계획을 제공하는 방법.