Android 개발자 Android Developer
Google Play 1,000만+ 다운로드 규모의 비접촉 제어 앱 Spatial Touch에서 Android를 담당하고 있습니다. 카메라와 온디바이스 ML 추론과 접근성 서비스가 한 프로세스에서 동시에 도는 환경에서, 주로 메인 스레드가 잡히는 문제와 큰 변경을 무중단으로 내리는 일을 다룹니다.
I own the Android side of Spatial Touch, a touchless control app with 10M+ downloads on Google Play. Most of my work lives where camera capture, on-device inference, and accessibility traversal contend for the same main thread — and in shipping large changes to that codebase without downtime.
| 📱 Google Play 10M+ Downloads | Spatial Touch — 온디바이스 손 인식 기반 비접촉 원격 제어 앱 · 월 사용자 약 29만 |
| 🩺 Stability | 고빈도 접근성 콜백을 Flow 파이프라인으로 재설계 → 해당 경로 상위 ANR 이슈 해소, crash-free users 98.76% → 99.87% |
| 🏗️ Architecture Redesign | God Object를 책임 축으로 분해 · 계약/구현 모듈 분리 · 단방향 상태(MVI) → Janky Frame 70~80% → 30~40% (Perfetto, Galaxy A21) |
| 🚢 Staged Rollout | 알파 채널 3개월 → 안정 버전 → 비율 단계 상승 → 100%. 1,000만 규모에 5.5개월 무중단 반영 |
| 🧪 Deterministic ML Testing | 기기 캡처 → fixture 고정 → 가상시간 재생. 카메라도 기기도 없이 CI에서 회귀 검증 |
| 🌏 Global Exhibition | 2023 CEATEC (일본), 2024 ViVaTech (파리) IoT 데모 출품 |
온디바이스 손 인식(MediaPipe Hand Landmarker) 기반 비접촉 원격 제어 앱
주요 기여 | Key Contributions:
- 접근성 이벤트 처리 재설계로 ANR 제거 — 콜백은 이벤트 타입만
SharedFlow로 방출하고 즉시 반환, 소비는filter→flatMapLatest(latest-wins 취소) →flowOn(IO)로 분리해 노드 트리 순회를 오프로드 - God Object를 책임 축으로 분해 — 제스처·도메인 연산 / 액션 실행 / 비즈니스 / 설정·영속으로 가르고 각 축을 계약 모듈과 구현 모듈로 분리. 레거시를 지우지 않고 공존시킨 뒤 제거
- 비결정적 ML 파이프라인을 결정적으로 검증 — 실시간 추론 입력을 기기에서 1회 캡처해 fixture로 고정, CI에서 Robolectric + 가상시간으로 재생. 같은 fixture로 온보딩 전 구간 E2E 자동화
- 끊김의 원인을 스무딩이 아닌 레이트 불일치로 규명 — Perfetto에서 입력 도착 간격과 프레임 간격을 나란히 확인, delta를 속도로 환산해
withFrameNanos마다 적분하는 렌더 모델로 전환 - 카메라·ML 파이프라인 자원 관리 — CameraX + Compose 뷰파인더로 재작성하며 bind/rebind를 화면 생명주기와 정렬.
ImageAnalysis백프레셔(KEEP_ONLY_LATEST)를 실제로 동작하게 만들고, 목표 fps 초과 프레임은 분석 없이 반납 - 기존 ML 코어 위에서 멀티핸드 상태 트래킹 · 좌표 정규화 · 픽셀 변환 담당
- 접근성 서비스 기반 앱별 비접촉 제어 시스템 구현 — YouTube Shorts · Instagram Reels · TikTok 등
- 숏폼 미디어 중심 피벗 제안 — 비접촉 제어의 가치가 조작 빈도에 비례한다고 판단, 시장 신호를 근거로 제시해 지원 범위 확대
- Jetpack Compose 전면 전환 + WindowSizeClass 적응형 레이아웃
- Firebase Remote Config + AdMob UMP 원격 광고 관리 및 동의 시스템
- GitHub Actions 기반 Play Store 자동 배포 CI/CD · 16개 언어 릴리즈 노트 운영
Tech: Kotlin Coroutines/Flow Jetpack Compose Hilt CameraX MediaPipe Accessibility Service Perfetto Macrobenchmark Robolectric Firebase AdMob UMP GitHub Actions
vl53l5cx ToF 센서 기반 홀로그램 IoT 버튼
- Matter 프로토콜 레이어 및 RTOS 개발
- Tech:
ESP-IDFMatter IoTRTOSI2C
Spatial Touch ↔ SmartThings 플랫폼 연동 2024 파리 ViVaTech IoT 데모 출품
- 단독 개발
- Tech:
LuaWebSocketSmartThings CLICustom Capabilities
일본 Lixil IoT 플랫폼 통합 | 2023 CEATEC 전시
- Spatial Touch 프로토콜 ↔ LifeAssist API 연동
- Tech:
WebSocketEchonet Lite
📸 FourCutTogether — 같이네컷 (Open Source)
오픈소스 즉석 사진 프로젝트 · 3인 협업 · Kotlin 100%
- Compose 화면과 외부(DSLR/IP)·내장 카메라 입력 담당. 환경마다 최적 카메라가 달라 입력원을 추상화해 교체 가능하게 분리
- 메이커페어(DSLR)와 결혼식(전면 카메라) 두 환경 모두 무중단 운영
- Tech:
KotlinJetpack ComposeHiltCameraX
주력 프로젝트는 사내 비공개 저장소라 아래 그래프에 잡히지 않습니다. My main work lives in a private company repository, so it doesn't show up below.


