> For the complete documentation index, see [llms.txt](https://developers-apps-in-toss.toss.im/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers-apps-in-toss.toss.im/checklist/app-nongame.md).

# 비게임 출시 가이드

미니앱에 공통으로 적용되는 기준과 기능별 출시 가이드예요. 출시하기 전에 반드시 내용을 확인하고 가이드를 지켜 주세요.

{% hint style="info" %}
**참고해 주세요**

아래 출시 가이드의 항목은 지속적으로 최신화되고 있어요.
{% endhint %}

### 접속 및 앱 내 기능

* [ ] 미니앱이 정상적으로 열려요.
* [ ] ‘앱 내 기능’ 으로 안내한 모든 서비스 기능을 미니앱에서도 동일하게 사용할 수 있어요. (#)
* [ ] ‘앱 내 기능’ 에 등록한 스킴이 정상적으로 연결돼요.
* [ ] 앱 스킴으로 진입한 뒤, 뒤로가기 버튼이 정상적으로 작동해요. (#)

### 내비게이션 바

* [ ] 앱인토스 비게임 내비게이션 바를 사용하고 있어요. (#)
* [ ] \[좌측] 뒤로가기 버튼(<)이 모든 화면에서 정상적으로 동작해요. (#)
* [ ] \[중앙] 앱 정보에 등록한 브랜드 로고와 미니앱 이름(국문)이 내비게이션바에 표시돼요. (#)
* [ ] \[중앙] 홈 버튼이 정상적으로 동작해요. (선택 사항) (#)
* [ ] \[우측] 미니앱 기능 버튼은 최대 1개만 노출돼요. (선택 사항) (#)
* [ ] 토스 내비게이션 바의 뒤로가기 버튼과 미니앱에서 자체 구현한 뒤로가기 버튼이 동시에 보이지 않아요. (#)
* [ ] 더보기 버튼(⋯)에서 토스 공통 기능(신고, 공유 등)을 정상적으로 제공해요. (#)
* [ ] 닫기 버튼과 뒤로가기 버튼이 노출되고, 동작이 명확해요.
* [ ] 최초 화면에서 뒤로가기를 누르면 미니앱이 종료돼요.
* [ ] 탭바를 사용하는 경우, 토스 앱과 동일한 플로팅 형태로 구현돼 있어요. (#)

### 사용자 식별키 발급

* [ ] 사용자 식별자 값을 확인하여 저장하고, 미니앱이 정상적으로 시작돼요. (#)
* [ ] 유저의 미니앱 사용 기록이 유지돼요. (#)
* [ ] 미니앱을 종료했다가 다시 접속해도 필요한 데이터가 유지돼요. (#)

### 보안 및 안정성

* [ ] 외부에서 전달받은 코드를 실행하는 기능은 사용할 수 없어요. (예: `eval` 등)
* [ ] 브라우저 히스토리를 조작해서 자사 사이트로 이동시키는 방식은 사용할 수 없어요. (예: `window.location.replace` 등)
* [ ] 서버 사이드 렌더링(SSR)은 사용할 수 없어요. 클라이언트 사이드 렌더링(CSR) 또는 정적 사이트 생성(SSG) 방식만 사용할 수 있어요.
* [ ] WebSocket을 사용하는 경우, 암호화된 `wss://` 연결만 사용해요. (예: Firebase Firestore, Supabase Realtime 등)

### 서비스 이용 동작

* [ ] 지도처럼 꼭 필요한 경우를 제외하고, 제스처 기반 확대·축소 기능은 비활성화돼요. (#)
* [ ] 미니앱 테마는 라이트 모드로 구현돼 있어요.
* [ ] 모든 UI 컴포넌트가 의도한 대로 동작해요.
* [ ] 스크롤, 터치, 화면 전환 등 인터랙션 반응이 2초 이상 지연되지 않아요. (#)
* [ ] 미니앱을 종료했다가 다시 들어와도 필요한 데이터가 유지돼요. (#)
* [ ] 서비스 이용에 꼭 필요한 외부 링크가 정상적으로 열려요. (#)
* [ ] 공유 기능에서 `intoss-private://` 링크를 사용하지 않고 `intoss://` 스킴을 사용해요. (#)
* [ ] 미니앱 문구에 비속어, 은어, 과도한 유행어가 포함되지 않아요. (#)
* [ ] 사용자 안내나 확인이 필요한 경우 TDS 모달을 사용해요.
* [ ] 불법성, 선정성 등 위법한 콘텐츠가 포함돼 있지 않아요.
* [ ] React Native 앱에서 권한을 요청하기 전에 사용자 동의를 먼저 받아요. (#)
* [ ] 사용자가 권한을 허용하지 않아도 나머지 기능은 계속 정상적으로 작동해요.
* [ ] 비정상적으로 네트워크 사용량이 급증하지 않아요.
* [ ] 비정상적으로 메모리 사용량이 급증하지 않아요.

### UX

* [ ] 미니앱에 들어오자마자 바텀시트가 자동으로 열리지 않아요. (#)
* [ ] 특정 화면 전환 시 바텀시트로 사용자의 행동을 강제로 유도하지 않아요. (#)
* [ ] 모든 화면에서 사용자가 미니앱을 나갈 수 있는 방법이 명확해요. (#)
* [ ] CTA 버튼을 보면 다음에 어떤 행동이 일어날지 예측할 수 있어요. (#)
* [ ] 링크나 컴포넌트로 자사 서비스 이동이나 자사 앱 설치를 유도하지 않아요. (#)
* [ ] 인앱 광고는 인트로/로딩/컷신/팝업 모달 등 일시적인 화면에 노출되지 않아요. (#)

### 토스 로그인

* [ ] 토스 로그인을 사용하는 경우, 어떤 서비스인지 알 수 있도록 인트로 페이지에서 서비스 설명을 제공해요. (#)
* [ ] 설정한 토스 로그인 약관 화면 URL이 정상적으로 노출돼요. (#)
* [ ] 토스 로그인을 요청하는 화면에서 닫기를 선택하면 미니앱이 종료돼요. (#)
* [ ] 토스 앱에서 로그인 연결을 끊은 뒤 미니앱에 다시 접속하면, 다시 로그인을 요청하는 약관 화면이 노출돼요.
* [ ] 토스 앱에서 로그인 연결을 끊으면 사용자 데이터가 미니앱에 남아 있지 않아요. (#)
* [ ] 토스 로그인이 아닌 자사 로그인이나 기타 로그인 방식은 제공하지 않아요.

### 인앱 결제

* [ ] 인앱 결제를 진행할 때, 미니앱에서 재생 중인 음악은 일시 정지돼요.
* [ ] 인앱 결제 주문 금액과 구글 또는 애플 결제창에 표시되는 금액이 일치해요. (#)
* [ ] 인앱 결제가 정상적으로 진행돼요. 구글 결제 테스트 환경에서도 확인해요.
* [ ] 인앱 결제가 완료된 뒤 미니앱으로 돌아오면 결제 결과가 정상적으로 반영돼요.
* [ ] 인앱 결제창에서 취소를 선택하면 주문 화면으로 돌아가요.
* [ ] 잔액 부족 등으로 결제에 실패했을 때, 사용자가 실패 사유를 인지할 수 있어요.
* [ ] 인앱 결제 취소가 정상적으로 처리돼요.
* [ ] 인앱 결제 상품에 대한 결제 내역을 사용자가 확인할 수 있어요.
* [ ] 토스 앱에 로그인된 기기를 변경해도, 기존에 결제한 인앱 결제 데이터(이용권 등)가 유지돼요. (#)

### 토스페이

* [ ] 토스페이 간편 결제를 진행할 때, 미니앱에서 재생 중인 음악은 일시 정지돼요.
* [ ] 주문 금액과 토스페이 결제창에 표시되는 금액이 일치해요.
* [ ] 토스페이 결제에 실패하면 오류 메시지가 노출되고, 사용자가 실패 사유를 인지할 수 있어요. (#)
* [ ] 토스페이 결제 직전에 취소를 선택하면 이전 화면으로 돌아가요.
* [ ] 토스페이 외의 다른 결제 수단은 제공하지 않아요.
* [ ] 토스페이 결제창에서 취소를 선택하면 주문 화면으로 이동해요.

### 인앱 광고

* [ ] 인앱 광고가 재생될 때, 미니앱에서 재생 중인 음악은 일시 정지돼요.
* [ ] 사용자가 예상하기 어려운 순간에 인앱 광고를 노출하지 않아요. (#)
* [ ] 인앱 광고가 정상적으로 노출되고, 중간에 종료되거나 튕기는 현상이 없어요.
* [ ] 인앱 광고는 사전에 로딩돼 있어요. 광고 재생 시점에 실시간으로 로딩하지 않아요. (#)
* [ ] 인앱 광고가 종료되면 미니앱 화면으로 정상적으로 돌아와요. (#)
* [ ] 인앱 광고 종료 후 미니앱 음악이 다시 재생돼요.
* [ ] 리워드 광고를 끝까지 시청하면 보상이 정상적으로 지급돼요. (#)
* [ ] 배너 광고가 적절한 위치에 노출돼요. (상단/중앙/하단) (#)
* [ ] 배너 광고가 스크롤 가능한 화면에만 노출돼요. (#)

### 공유 리워드

* [ ] 설정한 공유 리워드 화면이 정상적으로 노출돼요. (#)
* [ ] 공유 리워드 화면을 닫으면 미니앱 화면으로 정상적으로 돌아와요.
* [ ] 친구 초대가 완료되면 보상이 정상적으로 지급돼요. (#)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers-apps-in-toss.toss.im/checklist/app-nongame.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
