hanip.me

プライバシーポリシー

hanip.meが実際に扱うデータを、わかりやすく説明します。

2026年9月11日施行

hanip.meには会員登録もログインもありません。このサービスが実際に保存または送信するデータを、すべて説明します。

この端末だけに残るもの

カードで出会った料理、選択と実行の記録、明示的に選んだ料理の道とその結果、食事と再開の状態、最後のシャッフル方法、表示済みの説明、インストール案内を閉じた記録、ランダムなインストールID、前回の料理を実際に食べたかという明示的な回答、料理単位のおすすめ除外、図鑑で取っておいた料理は、ブラウザのローカルストレージに保存されます。ホーム画面の猫の反応を選ぶため、訪問回数、最終訪問時刻、直前の反応コンテキスト、イラストのバリエーション番号も保存します。ホーム反応の生データ、正確な訪問回数、最終訪問時刻を、プロダクト分析や独立したAPIペイロードとして送信することはありません。ただし、選ばれた猫の画像を読み込む静的ファイルのリクエストパスには、反応コンテキスト、イラストのバリエーション番号、灯籠の段階が含まれるため、ホスティング/CDN層がそのパスをリクエスト情報として確認する場合があります。同じ理由で、称号の共有リンク(/t/{title id})には送ることを選んだ称号IDが含まれ、メニューIDは送ることを選んだ場合だけ含まれます。それ以外の情報は含みません。ホーム反応の値はデータ管理から消去できますが、バックアップのエクスポートとインポートには含みません。段階的なおすすめが有効になる前でも、インポートしたバックアップを安全に扱えるよう、おすすめ進行には、発見・選択・実行した料理ID、活動日と回数、最近表示した料理と直近の明示的な見送り、好みの重みと除外タグ、新しい料理への許容度、ポリシーとCoreのバージョン、同じ実行の重複計上を防ぐランダムな実行レシートの件数上限のある2つの集合だけが含まれる場合があります。中断した操作の復旧用は最大256件、端末内の1,000件のイベントログに対応する集合は最大1,000件です。「3枚とも選ばない」という3件のシグナルと3件すべての料理記録が保存された場合に限り、その3つの料理ID、食事時間帯と日付、一度限りの調整を使用したかどうかを含む修正記録も保存します。この一度限りの調整がタブ間や中断後に重複するのを防ぐため、有効期限が2分以内のランダムなレシートIDと一時的な取得IDも保存します。調整対象の3枚セッションには、完了証明として同じIDが残ります。次に同じ食事時間帯が来たとき一度だけその3品を避け、その後は最大14日かけて弱まる並び順の調整だけを使います。その料理を選ぶか、地図またはデリバリーを明示的に開くと、その料理への調整はすぐに解除されます。遅れて到着した古い操作が新しい修正を消さないよう、選択・実行イベントは操作開始時に確認した修正レシートの世代だけを端末内に保存します。地図やデリバリーアプリへ移る直前には、そのタブのセッションストレージに、実行した料理ID、ランダムな意図ID、作成時刻、同じデータ世代値、存在する場合は修正レシート世代を保存し、30分以内に限り復旧対象として扱います。書き込みに成功するとすぐ削除し、期限切れまたは不正な値は戻った後にhanip.meが確認した時点で削除し、タブを閉じた場合も削除されます。この一時データはバックアップのエクスポートとインポートには含まず、データ管理またはブラウザのサイトデータ消去で削除されます。リクエスト時だけ、この端末に保存した選択を審査済みの味分類と弱く結びつけ、今後のおすすめ順を調整します。明示的に除外した料理は、その計算からも外します。同じ選択料理の地図またはデリバリー操作は選択を補強する場合がありますが、実行だけで新しい好みを作ったり、実食や満足を証明したりすることはありません。一食限定チャレンジの選択は保存しません。

料理に直接結びつく正確な回答とおすすめ除外一覧は、このブラウザだけに残り、おすすめの調整と日誌・図鑑・プロフィール画面の表示にだけ使います。機能が役立っているかを測るため、案内表示、食べた、食べなかった、除外、復元といった、料理と結びつかない大まかなイベント種別だけを送信します。指標には料理IDや料理名、食事時間帯、回答の生データ、除外一覧、見送り理由、除外タグ、好みの重みを含めません。インストールIDの生データも送信しません。仮名化された訪問統計では、SHA-256でハッシュ化し、先頭16バイト(16進数32文字)だけを仮名化インストール識別子として送信します。

記録の消去やインポート中に古い画面から遅れた書き込みが再び現れないよう、ブラウザは内容・利用者・時刻のデータを含まない内部の変更世代番号を1つ保存します。これはエクスポートせず、記録の消去またはインポート時に進めます。ブラウザでこのサイトのデータを消すと、この番号も削除されます。Web Locksによる調整に対応しない古いブラウザでも、1つのタブでは基本記録を利用できますが、複数タブから同時に書き込むと更新が失われる場合があります。その環境では、記録の消去とインポートは一部だけを書き換えることなく、処理全体が失敗します。

サービス情報のデータ管理から、選択・おすすめ記録と保存位置をエクスポートまたはインポートできます。また、ホーム反応の値を含む端末内の全記録と保存位置を消去できます。ブラウザでこのサイトのデータを消しても削除されます。

プロダクト分析として収集するもの — 仮名化された訪問統計

プロダクト改善のため、16種類のイベントを集計します:visit、start、reveal、decide、share、execute、result_view(共有結果の到着ページだけ)、recommendation_reason_impression、recommendation_reason_expand、recommendation_reason_collapse、feedback_prompt、feedback_tasted、feedback_not_eaten、feedback_exclude、feedback_exclude_undo、dex_view(図鑑を開いたか。訪問ごとに1回だけ計上)。ブラウザから送るのは、インストールIDの生データをSHA-256でハッシュ化して先頭16バイトだけを取った仮名化インストール識別子、訪問ごとのランダムID、イベント種別、正確な時刻を含まない0〜14の訪問内連番、10種類の流入元カテゴリ(cat、threads、food-guide、intent-landing、direct、other、theme、room、search、pwa)のいずれか、訪問開始時に表示していた1つの画面言語(ko、en、ja)、decideイベントだけに付くおおまかな所要時間区分、アプリのバージョン、そして審査済みの実験が有効な場合だけ、訪問全体で固定した閉じたコードのexperiment_idとvariantの組です。現在のベースラインでは、2つの実験値を保存しません。10種類の流入元は次の意味です。catはハニプキャット投稿のリンク、threadsはThreadsのリンク、food-guideは料理ガイドのカードCTA、intent-landingは目的別到着ページのCTA、themeはテーマページのカードCTA、roomは友達の相談ルームのリンク、searchは検索エンジン(参照元はホスト名だけを読み、アドレス自体は読みません)、pwaはホーム画面に追加したアプリからの起動、directはそれ以外の直接訪問、otherは認識できなかった印です。searchとpwaを区別するため、document.referrerのホスト名と表示モード(standalone)をブラウザ内だけで読みます。1つの流入元を選んだ後、参照元アドレスも表示モードもサーバーへ送らず、保存しません。受信時、サーバーはKSTの暦日を保存し、リクエスト先アドレスから計測環境(productionまたはqa)を導きます。リクエストが現在のサーバービルドと完全に一致する場合だけ、アプリバージョンとイベント連番を一緒に保持し、古いまたは未認識のバージョンから届いた連番は保存しません。実験値は登録済みの組に正規化します。認識できない画面言語、または古いブラウザなど言語を送らないリクエストは、推測せず空欄にします。本番リクエストでは、オーナー確認や管理されたカナリア流入を公式の外部ベースラインから除外できるよう、リクエストCookieから低カーディナリティの流入区分(external、owner_test、synthetic)のいずれか1つも導きます。このCookieは除外のためのベストエフォートな印であり、権限や人間の訪問を証明するものではありません。Cookieの生データは指標テーブルに保存しません。訪問が韓国からかだけを確認するため、リクエストにすでに付いている国情報をKRまたはotherの2値だけにまとめ、それより細かい情報は保存しません。都市、地域、座標、まとめる前の国コードは保存しません。国が不明なリクエストはotherと推測せず空欄にします。この値はブラウザの位置許可や「周辺の飲食店を探す」で保存した位置とは関係ありません。古いブラウザから送られる端末日付は無視します。各イベント種別は訪問ごとに最大1回だけ数えます。現在のビルドと完全に一致するイベントリクエストが検証とレート制限を通過してD1のupsertに到達した場合、サーバーは1行を保持し、その境界で確認できた試行回数の下限だけを1〜2に制限して保存します。これはサーバーへの全到達回数でも、自動再試行だけの回数でもありません。料理ガイドや目的別到着ページを読むだけではイベントは発生しません。ガイドのCTA後はfood-guide、目的別到着ページのCTA後はintent-landingを使います。これらの公開マーカーはベストエフォートな分析用ラベルであり、認証された流入元の証明ではありません。

正確なガイドURLやintent-landing URL、個別ページの識別子は送信しません。利用者が押した所定の入口リンクはdiscover・decide・collect(料理を知る・食事を選ぶ・カードを集める)の3値のいずれかだけに分類し、流入元とは別に送信します。訪問開始時に一度だけ決め、言語の切り替えや再試行でも変えません。印がない場合や認識できない場合は推測せず空欄にします。この分類では、公開ページの表示や離脱、注文カードの保存、実際の注文や食事は測定しません。現在公開している審査済みの目的別到着ページは辛い料理とKトレンドの2つなので、intent-landingだけではどちらのCTAが使われたか特定できません。アプリバージョン、計測環境、実験コードは、メニューや文言の内容ではなく、デプロイと比較のための低カーディナリティなラベルです。これ以外に指標へ含めないものは、料理の種類、料理IDや料理名、検索語、食事時間帯、回答の生データ、除外一覧、カード位置、都市・地域・座標のような個別位置、おすすめ要因、正確な時刻、氏名、メールアドレスです。説明を開くことが好みのシグナルになることもありません。指標はサーバーが付けたKST日付を基準に30暦日保存し、古い行を毎日自動削除します。

天気の使い方

カード背景(晴れ、曇り、雨、雪)を合わせ、審査済みの温かい汁もの、軽い料理、雨の日向け分類を今日の天気に応じて穏やかに調整するため、リクエストに付く都市程度のおおまかな位置を、その時点の天気確認にだけ一時的に使います。

正確なGPS座標は使わず、Hanipはレスポンス、保存領域、運用ログのいずれにも緯度・経度を書き込みません。天気照会ではOpen-Meteoへおおまかな座標を送り、Hanipは同じおおまかな地域の天気結果だけを約15分間再利用します。

天気が順序に影響できるのは、審査と対象条件を通過した料理の間だけで、0.90〜1.15の範囲に制限した倍率です。除外、アレルギー境界、食事対象条件、チャレンジのゲートを緩めることはありません。都市、気温、天気の種類はおすすめ記録や指標に保存しません。天気が実際に並び順へ寄与した場合、この端末のおすすめセッションに残る可能性があるのは、その一般的な事実と数値上の寄与だけです。伏日、バレンタインデー、ブラックデーの案内はKST日付と公開資料だけを使い、おすすめ点数や好みの記録を変えません。

オフラインキャッシュとホーム画面への追加

hanip.meはPWAです。次回の表示を速くするため、画面や画像などの静的素材を端末にキャッシュします。キャッシュはこの端末だけに残り、訪問履歴などのAPIレスポンスはキャッシュしません。

ホーム画面に追加しても新しいデータは作られません。ブラウザをすばやく開くためのショートカットです。

友達の相談ルーム(投票)のデータ

「相談ルーム」は3つの候補メニューを友達に見せ、投票をお願いする機能です。ルーム運用のため、別のルーム用サーバーが、作成時に選ばれた3枚のカードID、友達の仮名化された投票、各投票に付けた理由タグを短時間保存します。ルーム作成リクエストでは、メインアプリの数値形式のバージョンも送信します。氏名、Kakaoアカウント、電話番号、正確な位置を求めることはありません。投票者を区別する値とルーム所有者の権限値は、一方向ハッシュで保存し、平文では保存しません。同じルームからの「自分の3枚を見る」という引き継ぎを二重に数えないため、このタブのセッションストレージには、生のroomIdではなく16文字のルーム範囲値と、保留中・表示済みの状態を最大16件、タブを閉じるまで保存します。データ管理からも削除できます。

このルーム運用データは、作成から最長15分後に、当初設定したアラームによって自動的かつ完全に削除されます。ルーム所有者が先にメニューを確定しても、投票と理由タグはすぐには削除されず、そのアラームまで残る場合があります。

仮名化されたルーム単位の指標と運用記録は、その後も残ります。含まれる可能性があるのは、公開共有リンクのroomIdを別の秘密鍵なしでSHA-256ハッシュ化したroom_hash、KSTの暦日、食事時間帯、候補と確定メニューのID、ルーム作成・初回投票・確定・期限切れと、ホストまたはゲスト画面での11種類の操作イベント、イベントごとのメニュー別得票数スナップショットと参加者数、最終順位、同率状態、所要時間区分、サーバーがリクエスト元から導いた計測環境(productionまたはqa)、クライアントが送った形式確認済みの数値アプリバージョンです。同じroom_hashで連続する得票数スナップショットの差から、どのカードに投票または投票変更があったか分かる場合がありますが、投票者を区別する値と個別の理由タグは長期記録に含めません。公開のリクエスト元とアプリバージョンのマーカーはベストエフォートな比較ラベルであり、流入元やバージョンの認証済み証明ではありません。これらの仮名化記録には、現在、自動削除期限がありません。

行わないことと、ホスティングのセキュリティ

会員登録もログインもありません。「周辺の飲食店を探す」を選ぶたびに、ブラウザが現在地を確認し、すでに選んだ位置情報の許可設定を適用します。許可した場合、座標を小数点以下3桁(約100m)に丸め、おおまかな精度区分と最終保存日とともに、指標で使う同じ仮名化インストール識別子に結びつけて保存します。周辺の飲食店検索と保存位置の管理だけに使います。最終保存日からKSTの暦日基準で180日が過ぎた位置情報を毎日自動削除し、サービス情報のデータ管理からいつでも自分で削除できます。広告やトラッキングスクリプトは使いません。データを販売したり、広告目的で共有したりすることもありません。

ホスティングと悪意ある通信からの保護には、Cloudflareのセキュリティ層を使います。Cloudflareはボット検知Cookie「__cf_bm」を設定し、セキュリティのためにリクエストIPとブラウザ情報を処理する場合があります。hanipはこのCookieを広告やメニューの個人化には使いません。

これらの実行リンクは韓国内での利用を想定しています。「周辺の飲食店を探す」は、メニュー名と直前に確認したおおよその座標を含むNaver Map(map.naver.com)の検索URLを開きます。「位置を使わず料理名だけで検索」を選ぶと、hanip.meは現在地を確認・保存せず、座標を含めずメニュー名だけを送ります。「デリバリーアプリで探す」は、端末内でメニュー名をコピーし、インストール済みのペダルミンジョクまたはCoupang Eatsアプリを開きます。hanip.meを離れた後は、各サービスのプライバシーポリシーと利用規約が適用されます。

このサービスについて

個人が一人で制作・運営しているサービスです。サービス情報のデータ管理から、選択・おすすめ記録と保存位置をエクスポートでき、ホーム反応の値を含む端末内の全記録と保存位置を消去できます。不具合やアクセシビリティの問題は、下のメールリンクからお知らせください。

メールで問い合わせる

送信されたメールは、返信のためだけに使います。