BizSpring.ai

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

๐Ÿ“‹ [GP ์ƒ๋‹ด์‚ฌ P1] MA Dashboard ๊ฒฐํ•ฉ ์„ค๊ณ„์„œ v1.0

# ๐Ÿ“‹ [GP ์ƒ๋‹ด์‚ฌ P1] MA Dashboard ๊ฒฐํ•ฉ ์„ค๊ณ„์„œ v1.0 > ์ž‘์„ฑ: 2026-04-25 | ๋‹ด๋‹น: ์œ ์Šน์šฑ(๊ตฌํ˜„), ์ด์ฒ ์Šน(์„ค๊ณ„) > ๋ถ€๋ชจ ๋ฌธ์„œ: `1dd8eaa3` (BizPO ร— BizData MCP ์—ฐ๋™ ๋ฐฉ์•ˆ v1.0) > ๊ด€๋ จ: `b62bb46b` (PKG-MA

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

    # ๐Ÿ“‹ [GP ์ƒ๋‹ด์‚ฌ P1] MA Dashboard ๊ฒฐํ•ฉ ์„ค๊ณ„์„œ v1.0

    > ์ž‘์„ฑ: 2026-04-25 | ๋‹ด๋‹น: ์œ ์Šน์šฑ(๊ตฌํ˜„), ์ด์ฒ ์Šน(์„ค๊ณ„)

    > ๋ถ€๋ชจ ๋ฌธ์„œ: 1dd8eaa3 (BizPO ร— BizData MCP ์—ฐ๋™ ๋ฐฉ์•ˆ v1.0)

    > ๊ด€๋ จ: b62bb46b (PKG-MA), 1d5fa484 (CXM ์บ ํŽ˜์ธ ์—”์ง„ ๋ ˆํผ๋Ÿฐ์Šค)

    > Asana: https://app.asana.com/1/259440093468323/project/1200220022474171/task/1214054113222918

    ---

    1. ๊ฐœ์š” โ€” P1์˜ ์œ„์น˜

    GP ์ƒ๋‹ด์‚ฌ๋ฅผ ์กฐํšŒ/์‘๋‹ต์—์„œ ์—…๋ฌด์ž๋™ํ™” ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐœ์ „์‹œํ‚ค๋Š” 3๋‹จ๊ณ„ ๋กœ๋“œ๋งต ์ค‘ ์ฒซ ๋‹จ๊ณ„.

    Phase๋ฒ”์œ„์œ„ํ—˜์ธํ”„๋ผ ๋ณ€๊ฒฝ
    P1 (๋ณธ ๋ฌธ์„œ, 2์ฃผ)Read ํ™•์žฅ: MA Dashboard + CRM ์กฐํšŒ๐ŸŸข ๋‚ฎ์Œ์—†์Œ (Resolver ํ™•์žฅ๋งŒ)
    P2 (3์ฃผ, ๋ณ„๋„ ์„ค๊ณ„)Action MCP ์‹ ์„ค + ๋ฆฌํฌํŠธ ์ž๋™ ๋ฐœ์†ก๐ŸŸก ์ค‘๊ฐ„Action MCP ์‹ ๊ทœ
    P3 (4์ฃผ+, ๋ณ„๋„ G0)์บ ํŽ˜์ธ ํŠธ๋ฆฌ๊ฑฐยท์„ธ๊ทธ๋จผํŠธ ์ƒ์„ฑ๐Ÿ”ด ๋†’์ŒGP MA Action API ์‹ ๊ทœ

    P1 ๋ฒ”์œ„ ํ•œ์ • (G1 ์ปจํŽŒ):

    ---

    2. ์ถ”๊ฐ€ Intent ๋ถ„๊ธฐ (3๊ฐœ)

    ๊ธฐ์กด 5๊ฐœ โ†’ 8๊ฐœ๋กœ ํ™•์žฅ. v1.0์˜ ๋ถ„๊ธฐ ํ…Œ์ด๋ธ” ํŒจํ„ด ๊ทธ๋Œ€๋กœ.

    intent_typeํ˜ธ์ถœ MCPToolํ•„์š” ์Šฌ๋กฏ
    (๊ธฐ์กด) SOLUTION_INQUIRYBizPOsearch_solutions-
    (๊ธฐ์กด) SOLUTION_COMPAREBizPOcompare_solutionscompareTargets[]
    (๊ธฐ์กด) DATA_INQUIRYBizDatadata_get_unified_kpiclientCode, dateFrom, dateTo
    (๊ธฐ์กด) GEO_INQUIRYBizDatadata_get_geo_somsiteDomain
    ๐Ÿ†• MA_DASHBOARDBizDatadata_get_ma_dashboard- (์ „์ฒด)
    ๐Ÿ†• DASHBOARD_GENERALBizDatadata_get_dashboardclientCode, dateFrom, dateTo
    ๐Ÿ†• CRM_INQUIRYBizDatadata_get_crm_sales / data_get_crm_productsdays
    (๊ธฐ์กด) GENERALRAG--

    ---

    3. ์ถ”๊ฐ€ ์Šฌ๋กฏ (2๊ฐœ)

    {
      "days":          "์ตœ๊ทผ N์ผ (default 30, CRM ์กฐํšŒ์šฉ)",
      "dashboardType": "ma | general | crm_sales | crm_products"
    }

    ๊ธฐ์กด v1.0 ์Šฌ๋กฏ(clientCode, siteDomain, compareTargets)์€ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ.

    ---

    4. ์ˆ˜์ • ํŒŒ์ผ (v1.0 ํŒจํ„ด ๋™์ผ โ€” 3๊ณณ)

    4.1 McpContextResolver.java (๊ธฐ์กด ํŒŒ์ผ ํ™•์žฅ)

    v1.0์˜ switch์— case 3๊ฐœ๋งŒ ์ถ”๊ฐ€:

    case "MA_DASHBOARD":
        return callBizData("data_get_ma_dashboard", Map.of());
    case "DASHBOARD_GENERAL":
        return callBizData("data_get_dashboard", Map.of(
            "client_code", slots.get("clientCode"),
            "date_from",   slots.get("dateFrom"),
            "date_to",     slots.get("dateTo")
        ));
    case "CRM_INQUIRY":
        String tool = "crm_products".equals(slots.get("dashboardType"))
            ? "data_get_crm_products" : "data_get_crm_sales";
        return callBizData(tool, Map.of("days", slots.getOrDefault("days", 30)));

    4.2 ConversationServiceImpl.java

    v1.0์—์„œ ์ถ”๊ฐ€ํ•œ 1์ค„ ๊ทธ๋Œ€๋กœ. ๋ณ€๊ฒฝ ์—†์Œ.

    4.3 COUNSEL/INTENT ํ”„๋กฌํ”„ํŠธ

    intent_type ๋ถ„๋ฅ˜ ๋ชฉ๋ก์— 3๊ฐœ ์ถ”๊ฐ€:

    SOLUTION_INQUIRY / SOLUTION_COMPARE / DATA_INQUIRY / GEO_INQUIRY
    / MA_DASHBOARD / DASHBOARD_GENERAL / CRM_INQUIRY / GENERAL

    4.4 COUNSEL/ANSWER ํ”„๋กฌํ”„ํŠธ

    v1.0์˜ {{mcpContext}} ๋ณ€์ˆ˜ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ. ๋ณ€๊ฒฝ ์—†์Œ.

    ---

    5. ํ˜ธ์ถœ ํŽ˜์ด๋กœ๋“œ ์˜ˆ์‹œ

    POST https://ihzttwgqahhzlrqozleh.supabase.co/functions/v1/bizspring-data-mcp
    Content-Type: application/json
    
    {"method": "data_get_ma_dashboard", "params": {}}

    ์‘๋‹ต: ์บ ํŽ˜์ธ ํ˜„ํ™ฉ / ์ถ”์ฒœ ์—”์ง„ / ์ฑ„๋„ ๋ถ„ํฌ (JSON, ~5KB).

    ---

    6. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค (5๊ฑด)

    #์‚ฌ์šฉ์ž ๋ฐœํ™”์˜ˆ์ƒ intent_type๊ฒ€์ฆ ํฌ์ธํŠธ
    1"์‹ค๋ž€ํŠธ๋กœ MA ์บ ํŽ˜์ธ ํ˜„ํ™ฉ ์•Œ๋ ค์ค˜"MA_DASHBOARD์ „์ฒด dashboard ๋ฐ˜ํ™˜
    2"์บ˜๋Ÿฌ์›จ์ด ์ง€๋‚œ 7์ผ ROAS๋Š”?"DASHBOARD_GENERALclientCode ์Šฌ๋กฏ ์ถ”์ถœ
    3"Cafe24 ์ธ๊ธฐ์ƒํ’ˆ Top 10"CRM_INQUIRY (products)dashboardType=crm_products
    4"์ตœ๊ทผ 30์ผ ๋งค์ถœ ๋ณด์—ฌ์ค˜"CRM_INQUIRY (sales)days=30 default
    5"ํšŒ์‚ฌ ์†”๋ฃจ์…˜ ๋ญ ์žˆ์–ด?"SOLUTION_INQUIRY (๊ธฐ์กด)๊ธฐ์กด ๋ถ„๊ธฐ ๋ฌด์˜ํ–ฅ ํšŒ๊ท€

    MCP ์‹คํŒจ ์‹œ: McpContextResolver๊ฐ€ ๋นˆ ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜ โ†’ 2์ฐจ LLM์€ RAG๋งŒ์œผ๋กœ ๋‹ต๋ณ€ (v1.0 fallback ๋™์ผ).

    ---

    7. ์ผ์ • (2์ฃผ, 10์˜์—…์ผ)

    WeekDay์ž‘์—…๋‹ด๋‹น
    1D1-2INTENT ํ”„๋กฌํ”„ํŠธ ๋ถ„๋ฅ˜ ์ถ”๊ฐ€ + ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์œ ์Šน์šฑ
    1D3-4Resolver case 3๊ฐœ ์ถ”๊ฐ€ + HTTP POST ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์œ ์Šน์šฑ
    1D5์Šฌ๋กฏ ์ถ”์ถœ ๊ฒ€์ฆ (days, dashboardType)์œ ์Šน์šฑ
    2D6-7ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ (5์ผ€์ด์Šค) + ํšŒ๊ท€ (๊ธฐ์กด 5 intent)์œ ์Šน์šฑ
    2D8๋‚ด๋ถ€ PM ์‚ฌ์šฉ์ž ๋ฒ ํƒ€ (ํƒ์›์ •/๊ตฌ์žํ›ˆ/์ด์ฒ ์Šน)์œ ์Šน์šฑ
    2D9G2 ๊ฒ€์ฆ ๋ฆฌํฌํŠธ ์ž‘์„ฑ + KHub ๋“ฑ๋ก์ด์ฒ ์Šน
    2D10G3 (์ฐฐ์Šค) โ†’ P1 ํด๋กœ์ฆˆ + P2 G0 ์ง„์ž…์ฐฐ์Šค

    ---

    8. ๋ฆฌ์Šคํฌ & ๋Œ€์‘

    ๋ฆฌ์Šคํฌ์˜ํ–ฅ๋Œ€์‘
    INTENT LLM์ด ์‹ ๊ทœ 3๊ฐœ intent ์˜ค๋ถ„๋ฅ˜๐ŸŸกํ”„๋กฌํ”„ํŠธ์— ๋ฐœํ™” ์˜ˆ์‹œ 3๊ฑด/intent ๋ช…์‹œ
    clientCode ์Šฌ๋กฏ ์ถ”์ถœ ์‹คํŒจ โ†’ ๋‹ค๋ฅธ ๊ณ ๊ฐ ๋ฐ์ดํ„ฐ ๋…ธ์ถœ๐Ÿ”ดclientCode ๋ฏธ์ถ”์ถœ ์‹œ ๋ช…์‹œ์  ์žฌ์งˆ๋ฌธ ๊ฐ•์ œ, default ๊ธˆ์ง€
    BizData MCP ์‘๋‹ต 5KB ์ดˆ๊ณผ โ†’ ์ปจํ…์ŠคํŠธ ํญ๋ฐœ๐ŸŸกResolver์—์„œ ํ•ต์‹ฌ ํ•„๋“œ๋งŒ ์ถ”์ถœ ํ›„ ์ฃผ์ž…
    ๊ธฐ์กด 5 intent ํšŒ๊ท€ ๋ฒ„๊ทธ๐ŸŸกD6-7 ํšŒ๊ท€ ํ…Œ์ŠคํŠธ ํ•„์ˆ˜

    ---

    9. G2 ๊ฒ€์ฆ ๊ธฐ์ค€

    ---

    10. P1 โ†’ P2 ์ „ํ™˜ ํŠธ๋ฆฌ๊ฑฐ

    P1 G3 ํ†ต๊ณผ ํ›„ P2(Action MCP ์‹ ์„ค) G0 ์ง„์ž…. P2๋Š” ๋‹ค์Œ 3๊ฐ€์ง€ ์„ ๊ฒฐ ๊ณผ์ œ ํ•ด๊ฒฐ ํ›„ ์‹œ์ž‘:

    1. ๊ถŒํ•œ ๋งคํŠธ๋ฆญ์Šค ์ •์˜ (client_code ๊ฒฉ๋ฆฌ, ์„ธ์…˜ ์Šค์ฝ”ํ”„)
    2. Idempotency Key + Dry-run ๋ชจ๋“œ ๋ช…์„ธ
    3. AP-25 ์ปจํŽŒ ๊ฒŒ์ดํŠธ UX ์„ค๊ณ„ (์ƒ๋‹ด์‚ฌ UI์—์„œ ์–ด๋–ป๊ฒŒ ์ปจํŽŒ ๋ฐ›์„์ง€)

    ---

    ๋ณ€๊ฒฝ ์ด๋ ฅ

    ๋ฒ„์ „๋‚ ์งœ๋ณ€๊ฒฝ
    v1.02026-04-25์ตœ์ดˆ ์ž‘์„ฑ. P1 ๋ฒ”์œ„ ํ™•์ • (Read ํ™•์žฅ, ๋‚ด๋ถ€ ํ•œ์ •, ๋ฐœ์†ก ์—†์Œ)

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