BizSpring.ai

์ง€์‹์„ผํ„ฐ / ๋ ˆํผ๋Ÿฐ์Šค

๐ŸŽฏ I-1 G1 ์„ค๊ณ„ โ€” geobh-jsonld EF ์ธ์ฆ ํ—ค๋” ํ†ตํ•ฉ v1.2 (5/11 ํ›„์† ์ •์ •)

# ๐ŸŽฏ I-1 G1 ์„ค๊ณ„ โ€” geobh-jsonld EF ์ธ์ฆ ํ—ค๋” ํ†ตํ•ฉ v1.2 (5/11 ํ›„์† ์ •์ •) > ์ž‘์„ฑ: 2026-05-10 KST | v1.0 > ๊ฐฑ์‹ : 2026-05-11 KST | **v1.1** (5/11 GEOCARE ๋ฐฉ EF v5 ๋ผ์ด๋ธŒ ํ™•์ธ ํ›„ ์ •์ • โ€” ๋ณธ์งˆ

ํ•ต์‹ฌ ์š”์•ฝ

    # ๐ŸŽฏ I-1 G1 ์„ค๊ณ„ โ€” geobh-jsonld EF ์ธ์ฆ ํ—ค๋” ํ†ตํ•ฉ v1.2 (5/11 ํ›„์† ์ •์ •)

    > ์ž‘์„ฑ: 2026-05-10 KST | v1.0

    > ๊ฐฑ์‹ : 2026-05-11 KST | v1.1 (5/11 GEOCARE ๋ฐฉ EF v5 ๋ผ์ด๋ธŒ ํ™•์ธ ํ›„ ์ •์ • โ€” ๋ณธ์งˆ ๋ณ€ํ™” 0, ๋ช…์นญ๋งŒ ์ •์ •)

    > ๊ฐฑ์‹ : 2026-05-11 KST | v1.2 (5/11 ํ›„์† โ€” GEOCARE G2-1/G2-3 ํšŒ์‹  ์ˆ˜๋ น + 4๊ฐœ ๊ฒฐ์ • ์Šน์ธ ๋ฐ˜์˜, ๋ณธ์งˆ ๋ณ€ํ™” 0)

    > ํŠธ๋ž™: T-AUTO-INJECT-UNIFIED-v1 Phase 1.2 / Track I I-1

    > Track I Reference: KHub ea16e72e-e577-4ff7-a68c-8c796857f660

    > ๋Œ€์ƒ EF: bawee Supabase geobh-jsonld (ํ˜„์žฌ v5 ๋ผ์ด๋ธŒ, schema.geocare.ai CNAME)

    > Phase: ๐Ÿ“‹ READY (G2 4/4 ALL PASS, PUT ์ง„์ž… ๊ฐ€๋Šฅ)

    > ์šฐ์„ ์ˆœ์œ„: P0

    > ์˜ˆ์ƒ ์†Œ์š”: 0.5์ผ

    ---

    0. v1.0 โ†’ v1.1 โ†’ v1.2 ์ •์ • ์‚ฌ์œ  (๋ณ€๊ฒฝ ์ด๋ ฅ ยง10 ์ฐธ์กฐ)

    v1.0 โ†’ v1.1 (5/11 KST 1์ฐจ)

    5/11 KST ์–‘ ๋ฐฉ 5/10~5/11 ํ†ตํ•ฉ ์ ๊ฒ€ ๋งคํŠธ๋ฆญ์Šค์—์„œ ๋ฐœ๊ฒฌ:

    v1.1 โ†’ v1.2 (5/11 KST ํ›„์†)

    5/11 KST GEOCARE โ†’ PREMIUM_GEO Cross-Room MB 13์ฐจ ํšŒ์‹  ์ˆ˜๋ น + ์ฐฐ์Šค 4๊ฐœ ๊ฒฐ์ • ์Šน์ธ:

    ---

    1. ํ•œ ์ค„ ์ •์˜

    geobh-jsonld EF v5(2026-05-11 ๋ผ์ด๋ธŒ)์— X-GEOcare-Key ํ—ค๋” ๊ฒ€์ฆ ์ž…๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ, ์™ธ๋ถ€ ์‚ฌ์ดํŠธ์˜ ์ธ์ฆ ํ˜ธ์ถœ๋งŒ ์‘๋‹ตํ•˜๋„๋ก ๊ฒŒ์ดํŠธ๋ฅผ ๋‹ซ๋Š”๋‹ค. ์‘๋‹ต ๋ณธ๋ฌธ์€ ๋ฏธ๋ณ€๊ฒฝ (3 SSOT ํ†ตํ•ฉ ๋กœ์ง ๊ทธ๋Œ€๋กœ).

    ---

    2. ๋ณ€๊ฒฝ ๋ฒ”์œ„ (์ž…๊ตฌ ํ•œ์ •)

    2.1 ์ถ”๊ฐ€

    2.2 ๋ฏธ๋ณ€๊ฒฝ (์ ˆ๋Œ€ ๊ธˆ์ง€)

    โ†’ ๋ณธ๋ฐฉ์€ ์ž…๊ตฌ๋งŒ ์ถ”๊ฐ€. GEOCARE ์ธก EF v6 ๋ฐฐํฌ ์‹œ์ (T-FIX-3SSOT-PIPELINE Step 4)์—์„œ ๋ณธ๋ฐฉ ์ธ์ฆ ์ž…๊ตฌ ๋ณด์กด ์˜๋ฌด ํ•ฉ์˜ ํ•„์š” (Cross-Room MB 14์ฐจ์—์„œ ํ†ต๋ณด).

    ---

    3. ์˜์‚ฌ ์ฝ”๋“œ (ํ˜„์žฌ v5 ๋ผ์ด๋ธŒ ์œ„์— ์ž…๊ตฌ๋งŒ ์ถ”๊ฐ€)

    // === Deno Edge Function: geobh-jsonld v6 (์ธ์ฆ ํ†ตํ•ฉ) ===
    // v5 โ†’ v6 (์ž…๊ตฌ๋งŒ ์ถ”๊ฐ€, ์‘๋‹ต ๋ณธ๋ฌธ ๋ฏธ๋ณ€๊ฒฝ)
    import { serve } from "https://deno.land/std/http/server.ts";
    import { createClient } from "https://esm.sh/@supabase/supabase-js@2";
    
    const supabase = createClient(
      Deno.env.get("SUPABASE_URL")!,
      Deno.env.get("SUPABASE_SERVICE_ROLE_KEY")!
    );
    
    serve(async (req) => {
      // === [v6 ์‹ ๊ทœ] ์ธ์ฆ ํ—ค๋” ๊ฒ€์ฆ ===
      const apiKey = req.headers.get("x-geocare-key");
      if (!apiKey) {
        return new Response(
          JSON.stringify({ error: "missing_key_header" }),
          {
            status: 400,
            headers: {
              "Content-Type": "application/json",
              "X-GEOcare-Failure-Reason": "missing_key_header"
            }
          }
        );
      }
    
      const origin = req.headers.get("origin") || req.headers.get("referer") || null;
      const url = new URL(req.url);
      const targetUrl = url.searchParams.get("url");
    
      // verify RPC ํ˜ธ์ถœ (1ํšŒ)
      const { data: verifyResult, error: verifyError } =
        await supabase.rpc("verify_geoex_inject_key", {
          p_api_key: apiKey,
          p_origin: origin,
          p_request_url: targetUrl
        });
    
      if (verifyError || !verifyResult?.[0]?.is_valid) {
        const reason = verifyResult?.[0]?.failure_reason || "verify_error";
        return new Response(
          JSON.stringify({ error: "Unauthorized", reason }),
          {
            status: 401,
            headers: {
              "Content-Type": "application/json",
              "X-GEOcare-Failure-Reason": reason
            }
          }
        );
      }
    
      const { client_code } = verifyResult[0];
    
      // === [v5 ๊ธฐ์กด] ์‘๋‹ต ๋ณธ๋ฌธ ๋กœ์ง ๊ทธ๋Œ€๋กœ ===
      // ... 3 SSOT ํ†ตํ•ฉ ๋กœ์ง (site_jsonld + brand_jsonld + eeat_analysis.generated_jsonld) ...
      // ... GPT fallback ๋ถ„๊ธฐ ...
      //
      // ์‘๋‹ต ํ—ค๋” ์ถ”๊ฐ€ (๊ด€์ธก):
      //   X-GEOcare-Client-Code: <client_code>
      //   X-GEOcare-Cache-Source: direct  โ† v1.2 ์‹ ๊ทœ (CF Workers Phase B ์ง„์ž… ํ›„ cf-hit/cf-miss ๊ฐ’)
    });

    โš ๏ธ PUT ์ž‘์—… ์‹œ GET โ†’ ๊ธฐ์กด EF v5 ์ฝ”๋“œ ์ „์ฒด ์ถ”์ถœ โ†’ ์œ„ ์ž…๊ตฌ ๋ถ€๋ถ„๋งŒ prepend โ†’ PUT ํŒจํ„ด (AP-07). ๊ธฐ์กด ์‘๋‹ต ๋ณธ๋ฌธ ๋กœ์ง(EF v5์˜ 3 SSOT ํ†ตํ•ฉ) ํ•œ ์ค„๋„ ๋ณ€๊ฒฝ ๊ธˆ์ง€.

    ---

    4. ํ˜ธํ™˜์„ฑ (BIZSPRING_DEV ๋„๊ทธํ‘ธ๋”ฉ)

    4.1 ์ž์‚ฌ ๋น„์ฆˆ์Šคํ”„๋ง ์‚ฌ์ดํŠธ v2.10 PHP ์ฝ”๋“œ

    KHub 3f8b6f09 STD-DEPLOY-SERVERSIDE-SCRIPT v1.1 ยง3 v2.10 ๋ผ์ด๋ธŒ ๋ช…์‹œ:

    4.2 PUT ์งํ›„ ํ˜ธํ™˜์„ฑ ๋งคํŠธ๋ฆญ์Šค

    ์‚ฌ์ดํŠธ์‚ฌ์šฉ ํ‚ค prefixA-4 ๋ฐœ๊ธ‰ ํ‚คI-1 PUT ํ›„
    bizspring.co.kr v2.10biz_ โœ… (v1.2 5/11 GEOCARE ํšŒ์‹  ํ™•์ •)BIZSPRING_DEV biz_qBzs...โœ… ์ฆ‰์‹œ ํ†ต๊ณผ (prefix ์ผ์น˜ ํ™•์ •)
    bmp.ai/adminadm_ADMIN_INTERNAL adm_mJpe...โœ… I-2-Alt ์‹œ์  ํ™œ์šฉ
    growthplatform.aigpf_GROWTHPLATFORM_DEV gpf_HHw2...โœ… ๋ฏธ์‚ฌ์šฉ (๋ณด์กด)
    luvhunter.net (PoC)lvh_TEST_LUVHUNTER (5/9 GEOCARE ๋ฐœ๊ธ‰)โœ… ์ฆ‰์‹œ ํ†ต๊ณผ
    ivanahelsinki.co.krivn_TEST_IVANA (5/9 GEOCARE ๋ฐœ๊ธ‰)โœ… ์ฆ‰์‹œ ํ†ต๊ณผ

    ๊ฒ€์ฆ ์ •๊ทœ์‹ (v1.2 ์ถ”๊ฐ€): ^[a-z]{3}_[A-Za-z0-9]{32}$

    4.3 5/11 luvhunter ์‹œ์—ฐ๊ณผ์˜ ๊ด€๊ณ„

    GEOCARE Snapshot v3.37 NOW ยงB "luvhunter ์ƒˆ ๋ชจ๋ธ ๋งˆ์ด๊ทธ โ€” STD-PARTNER-JSONLD-FILL ์ ์šฉ" ์ง„ํ–‰ ์ค‘.

    ๋ณธ๋ฐฉ I-1 PUT ์‹œ์  = GEOCARE luvhunter ๋งˆ์ด๊ทธ ํ›„ ๊ถŒ๊ณ  (์ถฉ๋Œ ์—†์œผ๋‚˜ ์‹œ์—ฐ ์•ˆ์ •์„ฑ ์šฐ์„ ).

    4.4 ์‚ฌ์ „ ์ ๊ฒ€ ์˜๋ฌด

    โœ… (v1.2 ์ถฉ์กฑ ๋ช…๊ธฐ) PUT ์ „ GEOCARE ๋ฐฉ์— v2.10 PHP ์ฝ”๋“œ ์‹ค ์‚ฌ์šฉ ํ‚ค prefix ํ™•์ธ = biz_ ํ™•์ • (Cross-Room MB 13์ฐจ ํšŒ์‹ ) โ€” G2 ์ง„์ž… ์กฐ๊ฑด #3 ALL PASS.

    ---

    5. ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค (B1~B6)

    #์‹œ๋‚˜๋ฆฌ์˜คํ˜ธ์ถœ๊ธฐ๋Œ€
    B1ํ—ค๋” ๋ˆ„๋ฝX-GEOcare-Key ์—†์ด GETHTTP 400 + missing_key_header
    B2์ž˜๋ชป๋œ ํ‚คX-GEOcare-Key: invalid_xxxHTTP 401 + key_not_found_or_inactive
    B3TEST_LUVHUNTER ์ •์ƒ+ Origin: https://www.luvhunter.netHTTP 200 + JSON-LD (v5 3 SSOT ํ†ตํ•ฉ ์‘๋‹ต)
    B4TEST_LUVHUNTER + Origin ๋ถˆ์ผ์น˜+ Origin: https://wrong.comHTTP 401 + origin_not_allowed
    B5TEST_IVANA ์ •์ƒivn_ ํ‚ค + Origin ์ผ์น˜HTTP 200 + JSON-LD
    B6BIZSPRING_DEV ๋„๊ทธํ‘ธ๋”ฉ+ Origin: https://www.bizspring.co.krHTTP 200 + JSON-LD

    ์ถ”๊ฐ€ ๊ฒ€์ฆ

    ---

    6. ๋กค๋ฐฑ ๊ณ„ํš

    EF ์ด์ „ ๋ฒ„์ „ PUT (Supabase Management API revision ์„ ํƒ).

    ์œ ์˜: A-4 ๋ฐœ๊ธ‰ ํ‚ค 3๊ฑด + 5/9 GEOCARE ํ…Œ์ŠคํŠธ ํ‚ค 2๊ฑด์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€.

    ---

    7. G2 ์ง„์ž… ์กฐ๊ฑด (Self-Check) โ€” v1.2 ๊ฐฑ์‹ 

    PUT ์ง์ „ ๋ณธ๋ฐฉ PO(์ฐฐ์Šค) ์ปจํŽŒ + GEOCARE ํšŒ์‹  ์˜๋ฌด. ๋‹ค์Œ 4๊ฑด ์ถฉ์กฑ ์‹œ G2 ํ†ต๊ณผ:

    G2 4/4 ALL PASS โ†’ I-1 PUT ์ง„์ž… ๊ฐ€๋Šฅ ๐ŸŸข

    ---

    8. PUT ํ›„ Phase (v1.2 ์ •์ •)

    PUT โ†’ B1~B6 ๋‹จ์œ„ ํ…Œ์ŠคํŠธ โ†’ ๊ฒฐ๊ณผ ๋ณด๊ณ  โ†’ ๋‹ค์Œ ์ง„์ž… (v1.2 ์ •์ • ๋งคํŠธ๋ฆญ์Šค ์ฐธ์กฐ):

    ํ•ญ๋ชฉv1.0/v1.1v1.2
    I-2bmp.ai/api/jsonld-serve ์ธ์ฆ ํ†ตํ•ฉ (Vercel)ํ๊ธฐ โ†’ ADR-002 ์ฐธ์กฐ
    I-2-Alt(์—†์Œ)์‹ ์„ค: Cloudflare Workers + KV ์บ์‹œ (๋ณ„ ํŠธ๋ž™) โ†’ ADR-002 ์ฐธ์กฐ
    I-3bmp.ai/admin PDP ํƒญ ํ™•์žฅ์ •์ •: geocare-admin-hub /admin/inject-keys โ†’ ADR-001 ์ฐธ์กฐ
    I-4Phase D DevLog v3.0 ๊ฐฑ์‹ ๊ทธ๋Œ€๋กœ ์œ ์ง€ (๋‹จ, ADR-001/002 ๋ฐ˜์˜ ๊ฐฑ์‹ )

    I-2-Alt ์ง„์ž… ์‹œ ๋ณธ G1 v1.2 ์ธ์ฆ ์ž…๊ตฌ ํŒจํ„ด + KV ์บ์‹œ ํŒจํ„ด ๋ณ„๋„ G1๋กœ ๋ช…์„ธ (KHub ์‹ ์„ค ์˜ˆ์ •).

    I-3 ์ง„์ž… ์‹œ Lovable geocare-admin-hub ๋ณ„ G1 ๋ช…์„ธ (KHub ์‹ ์„ค ์˜ˆ์ •).

    ---

    9. ์ง ์ž์‚ฐ

    ์ž์‚ฐKHub ID
    Track I Referenceea16e72e-e577-4ff7-a68c-8c796857f660
    ํŠธ๋ž™ ์ •๋ณธ v1.046fdc824
    ํ˜ธ์ถœ ํ‘œ์ค€ v1.1dc3ce334
    ์„œ๋ฒ„์‚ฌ์ด๋“œ ์Šคํฌ๋ฆฝํŠธ v1.1 (v2.10 PHP)3f8b6f09
    Phase D DevLog v2.0 (I-4 ๊ฐฑ์‹  ๋Œ€์ƒ)0c006e31
    GEOCARE Snapshot v3.37 (EF v5 ๋ผ์ด๋ธŒ anchor)061e5edb (5/11 03:00 EF v5 ์ ์žฌ ๊ฒ€์ฆ)
    T-FIX-3SSOT-PIPELINE PRD v1.4a8692b7f-ab67-467b-ae62-652c900ae874 (๊ทธ๋ฆฐํ•„๋“œ SSOT)
    STD-PARTNER-JSONLD-FILL v1.0fceee150 (GEOCARE ์ธก ์ƒˆ ๋ชจ๋ธ ๋งˆ์ด๊ทธ ํ‘œ์ค€)
    (v1.2 ์‹ ๊ทœ) Cross-Room MB36928e3f (5/11 14์ฐจ prepend ์˜ˆ์ • โ€” DNS ๋ช…๋ช… ์ฒด๊ณ„ + I-2-Alt ์ง„์ž… ํ†ต๋ณด)
    (v1.2 ์‹ ๊ทœ) geocare-admin-hub Lovablehttps://lovable.dev/projects/ab6a109b-76dc-4159-9c98-ae2708057451
    (v1.2 ์‹ ๊ทœ) geocare-admin-hub GitHubhttps://github.com/CharlesLee1991/geocare-admin-hub

    ---

    10. ๋ณ€๊ฒฝ ์ด๋ ฅ

    ์ผ์ž๋ฒ„์ „๋ณ€๊ฒฝ
    2026-05-10 KSTv1.0์‹ ์„ค โ€” G1 ์„ค๊ณ„ ๋‹จ๊ณ„. ๋ช…์„ธ์„œ ยง4-1 ์˜์‚ฌ์ฝ”๋“œ์˜ "3๋‹จ๊ณ„ fallback" ๋ถ€๋ถ„ ์ •์ • (ํ˜„์žฌ v1.1 ์‹ค์ธก ๋™์ž‘ ์œ„์— ์ž…๊ตฌ๋งŒ ์ถ”๊ฐ€). G2 ์ง„์ž… ์กฐ๊ฑด 4๊ฑด ์ปจํŽŒ ๋Œ€๊ธฐ.
    2026-05-11 KSTv1.1EF v3 โ†’ EF v5 ๋ช…์นญ ์ •์ • (5/11 GEOCARE ๋ฐฉ ๋ผ์ด๋ธŒ ํ›„ ๋ฐœ๊ฒฌ). G2-2 โœ… ์ถฉ์กฑ ๋งˆํ‚น (T-BIZSPRING-JSONLD-FILL ์™„๊ฒฐ). ์ง ์ž์‚ฐ 3๊ฑด ์ถ”๊ฐ€ (GEOCARE Snapshot v3.37 / PRD v1.4 / STD-PARTNER-JSONLD-FILL). ๋ณธ์งˆ ๋ณ€ํ™” 0 โ€” ์ž…๊ตฌ ์ถ”๊ฐ€ + ์‘๋‹ต ๋ณธ๋ฌธ ๋ฏธ๋ณ€๊ฒฝ ์›์น™ ๋™์ผ.
    2026-05-11 KST ํ›„์†v1.25/11 GEOCARE G2-1/G2-3 ํšŒ์‹  ์ˆ˜๋ น โ†’ G2 4/4 ALL PASS ๋ช…๊ธฐ. ADR-001 ์‹ ์„ค(I-3 ์œ„์น˜ ์ •์ •: bmp.ai/admin โ†’ geocare-admin-hub). ADR-002 ์‹ ์„ค(I-2 ์œ„์น˜ ์ •์ •: Vercel jsonld-serve โ†’ CF Workers ๋ณ„ ํŠธ๋ž™ + DNS ๋ช…๋ช… ์ฒด๊ณ„ cf-jsonld.geocare.ai / supabase.geocare.ai / schema.geocare.ai ํ๊ธฐ). X-GEOcare-Cache-Source ์‘๋‹ต ํ—ค๋” ๋ช…์„ธ. ๋ณธ์งˆ ๋ณ€ํ™” 0 โ€” ์ž…๊ตฌ ์ถ”๊ฐ€ + ์‘๋‹ต ๋ณธ๋ฌธ ๋ฏธ๋ณ€๊ฒฝ ์›์น™ ๋™์ผ.

    ---

    11. ADR-001 โ€” I-3 ์œ„์น˜ ์ •์ • (bmp.ai/admin โ†’ geocare-admin-hub)

    ์ปจํ…์ŠคํŠธ

    v1.0/v1.1 ์„ค๊ณ„ ์‹œ I-3 ์–ด๋“œ๋ฏผ UI๋ฅผ bmp.ai/admin PDP ํƒญ ํ™•์žฅ์œผ๋กœ ๊ฐ€์ •. Phase D DevLog(0c006e31) 7ํƒญ ์Šˆํผ์–ด๋“œ๋ฏผ ์ž์‚ฐ์ด 4/1๋ถ€ํ„ฐ ์‹ค์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ.

    ๊ฒฐ์ • (2026-05-11 KST ํ›„์†, ์ฐฐ์Šค)

    I-3 ์œ„์น˜๋ฅผ CharlesLee1991/geocare-admin-hub Lovable repo์˜ /admin/inject-keys ์‹ ๊ทœ ํƒญ์œผ๋กœ ์ •์ •.

    ๊ทผ๊ฑฐ

    ๊ฒฐ๊ณผ (์ž์‚ฐ)

    ์˜ํ–ฅ

    ---

    12. ADR-002 โ€” I-2 ์œ„์น˜ ์ •์ • (Vercel jsonld-serve โ†’ CF Workers + DNS ์ฒด๊ณ„)

    ์ปจํ…์ŠคํŠธ

    v1.0/v1.1 ์„ค๊ณ„ ์‹œ I-2 ์ธ์ฆ ํ†ตํ•ฉ์„ bmp.ai/api/jsonld-serve (Vercel)์— ์ ์šฉ ์˜ˆ์ •. Phase D ์ž์‚ฐ 3๋‹จ๊ณ„ fallback ์œ„์— ์ธ์ฆ ์ž…๊ตฌ ์ถ”๊ฐ€ ๋ชจ๋ธ.

    ๊ฒฐ์ • (2026-05-11 KST ํ›„์†, ์ฐฐ์Šค)

    1. I-2 (Vercel jsonld-serve)๋Š” ํ๊ธฐ (Phase D ์ž์‚ฐ deprecated ์ผ์ •๊ณผ ์ •ํ•ฉ)
    2. I-2-Alt ์‹ ์„ค: Cloudflare Workers ์ธ์ฆ ๊ฒŒ์ดํŠธ + KV ์บ์‹œ
    3. ๋ณ„ ํŠธ๋ž™ ๋ถ„๋ฆฌ โ€” ๋ณธ Phase 1.2 SLA(5/19) ๋ณด์กด, GEOCARE DNS ํ˜‘์˜ ํ›„ ์ง„์ž…
    4. DNS ๋ช…๋ช… ์ฒด๊ณ„ ์‹ ์„ค (์šด์˜์ž ์ธ์ง€ ๋ถ€๋‹ด 0)

    ๊ทผ๊ฑฐ

    ๊ฒฐ๊ณผ (DNS ๋ช…๋ช… ์ฒด๊ณ„ ์‹ ์„ค)

    ๋„๋ฉ”์ธ์ธํ”„๋ผ์—ญํ• ๋…ธ์ถœ
    cf-jsonld.geocare.aiCF WorkersJSON-LD ์†ก์ถœ ๊ฒŒ์ดํŠธ์›จ์ด (์ธ์ฆ + KV ์บ์‹œ)๐ŸŒ ์™ธ๋ถ€
    supabase.geocare.aiSupabase EF์›๋ณธ EF(geobh-jsonld) origin๐Ÿ”’ internal-only
    ~~schema.geocare.ai~~(deprecated)์ถ”์ƒ alias, ์šด์˜์ž ๊ธฐ์–ต ๋ถ€๋‹ดโŒ ํ๊ธฐ (30์ผ ํ˜ธํ™˜ alias โ†’ DNS ์ œ๊ฑฐ)

    ๋งˆ์ด๊ทธ ์‹œ๋‚˜๋ฆฌ์˜ค (Phase A~D, 1์ฃผ ๋‚ด)

    Phase๋‚ด์šฉ์‹œ์ 
    A์‹  ๋„๋ฉ”์ธ ์‹ ์„ค (supabase.geocare.ai + cf-jsonld.geocare.ai). schema.geocare.ai ๊ทธ๋Œ€๋กœ ์œ ์ง€ (ํ˜ธํ™˜์„ฑ)5/12~5/13
    B์™ธ๋ถ€ ์‚ฌ์ดํŠธ ์ ์ง„ ๋งˆ์ด๊ทธ (luvhunter, ivanahelsinki, bizspring v2.10 PHP โ€” ํ™˜๊ฒฝ๋ณ€์ˆ˜ 1๊ฐœ ๊ต์ฒด)5/13~5/19
    Cschema.geocare.ai ํ๊ธฐ (30์ผ ํ˜ธํ™˜ alias โ†’ DNS ์ œ๊ฑฐ)5/20~6/20
    D์ƒˆ ๊ฐ€์ž… ์‚ฌ์ดํŠธ๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ cf-jsonld.geocare.ai๋งŒ ์‚ฌ์šฉ (ํ‘œ์ค€ ๋ฌธ์„œ ๊ฐฑ์‹ )6/20~

    ์˜ํ–ฅ

    Cross-Room MB 14์ฐจ ๋ฐœ์‹  ํ•ญ๋ชฉ

    ๋‹ค๋ฅธ ํ‘œํ˜„: Markdown ยท JSON ยท ์ตœ์ข… ๊ฐฑ์‹  2026-08-24