๐ T-AUTO-INJECT-UNIFIED-v1 โ JSON-LD ์๋ ์ก์ถ ํตํฉ ํธ๋ (๊ณจ๊ฒฉ, G0 ๋๊ธฐ)
ํต์ฌ ์์ฝ
# ๐ T-AUTO-INJECT-UNIFIED-v1 โ JSON-LD ์๋ ์ก์ถ ํตํฉ ํธ๋
> ์์ฑ: 2026-05-08 KST | ์ํ: ๐ G0 ๋๊ธฐ (๋ฐ๋ โ)
> ์ ๋ฐฉ ๊ณต๋ ํธ๋ (GEOCARE + PREMIUM_GEO)
> ์ง ํ์ค: STD-JSONLD-UNIFIED v0.1 (๋ณธ ๋ฌธ์ ยง6์ ์ธ๋ผ์ธ) / ํธ์ถ ํ์ค: schema.geocare.ai ํธ์ถ v1.0 (๋ณ๋ KHub ๋ฑ์ฌ)
> ์ ๋ณธ ๊ทผ๊ฑฐ: BMP ์ ์ฑ
v1.0 (866eb3de) + Phase D DevLog (0c006e31) + ๋ณธ ์ธ์
๋ถ์
---
0. ํ ๋ฌธ์ฅ ์ ์
3๊ณ์ด(sitegeo/brandgeo/ocr) JSON-LD๋ฅผ ๋จ์ผ SSOT(bmp_jsonld_delivery)๋ก ํตํฉ + ์ธ์ฆยท์๋ํยท๊ด์ธก์ ์ ๋ฐฉ ๊ณต๋ ํธ๋์ผ๋ก 6์ฃผ+2์ฃผ ์์ ํ ์์ฑ.
---
1. โ ๏ธ G0 ๋ฐ๋ ์กฐ๊ฑด (5๊ฑด ๋ชจ๋ ์ถฉ์กฑ ์ ์ง์ )
| # | ์กฐ๊ฑด | ํ ์ํ | ์ฑ ์ |
|---|---|---|---|
| 1 | T-RENEW-GEOCARE-BMP v1.1 ๋ณด๊ฐ๊ถ๊ณ ํ์ | ๐ ๋๊ธฐ | ๊ตฌ์ํ ๋ํ (Asana 1214608078467144 ์ฝ๋ฉํธ ํ์ ) |
| 2 | ์ PO ๋ฏธํ (์ฐฐ์ค + ๊ตฌ์ํ) | ๋ฏธ์ | 1๋ฒ ํ์ ํ ์ผ์ ํฉ์ |
| 3 | ๋ ๋ฐฉ ์ฑ ์ ๋ถ๋ด ํฉ์ (GEOcare ์์ญ vs BMP ์์ญ ๋ผ์ธ) | ๋ฏธ์ | ๋ฏธํ ๊ฒฐ๊ณผ |
| 4 | Phase D DevLog v3.0 ๊ฐฑ์ (PREMIUM_GEO ๋จ๋ ์์ ) | ๋ฏธ์ | 3๋ฒ ํ PREMIUM_GEO ์ธก ์งํ |
| 5 | STD-JSONLD-UNIFIED ์ ๋ณธ ํฉ์ (v1.0) | v0.1 ๋ณธ ๋ฌธ์ ยง | 1~4 ํ ์ ๋ฐฉ ํฉ์ |
โ 5๊ฑด ์ค 1๊ฑด์ด๋ผ๋ ๋ฏธ์ถฉ์กฑ ์ ๋ณธ ํธ๋ ๋ฐ๋ โ.
โ G0 ๋ฏธ์ถฉ์กฑ ์ํ์์ ๋ถ๋ถ ์์ (์: gp_geoex_inject_keys ๋จ๋ DDL) ๊ธ์ง โ 6์ฃผ ํ ํฉ์ ๊ฒฐ๊ณผ๋ก ํ๊ธฐ ๊ฐ๋ฅ์ฑ โ.
---
2. ๋ฐฐ๊ฒฝ โ ๋ณธ ํธ๋ ์ ์ค ์ฌ์
2.1 ๋ฐ๊ฒฌ (5/8 ๋ณธ ์ธ์ )
- 3๊ณ์ด JSON-LD ์์ฑ/์ ์ฅ ์์ญ์ด ์์ ๋ถ๋ฆฌ ์ฌ์ผ๋ก:
- sitegeo (gp_geoex_jsonld_log): 701๊ฑด, Schema Builder UI, ์ฌ์ฉ์ ์ง์ ์
๋ ฅ
- brandgeo (bmp_jsonld_delivery): 16๊ฑด, Phase D ์ด๋๋ฏผ ์๋ ํธ๋ฆฌ๊ฑฐ, EEAT์ ๋ฌด๊ด
- ocr (gp_geoex_ocr_results): 483๊ฑด, schema ๋ณํ ๋ฏธ์ (raw text + jsonb๋ง)
bmp_jsonld_delivery๊ฐ ์๋ ์ก์ถ SSOT (geobh-jsonldEF v2 ์ฐ์ ์กฐํ)- ๋จ, ์๋ ์ค์ผ์ค ๋ฏธ์๋ (last_batch_at ๋ชจ๋ NULL)
- OCR โ schema ๋ณํ ํ์ดํ๋ผ์ธ ๋ถ์ฌ
- luvhunter PoC ์ ์ ์ฉํ ๋ฐ์ดํฐ 0๊ฑด
2.2 ๋ณธ ํธ๋์ ํ์ฐ์ฑ
T-RENEW-GEOCARE-BMP v1.1 ๋ณด๊ฐ๊ถ๊ณ ๊ฐ GEOcare โ BMP ๊ธฐ๋ฅ ์ฌ๋ฐฐ์น๋ฅผ ๋ค๋ฃจ๋๋ฐ, JSON-LD ์์ญ์ด ์ ํํ ๊ทธ ์ฌ์ด์ ๋ชจํธ ์ง๋. ๋ณธ ํธ๋์ T-RENEW์ ๋ฐ์ดํฐ ํ๋ฆ ์ธก๋ฉด ์ ํฉ ์์ .
2.3 5/11 luvhunter PoC์์ ๋ถ๋ฆฌ
- 5/11 ์์ฐ ์์ฐ = Brand Hub 3์ค ์์ ๋ง (์ด๋ฏธ ๋ผ์ด๋ธ, ๋ณ๊ฒฝ โ)
- 5/11 ์์ฐ ๋ฉ์์ง ์ถ๊ฐ: "์๋ ์ก์ถ ์ ์ ํธ๋ 6์ฃผ+2์ฃผ ์งํ โ ๊ณ์ฝ ์ฌ์ธ ์ luvhunter ์ฐ์ ์ ์ฉ ์ฌ์ดํธ 1ํธ ๋ฑ๋ก"
- ๋ณธ ํธ๋ ๋ฐ๋์ 5/11 ํ + G0 ์ถฉ์กฑ ์์
---
3. 6 Phase ๊ตฌ์กฐ (์ด 6์ฃผ + ์์ ํ 2์ฃผ)
Phase 1 โ ์ธ์ฆ ์ธํ๋ผ + Phase D ์ธ์ฆ ํตํฉ (1.5์ฃผ)
GEOcare ์์ญ:
gp_geoex_inject_keys์ ๊ท ํ ์ด๋ธ (์ธ์ฆ SSOT)verify_geoex_inject_keyRPC (3์ค ๊ฒ์ฆ: ํคยท๋ง๋ฃยทOrigin)- ๋ฉ๋ชจ๋ฆฌ ์บ์ ์ ์ฑ (60์ด TTL, EF ์ธก)
BMP ์์ญ (PREMIUM_GEO ์์ ):
geobh-jsonldEF v3 ํจ์น โ ์ธ์ฆ ํค๋ ๊ฒ์ฆ + 3๋จ๊ณ fallback ์ ์ง- jsonld-serve
/api/jsonld-serve์ธ์ฆ ํตํฉ - ์ด๋๋ฏผ UI ํ ํฐ ๋ฐ๊ธ/๊ด๋ฆฌ ํ๋ฉด (
bmp.ai/adminPDP ํญ ํ์ฅ)
๊ฒ์ฆ: ํ ํฐ ๊ฒ์ฆ ๋ถํ + Origin ํ์ดํธ๋ฆฌ์คํธ + ๋ง๋ฃ/์ฌ๋ฐ๊ธ/ํ๊ธฐ ์๋๋ฆฌ์ค
Phase 2 โ Phase D ์๋ํ ๋ถํ (1์ฃผ)
PREMIUM_GEO ์์ :
- PDP-SCHED (
s5JaX2zYy2RU2fkt) ์๋ ์ค์ผ์ค ๋ฏธ์๋ ์์ธ ์ถ์ + ์์ - Webhook/Schedule ํธ๋ฆฌ๊ฑฐ ํจํด ์ฌ์ ๋ฆฝ (
bmp_jsonld_sites.is_pdp_enabled) - 24h/12h ์ค์ผ์ค ์ค ์๋ ๊ฒ์ฆ
- ๊ฐฑ์ ์ ์ฑ ํ์ค (์ฌ์ฉ์ ๋ณ๊ฒฝ ํธ๋ฆฌ๊ฑฐ vs ์ ๊ธฐ)
- last_batch_countยทerrors Telegram ์๋ฆผ
Phase 3 โ OCR โ schema ๋ณํ ํ์ดํ๋ผ์ธ (2์ฃผ) โญ ํต์ฌ ์ฐจ๋ณํ
GEOcare ์์ญ:
- HITL ๊ฒ์ ํ
gp_geoex_ocr_reviewํต๊ณผ row๋ง ๋ณํ ๋์ - ์ ๊ท WF:
[Phase D-OCR] OCR-to-Schema Pipeline์ ์ค
- lifestyle/model_wearing/product_only โ Product image[] ๋ณด๊ฐ
- detail_text/spec_table โ Product description + additionalProperty
- care_guide/care_instruction โ HowTo ์ ๊ท
- infographic โ FAQPage ์ ๊ท
- size_chart โ PropertyValue
- LLM ๋ณํ ๋น์ฉ ์ถ์ (OCR raw โ Gemini/GPT)
BMP ์์ญ:
bmp_jsonld_delivery.source = 'ocr'row ์ถ๊ฐ (์ ์ฑ : ๋ณ๋ row vs array merge โ Phase 3 ์ง์ ์ ๊ฒฐ์ )- ์ฐ์ ์์ merge ์ ์ฑ (extracted > generated > ocr ๋๋ ํตํฉ)
Phase 4 โ sitegeo ํตํฉ + ๋ฐ์ดํฐ ์ ํฉ (1์ฃผ)
GEOcare ์์ญ:
gp_geoex_jsonld_logโbmp_jsonld_delivery๋ง์ด๊ทธ ์ ์ฑ ๊ฒฐ์
- ์ต์ A: ๋ชจ๋ ๋ง์ด๊ทธ ํ deprecated (๋จ์ผ SSOT)
- ์ต์ B: ์ฌ์ฉ์ ์ง์ ์ ๋ ฅ ์ด๋ ฅ์ ์๊ตฌ ๋ณด์กด, ์ด์ ์ก์ถ๋ง bmp ํ์ฉ (๊ถ์ฅ)
gp_geoex_jsonld_log.site_domain์ ๊ทํ (https://...์ ๊ฑฐ)- WebSite/Organization/WebPage/BreadcrumbList โ bmp ์ ์ฌ ์
source='sitegeo'
๊ฒ์ฆ: ์ด๋ฐ๋ ์ฌ๋ก (sitegeo 8 + brandgeo 12 + ocr 216 โ ํตํฉ ๊ฒฐ๊ณผ ์ธก์ )
Phase 5 โ ๊ด์ธกยท์ด์ยท์๋ฆผ (1์ฃผ)
BMP ์์ญ (์ด๋๋ฏผ UI ํ์ฅ):
- ํธ์ถ๋ dashboard ์ ๊ท ํญ
- Rate Limit ์ค ์ ์ฉ (ํ์ฌ ์ปฌ๋ผ๋ง ์กด์ฌ, ์๋ โ)
- ์ด์ ์๋ฆผ ํ์ค (delivery ๊ฐฑ์ ์คํจ / ์ธ์ฆ ์คํจ ํญ์ฆ ๋ฑ)
- A/B ํ
์คํธ ์ธํ๋ผ ํ์ฉ (
bmp_jsonld_ab_tests) - ๋น์ฉ ์ถ์ (Vision GPT-4o ยท GPT ์์ฑ fallback ยท OCR ๋ณํ)
Phase 6 โ ๊ณต์ ํ์คํ + ์ธ๋ถ ํต๋ณด (0.5์ฃผ)
์ ๋ฐฉ ๊ณต๋:
- STD-JSONLD-UNIFIED v1.0 ์ ๋ณธ KHub ๋ฑ์ฌ (์ ๋ฐฉ ๋์)
- 11์ค PHP ์ฝ๋ v1.0 ์ ์ ๋ฐํ (๋ผ์ด๋ธ๋ฌ๋ฆฌํ ๊ฒํ )
- ์ด์ ๋งค๋ด์ผ ์์ฑ (์ด๋๋ฏผ/ํํธ๋์ฉ)
- ํ์ต #17~#22 KHub ์ผ๊ด ๋ฑ์ฌ
- ์ธ๋ถ ํต๋ณด (์ฅ๊ฒฝํ ์๋ฌด โ ๋ฌ๋ธํํฐ ๋ฑ ์ ์ฉ ์ฌ์ดํธ)
์์ ํ (2์ฃผ)
- ๋ด๋ถ dogfooding (bizspring.co.kr ยท growthplatform.ai ์ง์ ์ ์ฉ)
- ์ฒซ ์ธ๋ถ ์ฌ์ดํธ 1๊ฑด ์ ์ฉ (luvhunter ๋๋ medicube)
- ๋ถํยท์ฅ์ ยท๋กค๋ฐฑ ๋๋ฆด
- ๐ VERIFIED โ ๋ณธ ํธ๋ ์ข ๊ฒฐ
---
4. ์์ญ ๊ฒฉ๋ฒฝ ๋งคํธ๋ฆญ์ค
| ์์ | ์์ญ | ์ฑ ์ |
|---|---|---|
gp_geoex_inject_keys ํ
์ด๋ธ/RPC | GEOcare ๋จ๋ | ๋ณธ ๋ฐฉ |
| OCR โ schema ๋ณํ ํ์ดํ๋ผ์ธ | GEOcare ๋จ๋ | ๋ณธ ๋ฐฉ |
gp_geoex_jsonld_log ์ ๊ทํ/๋ง์ด๊ทธ | GEOcare ๋จ๋ | ๋ณธ ๋ฐฉ |
bmp_jsonld_delivery source/install_method ํ์ค | BMP ๋จ๋ | PREMIUM_GEO ๋ฐฉ |
geobh-jsonld EF v3 ํจ์น | BMP ๋จ๋ | PREMIUM_GEO ๋ฐฉ |
| jsonld-serve EF ํจ์น | BMP ๋จ๋ | PREMIUM_GEO ๋ฐฉ |
| PDP-SCHED ์๋ ์ค์ผ์ค ๋ถํ | BMP ๋จ๋ | PREMIUM_GEO ๋ฐฉ |
| ์ด๋๋ฏผ UI (PDP ํญ ํ์ฅ) | BMP ๋จ๋ | PREMIUM_GEO ๋ฐฉ |
| OCR ๋ณํ ๊ฒฐ๊ณผ โ bmp ์ ์ฌ ์ ์ฑ | ์ ๋ฐฉ ํฉ์ | ๊ณต๋ |
| Phase 6 ์ ๋ณธ ํ์ค ๋ฑ์ฌ | ์ ๋ฐฉ ๊ณต๋ | ๊ณต๋ |
---
5. ๋ณธ ์ธ์ (2026-05-08) ์ฐ์ถ๋ฌผ โ ๋ณธ ํธ๋ ์๋ฃ๋ก ๋ณด์กด
| ์์ฐ | ์์น | ์ฉ๋ |
|---|---|---|
| schema.geocare.ai DNS ๋ฑ๋ก โ | ํ์ด์ฆ + Supabase ENABLED | ๋ณธ ํธ๋ ํธ์ถ ๋๋ฉ์ธ (์ฆ์ ํ์ฉ) |
| schema.geocare.ai ํธ์ถ ํ์ค v1.0 | ๋ณ๋ KHub ๋ฌธ์ | ๋ณธ ํธ๋ Phase 1 ์ง์ ํ์ฉ |
| 3๊ณ์ด schema ๋ถ์ (701/16/483๊ฑด) | ๋ณธ ๋ฌธ์ ยง2.1 | Phase 4 ํตํฉ ๊ทผ๊ฑฐ |
| 4/1 ์ด๋ฐ๋ 12๊ฑด timestamp ์ํ์ค | ๋ณธ ๋ฌธ์ ยง2.1 | Phase 2 ์๋ ์ค์ผ์ค ๋ถํ ๊ทผ๊ฑฐ |
gp_geoex_inject_keys v0.1 ์คํค๋ง | ๋ณธ ๋ฌธ์ ยง6.1 | Phase 1 GEOcare ์์ ์ง์ ์ |
verify_geoex_inject_key RPC v0.1 | ๋ณธ ๋ฌธ์ ยง6.2 | Phase 1 GEOcare ์์ ์ง์ ์ |
| 11์ค PHP ์ฝ๋ v1.3 (luvhunter) | ๋ณธ ๋ฌธ์ ยง6.3 | Phase 6 ์ ์ ๋ฐํ ์ง์ ๊ฒํ ํ๋ณด |
โ DDL/INSERT ๋ฏธ์คํ โ G0 ์ถฉ์กฑ ํ Phase 1 ์ ์ ์ง์ ์์ ์ ์ ๋ฐฉ ํฉ์ ํ ์ ์ฉ.
---
6. ๋ณธ ์ธ์ G1 ์ค๊ณ ์์ฐ (Phase 1 ์ง์ ์ ๊ฒํ ํ๋ณด)
6.1 gp_geoex_inject_keys v0.1 (Phase 1 ๊ฒํ )
CREATE TABLE gp_geoex_inject_keys (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
api_key text UNIQUE NOT NULL,
client_code text UNIQUE NOT NULL,
site_domain text NOT NULL,
display_name text,
permissions text[] DEFAULT ARRAY['inject']::text[],
allowed_origins text[],
rate_limit_per_hour integer DEFAULT 10000,
is_active boolean DEFAULT true,
expires_at timestamptz,
last_used_at timestamptz,
metadata jsonb,
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now(),
CONSTRAINT chk_api_key_prefix CHECK (api_key ~ '^[a-z]{2,5}_[a-zA-Z0-9]{24,64}$'),
CONSTRAINT chk_client_code_format CHECK (client_code ~ '^[A-Z][A-Z0-9_]{2,30}$'),
CONSTRAINT chk_site_domain_format CHECK (site_domain ~ '^[a-z0-9.-]+\.[a-z]{2,}$')
);
CREATE UNIQUE INDEX idx_inject_keys_api_key_active ON gp_geoex_inject_keys (api_key) WHERE is_active = true;
CREATE INDEX idx_inject_keys_origins ON gp_geoex_inject_keys USING GIN (allowed_origins);
CREATE INDEX idx_inject_keys_expires ON gp_geoex_inject_keys (expires_at) WHERE is_active = true AND expires_at IS NOT NULL;
CREATE INDEX idx_inject_keys_client_code ON gp_geoex_inject_keys (client_code);
ALTER TABLE gp_geoex_inject_keys ENABLE ROW LEVEL SECURITY;
CREATE POLICY no_direct_access ON gp_geoex_inject_keys FOR ALL USING (false) WITH CHECK (false);
โ ํจํด ๊ทผ๊ฑฐ: gp_mcp_api_keys (GEOcare MCP ์ธ์ฆ) + BIZDATA de_unified_client.api_key ํฉ์ฑ.
6.2 verify_geoex_inject_key RPC v0.1 (Phase 1 ๊ฒํ )
CREATE OR REPLACE FUNCTION verify_geoex_inject_key(
p_api_key text,
p_origin text DEFAULT NULL,
p_request_url text DEFAULT NULL
)
RETURNS TABLE(
is_valid boolean,
client_code text,
site_domain text,
permissions text[],
metadata jsonb,
failure_reason text
)
LANGUAGE plpgsql
SECURITY DEFINER
SET search_path = public
AS $$
DECLARE
v_row gp_geoex_inject_keys%ROWTYPE;
BEGIN
SELECT * INTO v_row FROM gp_geoex_inject_keys
WHERE api_key = p_api_key AND is_active = true LIMIT 1;
IF NOT FOUND THEN
RETURN QUERY SELECT false, NULL::text, NULL::text, NULL::text[], NULL::jsonb, 'key_not_found_or_inactive'::text;
RETURN;
END IF;
IF v_row.expires_at IS NOT NULL AND v_row.expires_at < now() THEN
RETURN QUERY SELECT false, v_row.client_code, v_row.site_domain, NULL::text[], NULL::jsonb, 'key_expired'::text;
RETURN;
END IF;
IF v_row.allowed_origins IS NOT NULL AND array_length(v_row.allowed_origins, 1) > 0 AND p_origin IS NOT NULL THEN
IF NOT (p_origin = ANY(v_row.allowed_origins)) THEN
RETURN QUERY SELECT false, v_row.client_code, v_row.site_domain, NULL::text[], NULL::jsonb, 'origin_not_allowed'::text;
RETURN;
END IF;
END IF;
UPDATE gp_geoex_inject_keys SET last_used_at = now() WHERE id = v_row.id;
RETURN QUERY SELECT true, v_row.client_code, v_row.site_domain, v_row.permissions, v_row.metadata, NULL::text;
END;
$$;
GRANT EXECUTE ON FUNCTION verify_geoex_inject_key(text, text, text) TO anon, authenticated, service_role;
6.3 11์ค PHP ์ฝ๋ v1.3 (Phase 6 ์ ์ ๋ฐํ ์ง์ ๊ฒํ )
<!-- GEOcare JSON-LD Auto-Inject (๋น์ฆ์คํ๋ง) -->
<?php
$_g_url = 'https://www.luvhunter.net' . $_SERVER['REQUEST_URI'];
$_g_cache = sys_get_temp_dir() . '/gc_' . md5($_g_url);
if (!file_exists($_g_cache) || time() - filemtime($_g_cache) > 3600) {
$_g_ctx = stream_context_create(['http' => ['timeout' => 2, 'header' => 'X-GEOcare-Key: lvh_xxxxxxxxxxxxxxxxxxxxxxxx']]);
$_g_res = @file_get_contents('https://schema.geocare.ai/functions/v1/geobh-jsonld?url=' . urlencode($_g_url), false, $_g_ctx);
if ($_g_res) @file_put_contents($_g_cache, $_g_res);
}
if (file_exists($_g_cache)) echo '<script type="application/ld+json">' . file_get_contents($_g_cache) . '</script>';
?>
โ ์ ์ฉ ์์น: _inc_index_header.tpl 188~189ํ ์ฌ์ด (</head> ์ง์ ).
---
7. ํ์ ํธ๋ ์๋ (๋ณธ ํธ๋์์ ๋ถ๊ธฐ ๊ฐ๋ฅ์ฑ)
| ํ์ ํธ๋ | ์์ | ์ฑ ์ |
|---|---|---|
T-PIPELINE-OCR-TO-SCHEMA-FULLAUTO | Phase 3 ์ข ๊ฒฐ ํ ํ์๋ํ | GEOcare |
T-MIGRATION-SITEGEO-LEGACY | Phase 4 ํ์ (gp_geoex_jsonld_log ๊ฑฐ์ทจ ๊ฒฐ์ ) | GEOcare |
T-OPS-AUTO-INJECT-MULTISITE | ์์ ํ ํ ๋ค์ ์ฌ์ดํธ ์ ์ฉ | ์ ๋ฐฉ ๊ณต๋ |
T-MARKETING-AUTO-INJECT-LAUNCH | ์์ ํ ํ ์์ ๋ฉ์์ง | SALES + GEOCARE |
---
8. ํ์ต ๋์ (Phase 6 ์ผ๊ด ๋ฑ์ฌ ํ๋ณด)
| # | ๊ฐ์นญ |
|---|---|
| 17 | ์ธ๋ถ EF ํ์ฉ ์ฝ๋ ์ ์ ์ ์ธ์ฆ ๋ชจ๋ธ ๋จ์ ๊ธ์ง |
| 18 | ๊ฐ์นญ ์์ฐ๋ช ์์ฐ ๋ ธ์ถ ๊ธ์ง |
| 19 | ์ธ๋ฒคํ ๋ฆฌ ๋ฏธํ์ธ ์ํ๋ก ์ ๊ท ํ ์ด๋ธ ์ค๊ณ ๊ธ์ง |
| 20 | ๋์ผ ๋ช ์นญ ํ ์ด๋ธ ๋ฐ๊ฒฌ ์ ์ฉ๋ ๊ฒ์ฆ ํ์ |
| 21 | ์ ๊ท ์ธํ๋ผ ์ค๊ณ ์ ์ธ์ฆยท๋ฐ์ดํฐยท์คํ 3์ถ ๋์ ํ์ธ |
| 22 | ์ธ๋ถ ๋ณ์(์์ ์ผ์ ) ์๋ฐ ์ PO์๊ฒ ๋ช ์์ ํ๊ธฐ ์์ฒญ |
โ ๋ณธ ํธ๋ Phase 6 ์ข ๊ฒฐ ์ KHub COMMON ์ผ๊ด ๋ฑ์ฌ.
---
9. ์ ์ธ์ ์ง์ ๋ช ๋ น
ํธ๋ฆฌ๊ฑฐ ๋ฐํ
- "T-AUTO-INJECT-UNIFIED ์ด์ด์" โ ๋ณธ ๋ฌธ์ ๋ก๋ + G0 5๊ฑด ์ํ ์ ๊ฒ
- "T-RENEW v1.1 ํ์ ์์ด" โ G0 #1 ์ถฉ์กฑ โ #2 ์ผ์ ํฉ์ ์ง์
- "์ PO ๋ฏธํ ๊ฒฐ๊ณผ" โ G0 #2~#3 ์ง์
- "Phase 1 ์ง์ " โ G0 ์ถฉ์กฑ ์์ + ์ ๋ฐฉ ํฉ์ ์ ๋ฐ๋
- "๋ณธ ํธ๋ ์ข ๊ฒฐ" โ ์ฌ์ ํ๊ธฐ ๋๋ ๋ค๋ฅธ ํธ๋์ผ๋ก ํก์ ์
๋ณธ ํธ๋ ๋ฐ๋ ์ ์ ์ธ์ ์์ ์ฐ์ ์์ (๋โ๋ฎ)
- ์๋ ํจ์น ์ฌํ ๊ฒํ 6๊ฑด (5/7 17:00 SLA D-1)
- BUG-002 G3 ์ฌ๊ฒ์ฆ (PREMIUM_GEO ์ฒ๋ฆฌ ํ, SLA 5/9 EOD)
- ๋์ด์คํ์ด ํ์ ๋ฉ์ผ (P0-3, AP-25)
- T-EEAT-LLM-FAIL ํธ๋ ์ ์ค (2,959๊ฑด score=0)
- 5/11 ๋ฏธํ
์ค๋น (KHub
d00aceea+ bmp.ai 5์ข + ์ด๋๋ฏผ ์์ฐ) - T-RENEW v1.1 ํ์ ๋ชจ๋ํฐ๋ง (๊ตฌ์ํ ๋ํ)
- T-SALES-MPRD-UPSELL Phase 1 ๋ฉ์์ง ๋ณธ๋ฌธ ์ปจํ
---
10. ๋ณ๊ฒฝ ์ด๋ ฅ
| ์ผ์ | ๋ฒ์ | ๋ณ๊ฒฝ |
|---|---|---|
| 2026-05-08 | v1.0 (๊ณจ๊ฒฉ) | ์ดํ โ G0 ๋๊ธฐ ์ํ๋ก ๋ฑ์ฌ. Phase 1~6 + ์์ ํ ๊ณจ๊ฒฉ. ๋ณธ ์ธ์ ์ฐ์ถ๋ฌผ ๋ณด์กด. T-RENEW v1.1 ํ์ ํ ๋ฐ๋. |