앱 두 개를 서로 다른 수익모델로 낸 이유 — 광고냐 결제냐
앱 두 개(로컬 단식앱 vs 서버 있는 협업앱)를 광고 위주 / IAP 위주로 정반대로 낸 이유. 애드몹 수익=DAU×노출×eCPM이라 자주 여는 앱은 광고, 서버비 BEP가 있는 앱은 일회성 IAP. 결국 ‘앱의 구조가 수익모델을 정한다’는 기준.
앱 두 개(로컬 단식앱 vs 서버 있는 협업앱)를 광고 위주 / IAP 위주로 정반대로 낸 이유. 애드몹 수익=DAU×노출×eCPM이라 자주 여는 앱은 광고, 서버비 BEP가 있는 앱은 일회성 IAP. 결국 ‘앱의 구조가 수익모델을 정한다’는 기준.
앱에 구글·애플 소셜 로그인을 붙일 때, 소셜 토큰을 그대로 쓰지 않고 서버가 검증 후 내 JWT를 다시 발급하는 이유. 클라이언트 불신·인증 통일·토큰 수명 통제. 소셜 로그인은 신원확인까지, 세션은 내 JWT로 가져가는 패턴.
협업 앱의 진짜 적인 진입 장벽을, 바구니마다 붙는 ‘6자리 코드’ 하나로 없앤 온보딩 설계. 검색·수락·권한 단계를 제거하고 코드만 불러주면 합류. 6자리인 이유(입으로 전달 가능), 같은 코드 패턴을 친구초대 성장에 재사용한 방법.
가족 공유 장보기 앱의 실시간 협업을 WebSocket 없이 FCM 푸시로 구현한 이유와 구조. 변경→DB갱신→멤버에게 푸시→자동 새로고침. 오프라인 강함·인프라 단순·알림 채널 통합의 장점과, 느슨한 실시간에만 맞는 한계.
1인으로 앱 2개 + 블로그 5개를 하나의 상위 폴더로 관리하는 실제 구조. 컨테이너는 git repo가 아닌 인덱스로, 코드 자산은 각자 독립 repo로. README(위치)와 카탈로그(정체성) 2층 문서, 비밀은 커밋 제외·별도 백업.
Flutter 위젯 테스트 91개를 운영하며 얻은 것. 순수 도메인은 단위테스트·화면은 위젯테스트로 분리, 그리고 drift가 붙은 화면 테스트에서 스트림이 안 닫히는 함정을 pumpWidget(SizedBox())+pump로 정리하는 법.
백엔드 없는 100% 로컬 Flutter 앱(Drift)에서 데이터를 안 깨뜨리며 스키마를 올리는 법. 레이어 분리로 도메인 순수하게, 마이그레이션은 ‘컬럼 추가만’, 설정은 단일 행 테이블. 실제 v2~v5 이력 공개.
워드프레스 2개 + 블로거 3개를 애드센스용으로 굴려본 실전 비교. 자동화(REST vs 브라우저), HTTPS 설정 함정, 비용·진입장벽까지 겪은 그대로. 결론: 규모·자동화는 WP, 무료·간편은 블로거.
AI로 블로그 글을 쓰면 자꾸 ‘총정리’가 나오는 진짜 이유는 AI가 아니라 입력에 있다. 공개 정보만 주면 공개 정보의 재조립이 나온다. raw 데이터 첨부·범위 좁히기·금지어·과정 서술로 프롬프트를 바꿔 정보 증분을 살리는 법.
단식 앱에서 버튼을 놓쳐도 기록이 안 깨지게 만든 설계. 현재 상태를 저장하지 않고 이벤트 로그에서 페이즈를 도출(derivePhase), 버튼은 상태 전환이 아니라 기록 추가로. ‘예상이 기본값, 기록은 수정’ 원칙.