블로그

BrainFit과 BloomCard를 만들며 겪은 이야기 — 알고리즘, 아키텍처, 그리고 인디 개발 경험.

기술 심화

Riverpod 2.x → 3.x 마이그레이션 7단계 생존기

두 개의 Flutter 앱에서 Riverpod, GoRouter, AdMob, Firebase 스택을 7단계에 걸쳐 업그레이드한 과정과 마이그레이션 리스크 관리 노하우.

더 읽기
기술 심화

Flutter 오프라인 퍼스트 아키텍처 — OfflineQueue와 SyncService

BrainFit이 지하철에서도 데이터를 잃지 않는 방법 — OfflineQueue 테이블, SyncService, 그리고 오프라인 Pro 구독 캐싱.

더 읽기
개발 일지

BrainFit: 32개 미니게임을 관리하는 Game Registry 패턴

6가지 인지 영역의 32개 게임을 레지스트리 패턴과 지연 초기화로 관리하며 앱 시작 시간을 최적화한 방법.

더 읽기
개발 일지

BloomCard: 90개의 CustomPainter — 이모지를 전부 버린 이유

기기마다 다르게 보이는 이모지 문제를 해결하기 위해 90개 이상의 CustomPainter를 직접 만든 과정과 예상치 못한 장점들.

더 읽기
설계 노트

BQ 점수 시스템 — 플레이어가 좌절하지 않는 하락 보호 설계

BrainFit의 BQ 점수가 비대칭 EMA 스무딩과 3단계 하락 보호로 플레이어 동기를 유지하는 방법 — 지는 건 이기는 것보다 두 배로 아프니까.

더 읽기
개발 일지

BrainFit: 체스 Elo 레이팅으로 두뇌 훈련 난이도 조절하기

체스 레이팅 시스템을 두뇌 훈련 앱에 적용한 이유, K-factor 튜닝과 비대칭 하락으로 플레이어를 몰입 상태에 유지하는 방법.

더 읽기
설계 노트

커뮤니티 덱 마켓플레이스 설계 — 무료 탐색과 유료 다운로드 사이

BloomCard가 열린 탐색과 지속 가능한 수익화를 균형 잡는 방법 — 다운로드 쿼터, 크리에이터 보상, UGC 마켓플레이스의 경제학.

더 읽기
설계 노트

행성이 자라는 RPG vs 꽃이 피는 정원 — 두 앱의 진행 시스템 비교

BrainFit의 5단계 행성 진화와 BloomCard의 안정성 기반 정원 성장을 나란히 비교 — 메타포가 메커니즘보다 중요한 이유.

더 읽기
인디 개발

1인 개발자의 페이월 설계 — 수익화와 사용자 경험 사이

두 인디 앱이 수익화와 사용자 경험을 균형 잡는 방법 — 축하형 페이월, 피처 게이트, 쿨다운 매니저, 그리고 각 결정 뒤의 숫자들.

더 읽기
기술 심화

FSRS-5 간격 반복 알고리즘을 Flutter에 직접 구현한 이야기

FSRS-5 알고리즘을 간소화해서 플래시카드 앱에 적용한 과정 — 이론적 정확도 10%를 포기하고 5배 빠른 실행 속도를 얻은 트레이드오프.

더 읽기
인디 개발

사이드 프로젝트 4개를 접고 배운 것들

BrainFit과 BloomCard 이전에 만들고 포기한 4개의 사이드 프로젝트 — 무엇이 잘못됐고, 무엇을 배웠고, 지금 출시하는 앱에 뭐가 남았는지.

더 읽기
블로그