앱인토스 재미 요소를 어디까지 넣어도 되는지 알아본 답은 캐릭터까지였고, 등급분류 수수료는 0원이었습니다.
배지 하나만 더 넣었으면 15,000원짜리 심사를 다시 받아야 했습니다.
이 글은 어제 낸 교통비 환급 계산기에 재미 요소를 넣어 오늘 다시 심사를 통과시킨 기록입니다.
무엇이 게임물이고 무엇이 아닌지는 제 해석이 아니라, 우리 앱 두 개가 실제로 갈린 지점으로 적었습니다.
수집과 보상이 붙는 순간 게임물이 됩니다. 캐릭터와 애니메이션은 연출이라 비게임으로 남습니다.
앱은 토스에서 바로 열 수 있고, 여는 방법은 글 맨 아래에 적어 두었습니다.

배지를 넣는 순간 등급분류 대상이 됩니다
어제 글에서 게임물 등급분류 수수료를 다뤘습니다.
오픈마켓 10MB 미만이면 30,000원이고, 개인 제작자는 절반이 환급돼 15,000원입니다.
게임물관리위원회 심사는 10~15일 걸립니다.
그런데 저는 같은 워크스페이스에서 앱 두 개를 굴리고 있습니다.
하나는 「오늘의 물가 감각」이고, 다른 하나는 「교통비 환급 계산기」입니다.
앞의 것은 등급분류를 받아야 하고, 뒤의 것은 받지 않아도 됩니다.
둘 다 캐릭터가 나오고 애니메이션이 돌아갑니다.
갈린 지점은 그림이 아니라 구조였습니다.
물가 감각에는 점수와 순위와 배지가 있습니다.
맞히면 점수가 쌓이고, 오늘 상위 몇 퍼센트인지 나오고, 배지가 열립니다.
이게 게임입니다.
교통비 계산기에는 그게 하나도 없습니다.
앱인토스 재미 요소는 캐릭터까지가 안전선입니다
제가 실제로 그은 선은 이렇습니다.
| 구분 | 넣은 것 | 넣지 않은 것 |
|---|---|---|
| 캐릭터 | 결과에 반응하는 표정 | 캐릭터 수집·성장 |
| 숫자 | 굴러 올라가는 카운트업 | 점수·랭킹 |
| 조작 | 슬라이더·컨페티 | 출석·연속 기록 |
판단 기준은 하나로 잡았습니다.
세션이 끝난 뒤에 남는 것이 있는가.
캐릭터 표정은 계산 결과에서 그때그때 나오고 사라집니다.
배지는 다음에 열어도 남아 있습니다.
남는 것이 곧 수집이고, 수집은 보상 구조입니다.
여기까지가 제 판단이고, 심사가 이 선을 그대로 인정해 준 것은 오늘 통과로 확인했습니다.
캐릭터가 결과를 읽습니다
쿠쿠박사가 계산 결과를 보고 표정을 바꿉니다.
15통행이 안 되면 걱정하는 얼굴이 되고, 10월에 부담이 오르면 시무룩해집니다.

중요한 건 이 포즈가 아무 데도 저장되지 않는다는 점입니다.
RefundResult라는 계산 결과 하나에서 파생되는 순수 함수로 만들었습니다.
같은 입력이면 같은 표정이 나오고, 앱을 껐다 켜면 아무것도 기억하지 않습니다.
말풍선 아래 한 줄도 방식에 따라 갈립니다.
기본형이 적용되면 “쓴 금액의 일정 비율을 돌려주는 방식"이라고 나오고, 모두의카드가 적용되면 “기준금액을 넘게 쓴 만큼 전액"으로 바뀝니다.

‘모두의카드’라는 이름만 띄워 놓으면 그 줄이 읽히지 않는다고 봤습니다.
절약 시뮬레이션은 앱 안의 숫자로만 만들었습니다
한 달 환급액을 1년으로 펴서 보여주는 카드를 새로 넣었습니다.
51통행이면 연 204,600원입니다.
그 아래 한 줄이 이 카드의 핵심입니다.
지하철 무료 탑승 132번과 같아요.

처음엔 “커피 몇 잔"으로 쓸까 했습니다.
그런데 커피값은 앱 밖의 숫자입니다.
기준값과 기준일을 계속 관리해야 하고, 시간이 지나면 틀립니다.
지하철 환산은 다릅니다.
사용자가 직접 넣은 1회 요금으로 나누면 끝나서, 앱 안에서 자기 완결됩니다.
외부 물가를 하나도 인용하지 않고 체감을 만들 수 있었습니다.
3년·5년으로 늘리는 것은 일부러 막았습니다.
연 환산까지가 상한이고, 그 위는 과장으로 읽힙니다.
결과를 맨 위로 올리니 스크롤이 26% 줄었습니다
재미 요소를 넣다 보니 화면이 길어졌습니다.
재보니 폰 화면(844px)의 2.8배였습니다.
더 큰 문제는 길이가 아니라 순서였습니다.
입력 폼 하나가 707px로 첫 화면을 통째로 먹고 있었습니다.
계산기를 열었는데 답이 안 보였습니다.
그래서 결과를 맨 위로 올렸습니다.
요금·이용자 구분 설정과 통행 수 비교표는 접었습니다.
2,394px에서 1,762px로, 26% 줄었습니다.
이제 앱을 열면 결과와 슬라이더가 첫 화면에 함께 들어옵니다.

접었더니 안 보였습니다
여기서 제가 한 번 틀렸습니다.
스크롤을 줄이려고 ‘통행’ 설명까지 접었습니다.
이 앱에서 통행은 탑승 횟수가 아닙니다.
환승해서 이어 타면 다음에 기본요금을 낼 때까지가 1통행입니다.
이걸 탑승 횟수로 넣으면 계산이 통째로 틀어집니다.
실기기로 확인하다가 “부주의하면 안 보인다"는 말을 들었습니다.
접으면 안 되는 정보를 접은 것이었습니다.
입력란 위로 올려 파란 상자로 되돌렸습니다.
그러고도 전체 높이는 1,762px 그대로였습니다.
줄일 곳은 설명이 아니라 카드 구조였습니다.
접힌 항목 두 개가 각각 자기 카드를 차지하고 있어서, 안이 비었는데도 카드 여백이 두 겹으로 쌓이고 있었습니다.
한 카드에 묶으니 162px이 67px이 됐습니다.
정리 — 다섯 줄
- 앱인토스 재미 요소의 안전선은 캐릭터·애니메이션·슬라이더까지고, 점수·순위·배지는 게임물 재분류 대상입니다.
- 판단 기준은 “세션이 끝난 뒤 남는 것이 있는가"이고, 남으면 수집이자 보상 구조입니다.
- 체감 환산은 앱 안의 숫자로 닫으면 외부 출처를 관리하지 않아도 됩니다(연 204,600원 = 지하철 132번).
- 재미를 넣어 길어진 화면은 순서를 바꿔 줄였습니다(2,394 → 1,762px, 26%).
- 핵심 개념 설명은 접으면 안 됩니다 — 줄일 곳은 카드 구조였습니다.

직접 써 보시려면
토스 앱에서 바로 열 수 있습니다.
휴대폰으로 이 글을 보고 계시면 아래 주소를 누르시면 됩니다.
intoss://transit-refund-calculator
앱이 열리지 않거나 PC로 보고 계시면, 토스 앱 하단 「전체」 탭에서 ‘교통비 환급 계산기’를 검색하셔도 됩니다.
토스가 설치돼 있지 않으면 앱스토어나 플레이스토어로 연결됩니다.
돈은 받지 않고 광고도 없습니다.
오늘 올린 버전이 오후 3시 13분에 출시됐고, 등급분류 수수료는 한 푼도 들지 않았습니다.
저는 이번에 “재미"와 “게임"이 다른 말이라는 걸 수수료 15,000원어치로 배웠습니다.
다음 글에서는 이 앱의 핵심 지표를 콘솔에 등록하는 과정을 적겠습니다 — 전환 지표는 이미 수집된 이벤트에서만 고를 수 있어서, 계측이 먼저였습니다.
이어서 볼 글
이 글은 제가 만든 앱의 개발 기록이며 투자 권유가 아닙니다. 등급분류 기준은 게임산업진흥에 관한 법률 제21조와 게임물관리위원회 수수료 조견표를 근거로 하며, 개별 앱의 분류는 심사 기관의 판단에 따릅니다. 화면과 수치는 2026년 9월 7일 출시본(20260907-7) 기준입니다.