백엔드 없는 로컬 앱, Drift로 데이터 안 깨지게 버전 올리기
백엔드 없는 100% 로컬 Flutter 앱(Drift)에서 데이터를 안 깨뜨리며 스키마를 올리는 법. 레이어 분리로 도메인 순수하게, 마이그레이션은 ‘컬럼 추가만’, 설정은 단일 행 테이블. 실제 v2~v5 이력 공개.
백엔드 없는 100% 로컬 Flutter 앱(Drift)에서 데이터를 안 깨뜨리며 스키마를 올리는 법. 레이어 분리로 도메인 순수하게, 마이그레이션은 ‘컬럼 추가만’, 설정은 단일 행 테이블. 실제 v2~v5 이력 공개.
워드프레스 2개 + 블로거 3개를 애드센스용으로 굴려본 실전 비교. 자동화(REST vs 브라우저), HTTPS 설정 함정, 비용·진입장벽까지 겪은 그대로. 결론: 규모·자동화는 WP, 무료·간편은 블로거.
AI로 블로그 글을 쓰면 자꾸 ‘총정리’가 나오는 진짜 이유는 AI가 아니라 입력에 있다. 공개 정보만 주면 공개 정보의 재조립이 나온다. raw 데이터 첨부·범위 좁히기·금지어·과정 서술로 프롬프트를 바꿔 정보 증분을 살리는 법.
단식 앱에서 버튼을 놓쳐도 기록이 안 깨지게 만든 설계. 현재 상태를 저장하지 않고 이벤트 로그에서 페이즈를 도출(derivePhase), 버튼은 상태 전환이 아니라 기록 추가로. ‘예상이 기본값, 기록은 수정’ 원칙.
실내식물 블로그가 애드센스에 거절당한 뒤, 개발·수익화 블로그로 주제째 갈아엎기로 한 결정의 전말. 다섯 사이트가 전부 떨어진 단서, ‘검색량으로 주제를 고른’ 실수, 주제 변경이 손해가 아닌 이유까지.
혼자 만든 Flutter 앱을 Play에 올리기까지의 실전 체크리스트. 애드몹 실유닛 교체·IAP 등록·개인정보처리방침·건강 선언·KIPRIS 상표조회·서명키, 그리고 debug에선 안 나오고 릴리스 실기기에서만 터진 버그들까지.
Flutter 앱에 애드몹 배너·전면·App Open·보상형을 붙인 실제 구조. 전면류를 하나의 4시간 빈도 캡으로 묶은 설계와, App Open 캡이 실기기에서만 무력화된 drift watch 스트림 함정(→DB 직접읽기)까지.
애드센스 필수 페이지 4개(소개·문의·개인정보처리방침·이용약관)에 실제로 뭘 넣었는지 공개. 특히 개인정보처리방침에 반드시 들어가야 할 광고 쿠키 고지·opt-out 링크와 메뉴 노출까지 실전 기준으로 정리.
애드센스 ‘가치 없는 콘텐츠’ 거절의 진짜 원인은 정보 증분 부재다. 총정리 글을 유일성 있는 글로 바꾸는 5가지 방법(내 숫자·과정과 실패·원본 자료·범위 좁히기·판단 명시)을 실제 거절 사례로 정리.
블로거를 Playwright로 자동화하다 CodeMirror.setValue()로 본문을 넣었더니 게시 때 4편이 통째로 사라졌다. 원인(dirty 플래그 미점화)과 복구법, 라벨 확정 함정까지 실제 사고 기록.