본문 바로가기

전체 글52

미니앱 개발하기 4 - 수익화 마케팅 무료로 심사부터, 광고는 그다음 — 쫀득 슬라임 수익화 설계기라는 제목 아래, 앱인토스에 올린 3D 슬라임 토이 '쫀득 슬라임'에 광고를 정책 위반 없이 붙이고 커스터마이징으로 다시 오게 만든 뒤 심사까지 통과시킨 과정을 정리한 개발기입니다.무료 토이 앱은 애초에 돈을 낼 이유가 없습니다. 슬라임을 주무르는 화면에 결제 버튼을 들이밀 수는 없으니, 남는 카드는 사실상 광고 하나뿐이죠. 그런데 광고는 잘못 붙이면 앱 경험을 망치고, 정책을 어기면 정산이 막힙니다. 이번 편은 이 앱에서 실제로 내린 수익화 결정과, 그 과정에서 밟은 함정들을 정리합니다.광고는 나중에 — "빌드 플래그 두 개"로 무료부터 심사에 올리기가장 먼저 정한 원칙은 "무료 빌드로 먼저 심사에 올리고, 광고는 그다음 출시 빌드에서 켠다".. 2026. 8. 24.
미니앱 개발하기 3 - 사운드 효과 추가 소리가 촉감을 완성한다. 실녹음 그라뉼러와 WebView 오디오 언락 사투는, 3D 슬라임 토이 "쫀득 슬라임"에서 어떤 크런치 소리를 고를지의 시행착오와 그 소리를 실기기 첫 제스처부터 나게 만든 모바일 WebView 오디오 정책과의 씨름을 담은 개발기입니다.슬라임을 잡을 때 손끝에 남는 감각의 절반은 눈이 아니라 귀와 진동에서 옵니다. 화면 속 젤리가 아무리 그럴듯하게 출렁여도, 잡는 순간 "푹" 소리가 없으면 그건 그냥 움직이는 그림이죠. 그래서 이 앱에서 소리는 장식이 아니라 촉감의 나머지 절반이었습니다. 그런데 정작 그 소리를 WebView 위에서 "제대로" 내는 일이 물리 엔진을 짜는 것보다 더 큰 산이었습니다. 오늘은 어떤 소리를 고를지의 시행착오와, 그 소리를 실기기에서 첫 제스처부터 울리.. 2026. 8. 19.
미니앱 개발하기 2 - 모바일 전용 버그 데스크톱에선 멀쩡한데 폰에서만 슬라임이 끝없이 늘어나는 모바일 전용 버그가 생겼습니다. 토스 앱 WebView에서만 재현되는 실기기 전용 버그를 pointerup 유실이라는 원인까지 좁혀 3중 안전망으로 막은 개발기입니다.쫀득 슬라임(playwithslime)은 앱인토스에 올린 three.js 토이입니다. 손가락으로 젤리를 잡아 늘리고, 톡 찌르고, 푹 누르는 그 촉감 하나로 굴러가는 앱이죠. 그런데 앱을 올리고 얼마 지나지 않아 이런 제보를 받았습니다. "잡고 늘리면 슬라임이 무한정 늘어나요." 문제는 제 데스크톱 브라우저에서는 아무리 잡아당겨도 그런 일이 일어나지 않았다는 겁니다.실기기에서만 터지는 버그가 제일 골치 아프다개발자에게 가장 다루기 까다로운 버그는 "내 손에서 재현이 안 되는 버그"입니다.. 2026. 8. 10.
미니앱 개발하기 1 - 실제 촉감 구현 실제 촉감을 XPBD 소프트바디로 구현해보았습니다.반죽은 놓은 자리에 남아야 합니다레퍼런스로 삼은 건 3D 공을 돌려가며 눌러 부수는 미니앱이었지만, 만들고 싶었던 건 정반대였습니다. 부서지는 공이 아니라, 손가락으로 잡아 늘리면 그 자리에 그대로 남는 밀가루 반죽이었죠. 기획서 맨 앞에 물성 원칙을 못 박아 두었는데 그 첫 줄이 "스냅백 없음"이었습니다. 잡아 늘리고 놓았을 때 고무줄처럼 튕겨 돌아가면 그 시점에서 이미 실패라는 뜻입니다.문제는 웹에 도는 소프트바디 예제 대부분이 정확히 그 스냅백을 기본 동작으로 삼는다는 점이었습니다. XPBD든 스프링-매스든, 정점마다 "원래 있어야 할 자리(rest position)"와 엣지마다 "원래 길이(rest length)"를 정해 두고 그쪽으로 되돌리는 힘.. 2026. 8. 6.
미니앱 기획하기 - 쫀득 슬라임 쫀득 슬라임이라는 미니앱을 개발, 런칭하며 겪은 내용을 바탕으로 기록해보겠습니다. 감각을 코드가 지킬 물성 원칙으로 못박은 쫀득 슬라임(playwithslime)의 기획 이야기입니다.부수는 공을 보다가, 만지는 반죽이 하고 싶어졌습니다시작점은 왁뿌볼이었습니다. 앱인토스(토스 미니앱)에 이미 올라와 있는, 3D 공을 손가락으로 돌려가며 클릭해 부수는 미니앱이죠. 이걸 레퍼런스로 삼은 이유는 단순합니다. 토스 WebView 안에서 three.js 3D가 매끄럽게 돈다는 것, 그리고 화면 속 물체를 손가락으로 만지는 인터랙션이 사람을 붙잡는다는 것을 이미 증명한 포맷이었으니까요. 검증된 무대를 처음부터 다시 깔 이유는 없었습니다.다만 같은 걸 하나 더 만들 생각은 없었습니다. 부수기는 본질적으로 목표가 있는 .. 2026. 8. 5.
앱인토스 | 노선 데이터 매칭 앱인토스의 미니앱에서 노선 데이터 매칭, 그 핵심인 alias 퍼지 매칭과 거리 버킷·최저가 정렬로 표기 혼재를 흡수한 과정을 정리한 글입니다.같은 도시가 항공사마다 다른 이름, 다른 칸에 있다유류할증료 조회하기에는 "노선별 비교" 탭이 있습니다. 사용자가 도쿄 같은 도시를 고르면, 8개 항공사가 그 노선에 매기는 유류할증료를 최저가순으로 줄 세워 보여 주죠. 화면만 보면 단순한 기능입니다. 도시 하나 받아서 표에서 값 꺼내 정렬하면 끝일 것 같으니까요. 문제는 그 "표에서 값 꺼내기"가 항공사마다 판이하다는 데 있었습니다. 유류할증료는 각 항공사가 자기 기준으로 구간을 나눠 공표합니다. 대한항공은 대권거리(mile)를 ~499, 500~999처럼 9개 구간으로 쪼개고, 제주항공은 1구간에어부산은 근거.. 2026. 7. 30.