PageSourceSearch

https://bizspring.ai/kb/solutions/ai-agentic-app

html bizspring.ai collected 2026-10-05 14:06:27 UTC 109,977 bytes, 803 lines download raw bytes

1<!DOCTYPE html>
2<html lang="ko">
3<head>
4<meta charset="utf-8">
5<meta name="viewport" content="width=device-width,initial-scale=1">
6<title>AI Agentic App | 비즈스프링 (BizSpring)</title>
7<meta name="description" content="사내 데이터와 업무 도구를 연결해 사람이 대화로 지시하면 실제 작업까지 수행하는 에이전틱 애플리케이션입니다.">
8<link rel="preconnect" href="https://fonts.googleapis.com">
9<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/orioncactus/[email protected]/dist/web/variable/pretendardvariable-dynamic-subset.min.css">
11<link rel="icon" href="/favicon.ico?v=20260822" type="image/x-icon" sizes="any">
12<link rel="icon" href="/favicon.png?v=20260822" type="image/png" sizes="64x64" media="(prefers-color-scheme: light)">
13<link rel="icon" href="/favicon-dark.png?v=20260822" type="image/png" sizes="64x64" media="(prefers-color-scheme: dark)">
14<link rel="apple-touch-icon" href="/apple-touch-icon.png?v=20260822" sizes="180x180">
15<link rel="mask-icon" href="/safari-pinned-tab.svg?v=20260822" color="#39d98a">
16<link rel="preconnect" href="https://fonts.googleapis.com">
17<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
18<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700&family=Noto+Serif+KR:wght@400;500;600;700&display=swap">
19<meta name="robots" content="max-image-preview:large">
20<link rel="canonical" href="https://bizspring.ai/kb/solutions/ai-agentic-app">
21<link rel="alternate" hreflang="ko" href="https://bizspring.ai/kb/solutions/ai-agentic-app">
22<link rel="alternate" hreflang="x-default" href="https://bizspring.ai/kb/solutions/ai-agentic-app">
23<meta property="og:url" content="https://bizspring.ai/kb/solutions/ai-agentic-app">
24<link rel="alternate" type="text/markdown" href="https://bizspring.ai/kb/solutions/ai-agentic-app.md">
25<meta property="og:site_name" content="비즈스프링 (BizSpring)">
26<meta property="og:type" content="article">
27<meta property="og:title" content="AI Agentic App | 비즈스프링 (BizSpring)">
28<meta property="og:description" content="사내 데이터와 업무 도구를 연결해 사람이 대화로 지시하면 실제 작업까지 수행하는 에이전틱 애플리케이션입니다.">
29<meta property="og:image" content="https://bizspring.ai/og-default.png?v=20260822">
30<meta property="og:image:width" content="1200">
31<meta property="og:image:height" content="630">
32<meta name="twitter:card" content="summary_large_image">
33<meta name="twitter:title" content="AI Agentic App | 비즈스프링 (BizSpring)">
34<meta name="twitter:description" content="사내 데이터와 업무 도구를 연결해 사람이 대화로 지시하면 실제 작업까지 수행하는 에이전틱 애플리케이션입니다.">
35<meta name="twitter:image" content="https://bizspring.ai/og-default.png?v=20260822">
36<link rel="alternate" type="application/rss+xml" href="https://bizspring.ai/feed.xml">
37<style>
38:root{--bg:oklch(0.18 0.0033 17.5);--panel:oklch(0.225 0.0033 17.5);--line:oklch(1 0 0 / 12%);--fg:oklch(0.96 0.008 250);--muted:oklch(0.73 0.028 250);--brand:oklch(0.8 0.19 152);--accent:var(--brand);--wordmark-accent:oklch(0.8 0.19 152);--accent-2:#0f5c3d;--headerbg:color-mix(in oklch, var(--bg) 92%, transparent);--link:oklch(0.73 0.028 250);--quote-fg:var(--fg);--on-accent:oklch(0.19 0.045 258);--cov-bg:#0f5c3d;--cov-fg:#eafff4;--gap-bg:#4a1d1d;--gap-fg:#ffd9d9;--font-sans:'Noto Sans KR',-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',system-ui,sans-serif;--font-serif:'Noto Serif KR','Nanum Myeongjo',Georgia,'Apple SD Gothic Neo',serif;--font-logo:'Pretendard Variable',Pretendard,Roboto,'Helvetica Neue','Segoe UI','Apple SD Gothic Neo','Noto Sans KR',sans-serif}
39html.light{--bg:oklch(0.978 0.003 250);--panel:oklch(1 0 0);--line:oklch(0.892 0.014 255.508);--fg:oklch(0.129 0.042 264.695);--muted:oklch(0.554 0.046 257.417);--brand:oklch(0.443 0.107 158.5);--accent:var(--brand);--wordmark-accent:oklch(0.55 0.15 156);--accent-2:#d7f5e6;--headerbg:color-mix(in oklch, var(--bg) 92%, transparent);--link:var(--accent);--quote-fg:var(--fg);--on-accent:oklch(0.984 0.003 247.858);--cov-bg:#d7f5e6;--cov-fg:#0a3323;--gap-bg:#fde8e8;--gap-fg:#6b1616}
40html{font-size:16px}
41html[data-font="sm"]{font-size:15px}
42html[data-font="lg"]{font-size:17.5px}
43html[data-font="xl"]{font-size:19px}
44html,body{min-height:100%}
45body{display:flex;flex-direction:column}
46*{box-sizing:border-box}
47body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);line-height:1.75;font-size:1rem}
48html[data-font-family="serif"] body{font-family:var(--font-serif)}
49a{color:var(--accent);text-decoration:none}
50a:hover{text-decoration:underline}
51/*
52 * 글 속의 링크에는 밑줄을 항상 둔다.
53 *
54 * 색만으로 구별하면 링크 색과 본문 색 사이가 3:1 은 돼야 하는데(WCAG 1.4.1),
55 * 본문 글자가 거의 검정(#111826)이라 흰 배경에서 4.5:1 을 지키면서 본문과 3:1 까지
56 * 벌리는 색은 산술적으로 거의 없다. 실측했을 때 라이트 테마 본문 링크는 2.70 이었다.
57 * 밑줄이라는 색 아닌 단서를 붙이면 그 요구 자체가 사라지고, 무엇보다 눈에 띈다.
58 *
59 * 목록·카드·칩·사이드바처럼 «생김새로 이미 누를 수 있어 보이는» 곳에는 붙이지 않는다.
60 */
61main p:not(.chips) a,main li a,main td a,main th a,.oneliner a,footer .copy a{
62  text-decoration:underline;
63  text-decoration-thickness:1px;
64  text-underline-offset:.18em;
65  text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}
66main p:not(.chips) a:hover,main li a:hover,main td a:hover,main th a:hover,.oneliner a:hover,footer .copy a:hover{
67  text-decoration-thickness:2px;
68  text-decoration-color:currentColor}
69header.top{border-bottom:1px solid var(--line);padding:0;position:sticky;top:0;background:var(--headerbg);backdrop-filter:blur(8px);z-index:5}
70/* 폭과 배치는 대화 화면(components/site-header.tsx)과 같은 값이다 — 1280px 가운데 정렬, 높이 56px. */
71header.top .bar{max-width:1280px;margin:0 auto;height:56px;padding:0 16px;display:flex;gap:12px;align-items:center}
72header.top .brand{font-weight:400;color:var(--fg);font-size:26.4px;line-height:1;letter-spacing:-.025em;font-family:var(--font-logo);display:flex;align-items:center;white-space:nowrap;flex-shrink:0}
73/* 심볼은 테마별로 두 벌. 이 CSS 는 기본이 어두우므로 밝은 바탕 심볼이 기본이다. */
74/* 로고 글자는 한 덩어리다. flex gap 이 «BizSpring» 과 «.ai» 사이에도 끼어들어
75   "BizSpring .ai" 로 보이던 것을 한 칸으로 감싸 막는다. */
76header.top .brand .word{display:inline}
77header.top .brand .dot{color:var(--wordmark-accent)}
78/* 1단 메뉴 nav 는 .bar 안에만 있다. 셀렉터를 좁히지 않으면 2단 줄의 nav 도
79   같이 잡혀 배치가 어긋난다. */
80header.top .bar nav{flex:1;display:flex;justify-content:center;gap:2px;flex-wrap:nowrap;min-width:0;overflow-x:auto;scrollbar-width:none}
81header.top .bar nav::-webkit-scrollbar{display:none}
82header.top .bar nav a{color:var(--muted);font-size:.875rem;padding:6px 7px;border-radius:8px;white-space:nowrap;flex-shrink:0}
83header.top .bar nav a:hover{color:var(--fg);text-decoration:none}
84header.top .bar nav a[aria-current="page"]{color:var(--fg);font-weight:600}
85/* 본 기능(AI 상담)은 자료 메뉴들과 같은 무게로 두지 않는다. React 헤더와 같은 모양. */
86/* 본사 사이트(bizspring.co.kr)와 이 사이트를 오가는 전환 스위치. 모양은 본사
87   것을 그대로 따랐고, 대화 화면의 SiteSwitch 와도 같아야 한다 — 한쪽을 바꾸면
88   다른 쪽도 바꾼다. 여기서는 늘 켜짐이고, 누르면 꺼지며 본사 사이트로 간다. */
89header.top .siteswitch{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:4px 10px 4px 6px;border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);background:color-mix(in srgb,var(--accent) 10%,var(--bg));border-radius:999px;transition:border-color .15s,background-color .15s}
90header.top .siteswitch:hover{border-color:var(--line);background:var(--panel);text-decoration:none}
91header.top .siteswitch .sw{position:relative;display:inline-flex;align-items:center;width:28px;height:16px;flex-shrink:0;border-radius:999px;background:color-mix(in srgb,var(--accent) 70%,transparent);transition:background-color .15s}
92header.top .siteswitch:hover .sw{background:color-mix(in srgb,var(--fg) 20%,transparent)}
93header.top .siteswitch .knob{display:inline-block;width:12px;height:12px;border-radius:999px;background:var(--on-accent);box-shadow:0 1px 2px rgba(0,0,0,.25);transform:translateX(13px);transition:transform .15s,background-color .15s}
94header.top .siteswitch:hover .knob{transform:translateX(2px);background:var(--bg)}
95/* 이 폭 아래에서는 "AI 모드"를 "AI"로 줄인다 — 지우지는 않는다. 대화 화면
96   (site-switch.tsx)과 같은 기준(nav.ts 의 SITE_SWITCH_LABEL_MIN_WIDTH)이다.
97   온전한 말을 늘 켜 두면 좁은 화면에서 로고·스위치·도구·햄버거가 한 줄에
98   다 안 들어가 상단 줄이 꺾인다(실제로 그랬다). 그렇다고 아예 없애면
99   스위치가 무엇을 켠 상태인지 안 읽힌다. */
100header.top .siteswitch .lbl{font-size:11px;font-weight:500;line-height:1;color:var(--accent);white-space:nowrap;transition:color .15s}
101header.top .siteswitch .lbl-full{display:none}
102@media(min-width:400px){header.top .siteswitch .lbl-short{display:none}header.top .siteswitch .lbl-full{display:inline}}
103header.top .siteswitch:hover .lbl{color:var(--muted)}
104/* AI 상담은 나머지 메뉴와 같은 무게로 두지 않는다. */
105header.top .bar nav a.primary{border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 15%,var(--bg));color:var(--accent);border-radius:999px;font-weight:600;margin-right:6px}
106header.top .bar nav a.primary:hover{background:var(--accent);color:var(--on-accent)}
107header.top .bar nav a.primary[aria-current="page"]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
108header.top .bar nav .navsep{padding:0 3px;color:var(--line);font-size:.875rem;user-select:none;flex-shrink:0}
109/* 2단 메뉴 줄 — 상단 바 바로 아래. 대화 화면의 SubNavBar(site-header.tsx)와
110   같은 높이·테두리·여백을 쓴다. 갈래마다 줄 모양이 다르면 단이 하나 더 있는
111   게 아니라 화면이 통째로 바뀐 것처럼 보인다. */
112header.top .subbar{border-top:1px solid var(--line)}
113header.top .subbar .inner{max-width:1280px;margin:0 auto;padding:8px 16px;display:flex;gap:12px;align-items:center;justify-content:safe center;flex:none;overflow-x:auto;scrollbar-width:none}
114header.top .subbar .inner::-webkit-scrollbar{display:none}
115/* 2단 nav 는 가운데 묶음 안에서 메뉴 링크만 담당한다. */
116header.top .subbar nav{display:flex;gap:4px;align-items:center;flex:none}
117header.top .subbar a{color:var(--muted);font-size:.8125rem;padding:4px 10px;border-radius:8px;white-space:nowrap;flex-shrink:0}
118header.top .subbar a:hover{color:var(--fg);text-decoration:none}
119header.top .subbar a[aria-current="page"]{background:var(--panel);color:var(--fg);font-weight:600}
120/* 문의하기 버튼은 글자·테마 메뉴와 한 묶음에서 살짝 떨어져 있어야 한다. */
121.tools{display:flex;gap:6px;align-items:center;margin-left:auto}
122.tools #ui-contact{margin-left:8px}
123/* 좁은 화면에서 1단·2단 메뉴를 대신하는 햄버거 메뉴. 대화 화면(site-header.tsx)의
124   모바일 드롭다운과 같은 구성 — 1단(AI 상담·시각화 탐색·지식센터) 다음에 2단
125   (지식센터 안의 메뉴)을 잇달아 보여준다. 지식센터 화면은 늘 2단이 있으므로
126   그 화면 몫도 함께 넣는다. 넓은 화면에서는 지금까지처럼 가로로 늘어선 메뉴를
127   그대로 쓰고, 이 장치는 숨어 있는다. */
128.mnav-cb{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
129.mnav-toggle{display:none}
130.mnav{display:none}
131/* 문의하기 — 헤더에 있든 바닥글에 있든 같은 버튼이다. 색·굵기·글자색은 여기
132   한 줄이 들고, 크기와 둥글기만 자리에 따라 다르다. 대화 화면의
133   CONTACT_BUTTON(components/site-header.tsx)과 같은 값을 써야 두 화면이
134   어긋나지 않는다 — 한쪽을 고치면 다른 쪽도 고친다.
135   바닥글 것(#ui-contact-2)은 .chip 을 함께 쓰는데, .chip 은 목록 거르개
136   버튼들도 쓰는 공용 클래스다. 그래서 .chip 을 건드리지 않고 id 로만 덮는다. */
137.tools>button,#ui-contact-2{background:var(--accent);border:0;color:var(--on-accent);font-weight:600;cursor:pointer;font-family:inherit;transition:opacity .15s}
138.tools>button:hover,#ui-contact-2:hover{opacity:.9;color:var(--on-accent)}
139/* 높이 36px 은 옆의 글자·테마 동그란 버튼과 같은 값이라 한 줄에서 눈높이가 맞는다. */
140.tools>button{display:inline-flex;align-items:center;height:36px;padding:0 12px;border-radius:8px;font-size:.75rem;white-space:nowrap}
141/* 아이콘 드롭다운 — 대화 화면 IconMenu 와 같은 모양 */
142.imenu{position:relative}
143.imenu-trigger{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;padding:0;font-family:inherit;transition:color .15s,border-color .15s}
144.imenu-trigger:hover{color:var(--fg);border-color:color-mix(in oklab, var(--fg) 30%, transparent)}
145/* 문의 모달 — 대화 화면의 것과 같은 모양. 지식센터에서도 페이지를 떠나지 않는다. */
146.cdlg{position:fixed;inset:0;z-index:80;display:none;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
147.cdlg[data-open="1"]{display:flex}
148.cdlg-box{width:100%;max-height:92dvh;overflow-y:auto;background:var(--bg);border:1px solid var(--line);border-radius:16px 16px 0 0;padding:20px}
149@media(min-width:640px){.cdlg{align-items:center;padding:16px}.cdlg-box{max-width:520px;border-radius:16px}}
150.cdlg h2{margin:0;font-size:1.125rem;color:var(--fg)}
151.cdlg .sub{margin:6px 0 16px;font-size:.8125rem;color:var(--muted)}
152.cdlg label{display:block;margin-bottom:10px}
153.cdlg input,.cdlg textarea{width:100%;box-sizing:border-box;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--fg);font-size:.875rem;font-family:inherit}
154.cdlg input::placeholder,.cdlg textarea::placeholder{color:var(--muted);font-style:italic;opacity:.75}
155.cdlg input:focus,.cdlg textarea:focus{outline:none;border-color:var(--accent)}
156.cdlg .row{display:grid;gap:10px}
157@media(min-width:640px){.cdlg .row{grid-template-columns:1fr 1fr}}
158.cdlg .send{width:100%;background:var(--accent);color:var(--on-accent);border:0;border-radius:12px;padding:12px;font-size:.875rem;font-weight:600;font-family:inherit;cursor:pointer}
159.cdlg .send[disabled]{opacity:.5;cursor:default}
160.cdlg .note{margin:10px 0 0;text-align:center;font-size:.6875rem;color:var(--muted)}
161.cdlg .err{margin:0 0 8px;font-size:.8125rem;color:var(--gap-fg);background:var(--gap-bg);border-radius:8px;padding:8px 10px}
162.linkish{background:none;border:0;padding:0;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
163.linkish:hover{color:var(--fg)}
164@media(min-width:640px){.pdlg-box{max-width:720px}}
165.pdlg-box h3{margin:18px 0 6px;font-size:.875rem;color:var(--fg)}
166.pdlg-box p,.pdlg-box li{font-size:.8125rem;line-height:1.7;color:var(--muted)}
167.pdlg-box ul{margin:6px 0;padding-left:18px}
168.pdlg-box strong{color:var(--fg)}
169.cdlg-x{float:right;background:none;border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:2px 8px;font-size:.875rem;cursor:pointer;font-family:inherit}
170.imenu-list{position:absolute;right:0;top:100%;margin-top:6px;min-width:144px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:4px 0;box-shadow:0 8px 24px rgba(0,0,0,.28);z-index:50;overflow:hidden}
171.imenu-list[hidden]{display:none}
172.imenu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;background:none;border:0;color:var(--muted);font-size:.875rem;font-family:inherit;text-align:left;cursor:pointer}
173.imenu-heading{padding:8px 12px 4px;font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
174.imenu-sep{height:1px;background:var(--line);margin:4px 0}
175.imenu-item:hover{color:var(--fg);background:color-mix(in oklab, var(--fg) 8%, transparent)}
176.imenu-item[aria-checked="true"]{color:var(--accent);font-weight:600;background:color-mix(in oklab, var(--accent) 12%, transparent)}
177.imenu-ico{display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center;flex:0 0 16px}
178@media(max-width:768px){
179  /* 가로로 늘어놓고 구르게 하던 1단·2단 메뉴를 숨기고 햄버거로 바꾼다. 폭
180     기준은 nav.ts 의 HEADER_MOBILE_MAX_WIDTH 하나로 대화 화면(Tailwind md)과
181     맞춘다 — 지난 버전은 이 값을 900px 로 따로 넣어 두 화면이 접히는 지점이
182     서로 달랐다. */
183  header.top .bar nav{display:none}
184  header.top .subbar{display:none}
185  /* nav 를 숨겨도 브랜드·사이트 전환·글자·테마·문의하기·햄버거가 한 줄에
186     다 들어가지는 않는다(393px 실측: 82px 넘침 — 햄버거가 화면 밖으로 밀려
187     아예 안 보였다). 글자 버튼인 "문의하기"는 아래 모바일 메뉴 안에도
188     넣어 두었으니 상단 줄에서는 뺀다. 그래도 못 들어가는 화면이 있을 수
189     있어 줄바꿈은 안전장치로 열어 둔다. */
190  header.top .bar{flex-wrap:wrap;height:auto;padding:10px 16px;row-gap:8px}
191  .tools #ui-contact{display:none}
192  /* 시인성: 옅은 색 글자 하나로는 눈에 잘 안 띈다는 지적이 있어, 테두리·배경을
193     또렷이 주고 글자도 굵게 키운다. */
194  .mnav-toggle{
195    display:inline-flex;align-items:center;justify-content:center;
196    width:38px;height:38px;margin-left:6px;flex-shrink:0;
197    border:1.5px solid var(--line);border-radius:10px;background:var(--panel);
198    color:var(--fg);font-size:21px;font-weight:700;line-height:1;cursor:pointer;
199  }
200  .mnav-toggle:hover{border-color:var(--accent);color:var(--accent)}
201  .mnav-cb:checked~.bar .mnav-toggle{border-color:var(--accent);color:var(--accent)}
202  .mnav-cb:focus-visible~.bar .mnav-toggle{outline:2px solid var(--accent);outline-offset:2px}
203  .mnav-cb:checked~.mnav{display:block}
204  .mnav{border-top:1px solid var(--line);background:var(--panel);padding:12px 16px 16px}
205  .mnav-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}
206  .mnav-sub{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
207  .mnav a{display:block;padding:9px 10px;border-radius:8px;color:var(--muted);font-size:.875rem}
208  .mnav a:hover{color:var(--fg);text-decoration:none}
209  .mnav a[aria-current="page"]{background:var(--bg);color:var(--fg);font-weight:600}
210  .mnav-search{margin-top:12px}
211  .mnav-search input{flex:1;width:auto}
212  /* 상단 줄에서 뺀 문의하기를 여기로 옮긴다. 색·굵기는 .tools>button 과 같다. */
213  .mnav-contact{display:block;width:100%;margin-top:10px;background:var(--accent);border:0;border-radius:10px;color:var(--on-accent);font-weight:600;font-size:.875rem;font-family:inherit;padding:11px;cursor:pointer;text-align:center}
214  .mnav-contact:hover{opacity:.9}
215}
216.chip{display:inline-block;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:5px 11px;font-size:.8125rem;cursor:pointer;font-family:inherit}
217.chip:hover{color:var(--fg)}
218.chip[aria-pressed="true"]{border-color:var(--accent);color:var(--accent);font-weight:600}
219.wrap{display:grid;grid-template-columns:260px minmax(0,1fr) 220px;gap:32px;max-width:1400px;margin:0 auto;padding:28px 20px 80px}
220aside{font-size:.875rem}
221/* 왼쪽 트리(.nav-tree)를 접었다 펼치는 장치. 처음에는 <details> 로 감싸고
222   닫힌 상태를 CSS !important 로 열린 것처럼 보이게 강제했는데, 실제 브라우저는
223   닫힌 <details> 의 내용을 author CSS 로 되살릴 수 없어 — display 를 아무리
224   덮어써도 렌더링 자체를 건너뛴다 — 데스크톱에서 트리 전체가 빈 칸으로
225   사라지는 회귀가 났다(2026-09-10 발견).
226   체크박스로 바꾼다. 이건 그냥 display:none/block 전환이라 브라우저 내부
227   동작과 다툴 일이 없다. 체크박스 자신은 화면에서 보이지 않되(시각적으로만
228   숨김) 키보드 tab·스페이스로는 여전히 작동해야 하므로 display:none 대신
229   화면 밖으로 치우는 방식을 쓴다. 넓은 화면에서는 지금까지처럼 토글줄이
230   안 보이고 트리는 항상 펼쳐 보인다 — 접었다 펼치는 동작은 1100px 이하에서만
231   켠다(아래 미디어쿼리). */
232.nav-tree-cb{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
233.nav-tree-toggle{display:none}
234aside h3{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:20px 0 8px}
235aside ul{list-style:none;padding:0;margin:0}
236/* 항목(li) 사이는 넓게, 한 항목 안에서 줄바꿈된 줄 사이는 좁게 — 제목이 길어 두 줄로
237   꺾여도 한 덩어리로 읽히고, 옆 항목과는 뚜렷이 떨어져 보인다. */
238aside li{margin:9px 0;line-height:1.3}
239aside a{color:var(--link)}
240aside ul.tree,aside ul.tree ul{list-style:none;padding-left:0;margin:0}
241aside ul.tree ul{padding-left:12px;border-left:1px solid var(--line);margin:4px 0 8px 4px}
242aside details>summary{cursor:pointer;padding:4px 0;color:var(--link);list-style:none;line-height:1.3}
243aside details>summary::-webkit-details-marker{display:none}
244aside details>summary::before{content:"\25b8";display:inline-block;margin-right:6px;color:var(--muted);transition:transform .15s}
245aside details[open]>summary::before{transform:rotate(90deg)}
246aside summary b{color:var(--muted);font-weight:400;font-size:.75rem}
247.ext::after{content:"\2197";margin-left:4px;font-size:.9em}
248.empty{border:1px dashed var(--line);border-radius:12px;padding:28px;color:var(--muted);text-align:center}
249main{min-width:0}
250main h1{font-size:2rem;line-height:1.3;margin:0 0 8px}
251main h2{font-size:1.375rem;
251margin:36px 0 10px;padding-top:8px;border-top:1px solid var(--line)}
252main h3{font-size:1.0625rem;margin:22px 0 6px}
253/* 본문 글자를 글자크기 토글의 "작게"-"보통" 중간 정도로 한 단계만 낮춘다. */
254main p,main li,main blockquote{font-size:.96875rem}
255.oneliner{font-size:1.125rem;color:var(--quote-fg);background:var(--panel);border-left:3px solid var(--accent);padding:14px 16px;border-radius:0 8px 8px 0;margin:16px 0}
256.summary{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin:16px 0}
257.summary h2{border:0;margin:0 0 6px;font-size:.875rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
258.meta{color:var(--muted);font-size:.8125rem}
259.chips a{display:inline-block;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:4px 12px;margin:3px 4px 3px 0;font-size:.8125rem;color:var(--link)}
260.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
261.card{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:14px 16px}
262.card b{display:block;margin-bottom:4px}
263.card p{margin:0;color:var(--muted);font-size:.875rem}
264table{border-collapse:collapse;width:100%;min-width:32rem;font-size:.875rem;margin:0}
265th,td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
266th{background:var(--panel);color:var(--muted);font-weight:600;white-space:nowrap}
267/* 넓은 표는 스스로 가로 스크롤한다. 본문이 옆으로 밀리면 읽는 자리를 잃는다. */
268.tablewrap{overflow-x:auto;margin:14px 0;border-radius:8px}
269tbody tr:nth-child(even) td{background:color-mix(in srgb, var(--panel) 45%, transparent)}
270
271/* 다이어그램. 색은 currentColor 로 받아 테마를 따라간다 — 라이트/다크에
272   각각 색을 박아두면 한쪽에서 반드시 안 보인다. */
273.svgfig{margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow-x:auto}
274.svgfig svg{display:block;width:100%;height:auto;color:var(--fg)}
275.svgfig .dg-muted{color:var(--muted)}
276.svgfig .dg-accent{color:var(--accent)}
277pre{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px;overflow-x:auto;margin:14px 0}
278pre code{background:none;padding:0;font-size:.8125rem;line-height:1.6}
279.imgfig{margin:16px 0}
280.imgfig img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
281.imgfig figcaption{margin-top:6px;font-size:.8125rem;color:var(--muted)}
282/* 실제 화면 — 솔루션 문서 하단. 카드가 좁아지면 두 줄, 더 좁아지면 한 줄로 접힌다. */
283.shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:12px;margin:14px 0}
284.shot{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--panel);text-decoration:none;color:inherit}
285.shot:hover{border-color:var(--accent)}
286.shot img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top;border-radius:6px;background:var(--bg)}
287.shot-t{font-size:.8125rem;font-weight:600}
288.shot-c{font-size:.75rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
289/* 화면 문서 자신의 대표 이미지 — 위 .shot 은 다른 문서를 가리키는 작은 카드고, 이건 그 문서 본문 상단의 원본 크기 이미지다. */
290.doc-shot{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:10px;margin:14px 0;background:var(--panel)}
291.cov{background:var(--cov-bg);color:var(--cov-fg)}
292.gap{background:var(--gap-bg);color:var(--gap-fg)}
293.toc{position:sticky;top:80px;font-size:.8125rem}
294.toc a{display:block;color:var(--muted);padding:3px 0}
295footer{border-top:1px solid var(--line);padding:20px;color:var(--muted);font-size:.8125rem;margin-top:auto}
296footer .copy{max-width:1400px;margin:0 auto;text-align:center}
297.wrap{flex:1}
298/* 2단 줄 안의 검색창. 1단에서 떼어 내려왔으므로 오른쪽으로 밀리면 안 된다. */
299form.search{display:flex;gap:8px;flex-shrink:1;min-width:0}
300form.search input{background:var(--panel);border:1px solid var(--line);color:var(--fg);border-radius:8px;padding:7px 12px;width:150px;min-width:0}
301form.search button{background:var(--accent);color:var(--on-accent);border:0;border-radius:8px;padding:7px 14px;font-weight:700;cursor:pointer}
302code{background:var(--panel);padding:1px 5px;border-radius:4px;font-size:.9em}
303/* 3단 그리드가 1단으로 접히는 폭. 소스 순서는 «트리 → 본문 → 목차» 그대로다
304   (데스크톱은 그리드 배치라 순서가 상관없었다) — 그런데 한 칸으로 쌓이면
305   소스 순서가 곧 화면 순서가 되어, 트리(전체 문서 목록)를 다 지나야 본문이
306   나오고 목차는 본문을 다 읽은 뒤에야 나왔다. 아이폰 17e(390px)보다 좁아지면
307   더 두드러진다.
308   트리는 위에서 체크박스로 접어 두어 한 줄로 줄이고, 목차는 order 로
309   본문 앞으로 옮긴다 — 목차는 "읽으면서 다른 절로 건너뛰는" 용도라 본문보다
310   먼저 있어야 쓸모가 있다. */
311@media(max-width:1100px){
312  .wrap{grid-template-columns:1fr}
313  aside,.toc{position:static}
314  .toc{order:1}
315  main{order:2}
316  .nav-tree-toggle{display:block;cursor:pointer;padding:10px 0;font-size:.8125rem;font-weight:600;color:var(--fg);border-bottom:1px solid var(--line);margin-bottom:8px}
317  .nav-tree-toggle::before{content:"\25b8";display:inline-block;margin-right:6px;color:var(--muted);transition:transform .15s}
318  .nav-tree-cb:checked+.nav-tree-toggle::before{transform:rotate(90deg)}
319  .nav-tree-cb:focus-visible+.nav-tree-toggle{outline:2px solid var(--accent);outline-offset:2px}
320  .nav-tree-body{display:none}
321  .nav-tree-cb:checked~.nav-tree-body{display:block}
322}
323</style>
324<script type="application/ld+json">{"@context":"https://schema.org","@type":"TechArticle","name":"AI Agentic App","headline":"AI Agentic App","description":"사내 데이터와 업무 도구를 연결해 사람이 대화로 지시하면 실제 작업까지 수행하는 에이전틱 애플리케이션입니다.","url":"https://bizspring.ai/kb/solutions/ai-agentic-app","inLanguage":"ko","dateModified":"2026-09-03T08:03:21.092+00:00","keywords":"AI 에이전트, 에이전틱, MCP, 업무 자동화, SDUI","publisher":{"@type":"Organization","@id":"https://bizspring.ai/#organization","name":"비즈스프링 (BizSpring)","url":"https://bizspring.ai"},"speakable":{"@type":"SpeakableSpecification","cssSelector":[".oneliner",".summary"]}}</script>
vendor: 1 bytes, line 324
324
325<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"지식센터","item":"https://bizspring.ai/kb"},{"@type":"ListItem","position":2,"name":"solutions","item":"https://bizspring.ai/kb/solutions"},{"@type":"ListItem","position":3,"name":"AI Agentic App","item":"https://bizspring.ai/kb/solutions/ai-agentic-app"}]}</script>
vendor: 1 bytes, line 325
325
326<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"AI Agentic App는 무엇인가요?","acceptedAnswer":{"@type":"Answer","text":"사내 데이터와 업무 도구를 연결해 사람이 대화로 지시하면 실제 작업까지 수행하는 에이전틱 애플리케이션입니다."}},{"@type":"Question","name":"AI Agentic App는 어떤 문제를 해결하나요?","acceptedAnswer":{"@type":"Answer","text":"AI 도입은 대부분 챗봇 데모에서 멈춥니다. 사내 데이터에 접근하지 못하고 실제 시스템을 실행하지 못하면 업무는 그대로 남습니다."}},{"@type":"Question","name":"AI Agentic App의 도입 효과는 무엇인가요?","acceptedAnswer":{"@type":"Answer","text":"반복 업무의 대화 기반 처리 데이터 조회 병목 제거 AI 답변의 근거 추적 가능"}},{"@type":"Question","name":"AI Agentic App는 TCR 프레임워크의 어떤 활동을 커버하나요?","acceptedAnswer":{"@type":"Answer","text":"O-X-3 리포팅 자동화, O-X-4 데이터 개방·AI 연동"}},{"@type":"Question","name":"AI Agentic App의 가격 모델은 어떻게 되나요?","acceptedA
326nswer":{"@type":"Answer","text":"프로젝트 + 사용량"}}]}</script>
vendor: 1 bytes, line 326
326
327<script type="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"AI Agentic App","alternateName":"AI Agentic App","applicationCategory":"BusinessApplication","description":"사내 데이터와 업무 도구를 연결해 사람이 대화로 지시하면 실제 작업까지 수행하는 에이전틱 애플리케이션입니다.","url":"https://bizspring.ai/kb/solutions/ai-agentic-app","offers":{"@type":"Offer","priceCurrency":"KRW","availability":"https://schema.org/InStock","url":"https://bizspring.ai/kb/contact","priceSpecification":{"@type":"PriceSpecification","priceCurrency":"KRW","description":"규모·기간에 따른 상담 견적"}},"provider":{"@type":"Organization","@id":"https://bizspring.ai/#organization","name":"비즈스프링 (BizSpring)","url":"https://bizspring.ai"}}</script>
vendor: 1 bytes, line 327
327
328<script defer src="/~flock.js" data-proxy-url="/~api/analytics"></script>
328</head>
329<body>
330<script>(function(){try{
331var d=document.documentElement;
332var dark=(function(){
333var m=localStorage.getItem('bizspring-theme')||'auto';
334if(m==='light') return false;
335if(m==='dark') return true;
336if(m==='system') return !(window.matchMedia&&window.matchMedia('(prefers-color-scheme: light)').matches);
337var n=new Date(),tz=-n.getTimezoneOffset()/60,lon=tz*15,lat=37.5,rad=Math.PI/180;
338var doy=Math.floor((Date.UTC(n.getFullYear(),n.getMonth(),n.getDate())-Date.UTC(n.getFullYear(),0,0))/864e5);
339var g=2*Math.PI/365*(doy-1);
340var eq=229.18*(75e-6+.001868*Math.cos(g)-.032077*Math.sin(g)-.014615*Math.cos(2*g)-.040849*Math.sin(2*g));
341var de=.006918-.399912*Math.cos(g)+.070257*Math.sin(g)-.006758*Math.cos(2*g)+9.07e-4*Math.sin(2*g)-.002697*Math.cos(3*g)+.00148*Math.sin(3*g);
342var la=lat*rad,ch=Math.cos(90.833*rad)/(Math.cos(la)*Math.cos(de))-Math.tan(la)*Math.tan(de);
343if(ch>1) return true;
344if(ch<-1) return false;
345var ha=Math.acos(ch)/rad;
346var sr=((720-4*(lon+ha)-eq)/60+tz+24)%24, ss=((720-4*(lon-ha)-eq)/60+tz+24)%24;
347var h=n.getHours()+n.getMinutes()/60;
348return !(h>=sr&&h<ss);
349})();
350d.classList.toggle('light',!dark);
351d.style.colorScheme=dark?'dark':'light';
352var f=localStorage.getItem('bsw-font');
353d.setAttribute('data-font',(f==='sm'||f==='lg'||f==='xl')?f:'md');
354var ff=localStorage.getItem('bsw-font-family');
355d.setAttribute('data-font-family',ff==='serif'?'serif':'sans');
356}catch(e){}})();</script>
356
357<header class="top">
358<input type="checkbox" class="mnav-cb" id="mnav-cb">
359<div class="bar">
360  <a class="brand" href="/"><span class="word">BizSpring<span class="dot">.ai</span></span></a>
361  <a class="siteswitch" id="ui-siteswitch" href="https://www.bizspring.co.kr/" title="AI 모드 켜짐 — 끄면 비즈스프링 홈(bizspring.co.kr)으로 이동합니다"><span class="sw" aria-hidden="true"><span class="knob"></span></span><span class="lbl lbl-short" aria-hidden="true">AI</span><span class="lbl lbl-full">AI 모드</span></a>
362  <nav aria-label="주 메뉴">
363    <a href="/">AI 상담</a><span class="navsep" aria-hidden="true">|</span>
364    <a href="/visualize">시각화 탐색</a>
365    <a href="/kb" aria-current="page">지식센터</a>
366  </nav>
367  <div class="tools">
368    <div class="imenu" id="ui-font" data-label="글자"><button type="button" class="imenu-trigger" data-menu-trigger aria-haspopup="menu" aria-expanded="false" aria-label="글자" title="글자"><span style="font-size:13px;line-height:1;font-weight:600">가</span></button><div class="imenu-list" data-menu-list role="menu" aria-label="글자" hidden><div class="imenu-heading">글자 크기</div><button type="button" class="imenu-item" role="menuitemradio" aria-checked="false" data-group="size" data-value="sm" data-label="작게"><span class="imenu-ico" data-menu-icon><span style="font-size:11px;line-height:1;font-weight:600">가</span></span>작게</button><button type="button" class="imenu-item" role="menuitemradio" aria-checked="false" data-group="size" data-value="md" data-label="보통"><span class="imenu-ico" data-menu-icon><span style="font-size:13px;line-height:1;font-weight:600">가</span></span>보통</button><button type="button" class="imenu-item" role="menuitemradio" aria-checked="false" data-group="size" data-value="lg" data-label="크게"><span class="imenu-ico" data-menu-icon><span style="font-size:15px;line-height:1;font-weight:600">가</span></span>크게</button><button type="button" class="imenu-item" role="menuitemradio" aria-checked="false" data-group="size" data-value="xl" data-label="아주 크게"><span class="imenu-ico" data-menu-icon><span style="font-size:17px;line-height:1;font-weight:600">가</span></span>아주 크게</button><div class="imenu-sep"></div><div class="imenu-heading">글자 모양</div><button type="button" class="imenu-item" role="menuitemradio" aria-checked="false" data-group="family" data-value="sans" data-label="고딕" data-fontcss="'Noto Sans KR',-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',system-ui,sans-serif"><span class="imenu-ico" data-menu-icon><span style="font-size:15px;line-height:1;font-weight:600;font-family:'Noto Sans KR',-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',system-ui,sans-serif">가</span></span>고딕</button><button type="button" class="imenu-item" role="menuitemradio" aria-checked="false" data-group="family" data-value="serif" data-label="명조" data-fontcss="'Noto Serif KR','Nanum Myeongjo',Georgia,'Apple SD Gothic Neo',serif"><span class="imenu-ico" data-menu-icon><span style="font-size:15px;line-height:1;font-weight:600;font-family:'Noto Serif KR','Nanum Myeongjo',Georgia,'Apple SD Gothic Neo',serif">가</span></span>명조</button></div></div>
369    <div class="imenu" id="ui-theme" data-label="테마"><button type="button" class="imenu-trigger" data-menu-trigger aria-haspopup="menu" aria-expanded="false" aria-label="테마" title="테마"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 2v2"/><path d="M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715"/><path d="M16 12a4 4 0 0 0-4-4"/><path d="m19 5-1.256 1.256"/><path d="M20 12h2"/></svg></button><div class="imenu-list" data-menu-list role="menu" aria-label="테마" hidden><button type="button" class="imenu-item" role="menuitemradio" aria-checked="false" data-value="light" data-label="라이트"><span class="imenu-ico" data-menu-icon><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewB
369ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2"/><path d="M12 20v2"/><path d="m4.93 4.93 1.41 1.41"/><path d="m17.66 17.66 1.41 1.41"/><path d="M2 12h2"/><path d="M20 12h2"/><path d="m6.34 17.66-1.41 1.41"/><path d="m19.07 4.93-1.41 1.41"/></svg></span>라이트</button><button type="button" class="imenu-item" role="menuitemradio" aria-checked="false" data-value="dark" data-label="다크"><span class="imenu-ico" data-menu-icon><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/></svg></span>다크</button><button type="button" class="imenu-item" role="menuitemradio" aria-checked="false" data-value="system" data-label="시스템"><span class="imenu-ico" data-menu-icon><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"/><line x1="8" x2="16" y1="21" y2="21"/><line x1="12" x2="12" y1="17" y2="21"/></svg></span>시스템</button><button type="button" class="imenu-item" role="menuitemradio" aria-checked="false" data-value="auto" data-label="자동"><span class="imenu-ico" data-menu-icon><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 2v2"/><path d="M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715"/><path d="M16 12a4 4 0 0 0-4-4"/><path d="m19 5-1.256 1.256"/><path d="M20 12h2"/></svg></span>자동</button></div></div>
370    <button type="button" id="ui-contact">문의하기</button>
371    <label for="mnav-cb" class="mnav-toggle" aria-label="메뉴 열기"><span aria-hidden="true">&#9776;</span></label>
372  </div>
373</div>
374<div class="subbar">
375  <div class="inner">
376    <nav aria-label="지식센터 메뉴">
377      <a href="/kb">지식센터 홈</a>
378      <a href="/kb/solutions" aria-current="page">솔루션</a>
379      <a href="/kb/tcr">TCR</a>
380      <a href="/kb/cases">사례</a>
381      <a href="/kb/demos">샘플데모</a>
382      <a href="/kb/gallery">화면 갤러리</a>
383      <a href="/kb/materials">자료실</a>
384      <a href="/kb/faq">FAQ</a>
385    </nav>
386    <form class="search" action="/kb/search" method="get">
387      <input type="search" name="q" placeholder="지식센터 검색" aria-label="지식센터 검색">
388      <button type="submit">검색</button>
389    </form>
390  </div>
391</div>
392<nav class="mnav" aria-label="주 메뉴(모바일)">
393  <div class="mnav-grid">
394    <a href="/">AI 상담</a>
395    <a href="/visualize">시각화 탐색</a>
396    <a href="/kb" aria-current="page">지식센터</a>
397  </div>
398  <div class="mnav-grid mnav-sub">
399    <a href="/kb">지식센터 홈</a>
400    <a href="/kb/solutions" aria-current="page">솔루션</a>
401    <a href="/kb/tcr">TCR</a>
402    <a href="/kb/cases">사례</a>
403    <a href="/kb/demos">샘플데모</a>
404    <a href="/kb/gallery">화면 갤러리</a>
405    <a href="/kb/materials">자료실</a>
406    <a href="/kb/faq">FAQ</a>
407  </div>
408  <form class="search mnav-search" action="/kb/search" method="get">
409    <input type="search" name="q" placeholder="지식센터 검색" aria-label="지식센터 검색">
410    <button type="submit">검색</button>
411  </form>
412  <button type="button" id="ui-contact-mnav" class="mnav-contact">문의하기</button>
413</nav>
414</header>
415<div class="wrap">
416  <aside class="nav-tree"><input type="checkbox" class="nav-tree-cb" id="nav-tree-cb"><label for="nav-tree-cb" class="nav-tree-toggle">전체 문서 목록</label><div class="nav-tree-body"><h3>지식센터</h3><ul class="tree">
417  <li><a href="/kb">전체 인덱스</a></li>
418  <li>
418<details open><summary><a href="/kb/solutions">솔루션</a> <b>39</b></summary><ul><li><details><summary>패키지 (PKG) <b>6</b></summary><ul><li><a href="/kb/solutions/amp-agency-platform">AMP™ 광고대행사 플랫폼</a></li><li><a href="/kb/solutions/bizspring-daas">BizSpring DaaS</a></li><li><a href="/kb/solutions/bmp-industry-set">BMP 산업군별 솔루션 세트</a></li><li><a href="/kb/solutions/commerce-studio">커머스 스튜디오</a></li><li><a href="/kb/solutions/growthplatform-ai-crm">GrowthPlatform AI CRM(CXM)</a></li><li><a href="/kb/solutions/logger-rt-collect">LOGGER RT-Collect 실시간 고객행동로그 수집</a></li></ul></details></li><li><details open><summary>솔루션 (SOL) <b>22</b></summary><ul><li><a href="/kb/solutions/ai-agentic-app" aria-current="page" style="color:var(--accent);font-weight:700">AI Agentic App</a></li><li><a href="/kb/solutions/air-saas-copilot">AIR SaaS Copilot</a></li><li><a href="/kb/solutions/bizactioner">BizActioner 외부매체 액션 라우터</a></li><li><a href="/kb/solutions/bizspring-lift-iroas">BizSpring LIFT™ 기여성과 분석</a></li><li><a href="/kb/solutions/bizspring-tag-manager">비즈스프링 태그매니저</a></li><li><a href="/kb/solutions/content-launcher">ContentLauncher</a></li><li><a href="/kb/solutions/cts-conversion-tracking">CTS™ 전환추적</a></li><li><a href="/kb/solutions/cvtr">CVTR Conversion To Revenue</a></li><li><a href="/kb/solutions/digo-influencer">DIGO 인플루언서 플랫폼</a></li><li><a href="/kb/solutions/ga4-saas">GA4 SaaS</a></li><li><a href="/kb/solutions/geocare-ai">GEOcare.ai</a></li><li><a href="/kb/solutions/intranet-private-ad-system">인트라넷·폐쇄형 사내 시스템 전용 광고 시스템</a></li><li><a href="/kb/solutions/lift-api-gateway">LIFT API Gateway</a></li><li><a href="/kb/solutions/logger">LOGGER</a></li><li><a href="/kb/solutions/mdp-media-data-platform">mDP 미디어데이터플랫폼</a></li><li><a href="/kb/solutions/premium-geo-brand-hub">Premium GEO 브랜드허브</a></li><li><a href="/kb/solutions/sa-autobid-dsp">SA 자동입찰·비즈스프링 DSP</a></li><li><a href="/kb/solutions/smartdash-ai">SmartDash.ai</a></li><li><a href="/kb/solutions/smartfeed">SmartFeed (FeedMaker)</a></li><li><a href="/kb/solutions/tagman">TagMan 태그 매니지먼트 서비스</a></li><li><a href="/kb/solutions/tam-media-ads">TAM 광고매체광고</a></li><li><a href="/kb/solutions/utm-lift-tracker">UTM/LIFT Tracker</a></li></ul></details></li><li><details><summary>단위솔루션 (UNIT) <b>5</b></summary><ul><li><a href="/kb/solutions/ai-creative-generation">AI 광고소재 자동생성</a></li><li><a href="/kb/solutions/air-integrated-reporting">AIR 매체통합 리포팅</a></li><li><a href="/kb/solutions/onsite-marketing">온사이트 마케팅</a></li><li><a href="/kb/solutions/report-automation">보고서자동화</a></li><li><a href="/kb/solutions/web-app-behavior-collection">웹/앱 행동데이터 수집</a></li></ul></details></li><li><details><summary>레퍼런스 (REF) <b>4</b></summary><ul><li><a href="/kb/solutions/gmp-api-mcp-hub">GMP 전사 API·MCP 허브</a></li><li><a href="/kb/solutions/gp-agent-runtime">gp-agent 에이전트 런타임</a></li><li><a href="/kb/solutions/growthplatform-reference">GrowthPlatform™ 기술 레퍼런스 v3.0</a></li><li><a href="/kb/solutions/mcp-function-catalog">MCP·API 기능 카탈로그</a></li></ul></details></li><li><details><summary>그 밖 <b>2</b></summary><ul><li><a href="/kb/solutions/chatad">ChatAd — OpenAI 광고 10분 셀프서비스</a></li><li><a href="/kb/solutions/medical-pack">메디컬 팩 — 솔루션 구성</a></li></ul></details></li></ul></details></li>
419  <li><details><summary><a href="/kb/tcr">TCR 프레임워크</a> <b>16</b></summary><ul><li><details><summary>T 발견·트래픽 <b>4</b></summary><ul><li><a href="/kb/tcr/t-1-1">T-1-1 브랜드 지식 자산화 — TCR 활동</a></li><li><a href="/kb/tcr/t-1-2">T-1-2 AI 검색·GEO 노출 — TCR 활동</a></li><li><a href="/kb/tcr/t-1-3">T-1-3 유입·행동 데이터 수집 — TCR 활동</a></li><li><a href="/kb/tcr/t-1-4">T-1-4 유입 채널 구조 분석 — TCR 활동</a></li></ul></details></li><li>
419<details><summary>C 전환 <b>4</b></summary><ul><li><a href="/kb/tcr/c-2-1">C-2-1 매체 운영·입찰 최적화 — TCR 활동</a></li><li><a href="/kb/tcr/c-2-2">C-2-2 전환 신호 전송 — TCR 활동</a></li><li><a href="/kb/tcr/c-2-3">C-2-3 콘텐츠·소재 전환력 — TCR 활동</a></li><li><a href="/kb/tcr/c-2-4">C-2-4 온사이트 전환 개입 — TCR 활동</a></li></ul></details></li><li><details><summary>R 관계·재구매 <b>4</b></summary><ul><li><a href="/kb/tcr/r-3-1">R-3-1 재방문 유도 — TCR 활동</a></li><li><a href="/kb/tcr/r-3-2">R-3-2 측정 정합성 유지 — TCR 활동</a></li><li><a href="/kb/tcr/r-3-3">R-3-3 고객 관계 심화·커뮤니티 — TCR 활동</a></li><li><a href="/kb/tcr/r-3-4">R-3-4 재구매·LTV 자동화 — TCR 활동</a></li></ul></details></li><li><details><summary>O 최적화·확장 <b>4</b></summary><ul><li><a href="/kb/tcr/o-x-1">O-X-1 성과 원인 분석 — TCR 활동</a></li><li><a href="/kb/tcr/o-x-2">O-X-2 예산·자원 재배분 — TCR 활동</a></li><li><a href="/kb/tcr/o-x-3">O-X-3 리포팅 자동화 — TCR 활동</a></li><li><a href="/kb/tcr/o-x-4">O-X-4 데이터 개방·AI 연동 — TCR 활동</a></li></ul></details></li></ul></details></li>
420  <li><details><summary><a href="/kb/cases">사례 / 유즈케이스</a> <b>75</b></summary><ul><li><a href="/kb/case/blog-ad-behavior-data-dashboard">광고 성과 · 온라인 행동 데이터 통합 대시보드 — Looker Studio로 수기 보고 없애기</a></li><li><a href="/kb/case/blog-ad-data-pipeline-automation">광고 데이터 파이프라인 완전 자동화 — 매체 API 연동으로 수작업 리포팅 제거</a></li><li><a href="/kb/case/blog-ad-spend-monitoring-alerts">매체별 광고비 소진 모니터링 알람 + 성과 예측 — 광고 운영 자동화</a></li><li><a href="/kb/case/blog-ai-ad-management-platform">통합 광고 관리 플랫폼과 AI 기술 접목으로 광고 운영 생산성 향상</a></li><li><a href="/kb/case/blog-cart-abandonment-behavior-analysis">장바구니 이후 행동 패턴 분석으로 이탈률 개선과 재방문 유도</a></li><li><a href="/kb/case/blog-cdp-accessibility-customer-experience">CDP 접근성 개선을 통한 고객 경험 최적화 — 데이터 핸들링 역량 강화로 A-ha 모먼트 발굴</a></li><li><a href="/kb/case/blog-cohort-selling-point-ltv">신규/기존 고객 코호트 분석으로 셀링 포인트 발굴 — LTV 향상</a></li><li><a href="/kb/case/blog-conversion-fraud-verification">전환 데이터 급증 원인 진단 — 매크로/Fraud 여부를 로그 단위로 검증하기</a></li><li><a href="/kb/case/blog-credit-score-based-ad-targeting">신용 점수 기반 맞춤형 타겟팅으로 광고 효율 향상 — 민감정보 제약을 우회한 리타겟팅 설계</a></li><li><a href="/kb/case/blog-crm-online-behavior-integration-card-issuer">CRM과 온라인 행동 데이터 통합으로 개인화 마케팅 환경 구축 — 카드사의 빅데이터 기반 마련</a></li><li><a href="/kb/case/blog-customer-journey-cohort-ltv">고객 여정 코호트 분석으로 LTV 레버 발굴 — 데이터 문화 확산까지</a></li><li><a href="/kb/case/blog-customer-profiling-non-purchasers">이탈 고객 프로파일링으로 재구매 유도 — 미구매 세그먼트 세분화</a></li><li><a href="/kb/case/blog-d2c-revenue-driver-analysis">글로벌 D2C 매출 상승 요인 분석 — 국가별 운영 가이드 표준화</a></li><li><a href="/kb/case/blog-data-cleansing-customer-trait-design">데이터 클렌징과 타겟팅 Trait 설계 — 적재된 데이터를 마케팅 자산으로</a></li><li><a href="/kb/case/blog-digital-library-content-personalization">디지털 도서관 콘텐츠 개인화 추천으로 사용자 참여도 개선</a></li><li><a href="/kb/case/blog-first-purchase-conversion-custom-metric">성과 측정 지표 확장으로 광고 매체별 첫구매 전환율 분석</a></li><li><a href="/kb/case/blog-ga4-bigquery-crm-integration">GA4 원천 데이터와 CRM 데이터 연동을 통한 맞춤형 마케팅 실현 — 회원 ID 기반 통계 설계</a></li><li><a href="/kb/case/blog-ga4-cafe24-member-order-integration">GA4 행동 데이터와 카페24 회원·주문 데이터 통합 분석 — User-ID 매칭으로 세그먼트 정밀화</a></li><li><a href="/kb/case/blog-ga4-loan-conversion-online-offline-tracking">GA4 온라인 대출 조회 → 오프라인 최종승인 전환 추적 및 리타겟팅 최적화</a></li><li><a href="/kb/case/blog-ga4-subscription-churn-measurement-protocol">GA4 측정 프로토콜로 구독 서비스 이탈 추적 체계 구축</a></li><li><a href="/kb/case/blog-geo-optimization-generative-ai-visibility">생성형 AI 응답 속 서비스 노출 강화 — GEO 최적화 진단 및 개선 사례</a></li><li><a href="/kb/case/blog-hospital-ga4-offline-online-integration">GA4 측정 프로토콜로 온·오프라인 데이터 통합 — 진료 예약 이탈 고객 리타겟팅</a></li><li><a href="/kb/case/blog-hospital-sensitive-data-retargeting-tam">민감정보 제약 속 병원 리타겟팅 — TAM으로 Google·Meta 정교 타겟팅 구현</a></li><li><a href="/kb/case/blog-large-scale-ad-data-platform">대규모 광고/로그 데이터 핸들링을 위한 맞춤형 광고 관리 플랫폼 구축</a></li><li><a href="/kb/case/blog-local-news-ai-content-recommendation">AI 콘텐츠 추천으로 지역 언론사 충성 독자 확보 — 체류시간·구독률 동반 상승</a></li><li><a href="/kb/case/blog-multi-channel-ad-data-pipeline">다수 광고 매체 성과 데이터 취합 자동화 — API 파이프라인으로 수작업 결합 없애기</a></li><li><a href="/kb/case/blog-online-offline-conversion-tracking">GA4 + BigQuery로 온라인-오프라인 전환 연결 — 이탈 원인 분석과 리타겟팅</a></li><li><a href="/kb/case/blog-online-offline-integration-install-retargeting">온·오프라인 데이터 통합 분석으로 설치형 서비스 이탈 고객 리타겟팅</a></li><li><a href="/kb/case/blog-onsite-exit-point-optimization">자사몰 이탈 포인트와 관심 콘텐츠 분석으로 고객 경험 최적화</a></li><li><a href="/kb/case/blog-personalization-campaign-analytics">개인화 캠페인 성과 분석 체계 구축 — GA4 360 기반 시나리오·영역별 최적화</a></li><li><a href="/kb/case/blog-redirect-referrer-loss-prevention">리다이렉트로 인한 유입 경로(Referrer) 유실 방지</a></li><li><a href="/kb/case/blog-referrer-domain-data-validation">유입 검색어·전환 도메인 데이터 정합성 검증 — 오탐지 원인 규명과 스크립트 보완</a></li><li><a href="/kb/case/blog-search-ad-auto-bidding">
420검색광고 자동입찰 도입 — 수동 운영 리소스를 전략 업무로 전환</a></li><li><a href="/kb/case/blog-seasonal-promotion-retention-analysis">시즌 프로모션 리텐션 효과 검증 — 코호트로 찾은 '7일 이내' 구매 패턴</a></li><li><a href="/kb/case/blog-subscription-marketing-budget-ltv">구독 서비스 마케팅 예산 최적화 — LTV 기반 채널·세그먼트 재배분</a></li><li><a href="/kb/case/blog-tcommerce-funnel-data-pipeline">고객 Funnel 데이터 파이프라인 구축 — 전사 행동·주문·캠페인 데이터 실시간 통합</a></li><li><a href="/kb/case/blog-transit-card-data-dmp">서로 다른 두 종류의 소비자 데이터를 결합한 관심사 기반 광고 타겟팅 구축</a></li><li><a href="/kb/case/blog-unmanned-store-churn-prediction">고객·점포 군집 분석과 이탈 예측 모델링으로 유지율 관리 자동화</a></li><li><a href="/kb/case/blog-web-app-unified-analysis-user-id">Web/App 통합 분석 View 구축으로 App 중심 사용자 경험 강화</a></li><li><a href="/kb/case/clinic-geo">병·의원 GEO 최적화 — AI 검색에서 먼저 인용되기</a></li><li><a href="/kb/case/contract-erp-automation">계약서 → ERP → 발주 자동화</a></li><li><a href="/kb/case/dogfooding-ax">사내 AX 도그푸딩 — 우리에게 먼저 적용합니다</a></li><li><a href="/kb/case/ga4-taxonomy">GA4 이벤트 택소노미 표준화 — 세팅 2~3주 → 1~2일</a></li><li><a href="/kb/case/global-geo-managed">해외향 관리형 GEO 6개월 운영</a></li><li><a href="/kb/case/multibrand-dashboard">멀티브랜드 광고 통합 실시간 대시보드</a></li><li><a href="/kb/case/onprem-ai-agent">온프레미스 AI 에이전트 환경 구축</a></li><li><a href="/kb/case/weekly-report-automation">주간 보고 취합 자동화 — 8시간 → 20분</a></li><li><a href="/kb/cases/intranet-private-ad-system">폐쇄형 사내 시스템 A사 — 인트라넷 광고 운영 전용 시스템 구축</a></li><li><a href="/kb/scenario/agency-unified-reporting">광고주 20곳, 주간 보고와 예산 재배분을 하루가 아니라 회의 전에</a></li><li><a href="/kb/scenario/app-server-side-conversion">쿠키가 사라진 자리, 서버 전환(CAPI)으로 매체 최적화를 되살리다</a></li><li><a href="/kb/scenario/b2b-technical-geo">영업사원 없이도, 엔지니어의 질문에 24시간 답하는 회사가 됐다</a></li><li><a href="/kb/scenario/beauty-competitor-response">경쟁사가 메인 카피를 바꾼 당일, 우리는 대응 콘텐츠를 내보냈다</a></li><li><a href="/kb/scenario/clinic-ai-citation">&quot;시술 부작용&quot;을 검색하는 환자에게, AI가 우리 병원 답을 읽어주기까지</a></li><li><a href="/kb/scenario/commerce-product-geo-landing">상품 3,000개 쇼핑몰이 상품마다 'AI가 읽는 페이지'를 갖게 된 방법</a></li><li><a href="/kb/scenario/ecommerce-incremental-budget">쇼핑광고 피드 낭비를 걷어내고, 증분 매출로 예산을 다시 짜다</a></li><li><a href="/kb/scenario/education-trend-timing">'AI 자격증' 검색이 뜨기 시작한 주에, 강의 페이지와 콘텐츠가 먼저 준비됐다</a></li><li><a href="/kb/scenario/franchise-central-management">지점 수십 곳의 검색광고 입찰과 소재를, 본사 한 명이 관리</a></li><li><a href="/kb/scenario/healthfood-white-space">경쟁사가 '유산균 100억'을 외칠 때, 데이터는 '생존율'을 가리켰다</a></li><li><a href="/kb/usecase/commerce-pack-asset">광고를 끄면 멈춘다 — 커머스 스튜디오</a></li><li><a href="/kb/usecase/commerce-pack-channel">채널마다 다시 만든다 — 커머스 스튜디오</a></li><li><a href="/kb/usecase/commerce-pack-make">만들 사람이 없다 — 커머스 스튜디오</a></li><li><a href="/kb/usecase/commerce-pack-proof">뭐가 효과인지 모른다 — 커머스 스튜디오</a></li><li><a href="/kb/usecase/commerce-pack-scale">상품이 많아 손이 안 닿는다 — 커머스 스튜디오</a></li><li><a href="/kb/usecase/commerce-pack-video">영상은 엄두가 안 난다 — 커머스 스튜디오</a></li><li><a href="/kb/usecase/medical-pack-ad-dependency">광고 의존 탈피 — 메디컬 팩</a></li><li><a href="/kb/usecase/medical-pack-ai-search">AI 탐색 대응 (GEO) — 메디컬 팩</a></li><li><a href="/kb/usecase/medical-pack-attribution">성과 불투명 — 메디컬 팩</a></li><li><a href="/kb/usecase/medical-pack-compliance">의료광고법 리스크 — 메디컬 팩</a></li><li><a href="/kb/usecase/medical-pack-content-load">콘텐츠 마케팅 수익성·효율화 — 메디컬 팩</a></li><li><a href="/kb/usecases/ai-agent-on-data">AI 에이전트가 우리 데이터를 쓰게 하기</a></li><li><a href="/kb/usecases/ai-answer-invisible">ChatGPT 답변에 우리 브랜드가 안 나올 때</a></li><li><a href="/kb/usecases/broken-conversion-tracking">전환 추적이 자꾸 깨질 때</a></li><li><a href="/kb/usecases/inhouse-behavior-log">행동로그를 인하우스로 직접 수집하기</a></li><li><a href="/kb/usecases/report-20-hours">광고 리포트에 매주 20시간 쓰는 대행사</a></li><li><a href="/kb/usecases/repurchase-ltv">재구매율과 LTV를 올리고 싶을 때</a></li></ul></details></li>
421  <li><a href="/kb/demos">
421샘플데모 <b>23</b></a></li>
422  <li><a href="/kb/gallery">스크린샷 자료실 <b>128</b></a></li>
423  <li><a href="/kb/materials">공개 자료실</a></li>
424  <li><details><summary>산업군 <b>8</b></summary><ul><li><a href="/kb/industries/agency">광고대행사 마케팅 솔루션</a></li><li><a href="/kb/industries/brand">브랜드기업 마케팅 솔루션</a></li><li><a href="/kb/industries/cafe24">Cafe24 입점몰 마케팅 솔루션</a></li><li><a href="/kb/industries/clinic">병의원·치과·한의원 마케팅 솔루션</a></li><li><a href="/kb/industries/d2c">D2C 이커머스 마케팅 솔루션</a></li><li><a href="/kb/industries/education">교육 마케팅 솔루션</a></li><li><a href="/kb/industries/finance">금융·증권 마케팅 솔루션</a></li><li><a href="/kb/industries/telecom">통신 마케팅 솔루션</a></li></ul></details></li>
425  <li><details><summary><a href="/kb/glossary">용어사전</a> <b>100</b></summary><ul><li><details><summary>ㄱ-ㄴ-ㄷ <b>13</b></summary><ul><li><a href="/kb/glossary/privacy-compliance">개인정보보호 컴플라이언스</a></li><li><a href="/kb/glossary/subscription-commerce">구독 커머스</a></li><li><a href="/kb/glossary/growth-loop">그로스 루프</a></li><li><a href="/kb/glossary/growth-hacking">그로스해킹</a></li><li><a href="/kb/glossary/attribution">기여분석 (Attribution)</a></li><li><a href="/kb/glossary/no-code">노코드·로우코드</a></li><li><a href="/kb/glossary/dark-pattern">다크 패턴</a></li><li><a href="/kb/glossary/dark-funnel">다크퍼널</a></li><li><a href="/kb/glossary/data-governance">데이터 거버넌스</a></li><li><a href="/kb/glossary/data-warehouse">데이터 웨어하우스·데이터 레이크</a></li><li><a href="/kb/glossary/data-clean-room">데이터 클린룸</a></li><li><a href="/kb/glossary/data-pipeline">데이터 파이프라인</a></li><li><a href="/kb/glossary/data-driven-marketing">데이터드리븐 마케팅</a></li></ul></details></li><li><details><summary>ㄹ-ㅁ-ㅂ <b>12</b></summary><ul><li><a href="/kb/glossary/live-commerce">라이브커머스</a></li><li><a href="/kb/glossary/lookalike-audience">룩얼라이크 오디언스</a></li><li><a href="/kb/glossary/lead-nurturing">리드 너처링</a></li><li><a href="/kb/glossary/reverse-etl">리버스 ETL</a></li><li><a href="/kb/glossary/retargeting">리타게팅·리마케팅</a></li><li><a href="/kb/glossary/retail-media-network">리테일 미디어 네트워크 (RMN)</a></li><li><a href="/kb/glossary/retention">리텐션 (잔존율)</a></li><li><a href="/kb/glossary/martech">마테크 (MarTech)</a></li><li><a href="/kb/glossary/multi-agent">멀티에이전트 시스템</a></li><li><a href="/kb/glossary/vertical-ai">버티컬 AI</a></li><li><a href="/kb/glossary/vector-search">벡터 검색</a></li><li><a href="/kb/glossary/brand-safety">브랜드 세이프티</a></li></ul></details></li><li><details><summary>ㅅ-ㅇ-ㅈ <b>21</b></summary><ul><li><a href="/kb/glossary/server-side-tagging">서버사이드 태깅</a></li><li><a href="/kb/glossary/server-side-gtm">서버사이드 GTM</a></li><li><a href="/kb/glossary/session-replay">세션 리플레이</a></li><li><a href="/kb/glossary/creative-fatigue">소재 피로도</a></li><li><a href="/kb/glossary/short-form">숏폼 콘텐츠</a></li><li><a href="/kb/glossary/semantic-search">시맨틱 검색</a></li><li><a href="/kb/glossary/real-time-personalization">실시간 개인화</a></li><li><a href="/kb/glossary/streaming-data">실시간 스트리밍 데이터</a></li><li><a href="/kb/glossary/agent-orchestration">에이전트 오케스트레이션</a></li><li><a href="/kb/glossary/agentic-commerce">에이전틱 커머스</a></li><li><a href="/kb/glossary/agentic-ai">에이전틱 AI (Agentic AI)</a></li><li><a href="/kb/glossary/entity-seo">엔티티 SEO</a></li><li><a href="/kb/glossary/omnichannel">옴니채널</a></li><li><a href="/kb/glossary/exit-intent">이탈 의도 (Exit-Intent)</a></li><li><a href="/kb/glossary/citability">인용 가능성 (Citability)</a></li><li><a href="/kb/glossary/incrementality">인크리멘탈리티 (증분효과)</a></li><li><a href="/kb/glossary/embedding">임베딩</a></li><li><a href="/kb/glossary/conversion-api">전환 API (CAPI)</a></li><li><a href="/kb/glossary/zero-click-search">제로클릭 검색</a></li><li><a href="/kb/glossary/zero-party-data">제로파티 데이터</a></li><li><a href="/kb/glossary/knowledge-graph">지식 그래프</a></li></ul></details></li><li>
425<details><summary>ㅊ-ㅋ-ㅌ <b>9</b></summary><ul><li><a href="/kb/glossary/answer-box">추천 스니펫 (피처드 스니펫)</a></li><li><a href="/kb/glossary/commerce-media">커머스 미디어</a></li><li><a href="/kb/glossary/consent-management">컨센트 매니지먼트 (동의 관리)</a></li><li><a href="/kb/glossary/contextual-targeting">컨텍스추얼 타겟팅</a></li><li><a href="/kb/glossary/context-engineering">컨텍스트 엔지니어링</a></li><li><a href="/kb/glossary/core-web-vitals">코어 웹 바이탈</a></li><li><a href="/kb/glossary/cohort-analysis">코호트 분석</a></li><li><a href="/kb/glossary/cookieless">쿠키리스</a></li><li><a href="/kb/glossary/creator-economy">크리에이터 이코노미</a></li></ul></details></li><li><details><summary>ㅍ-ㅎ <b>11</b></summary><ul><li><a href="/kb/glossary/fine-tuning">파인튜닝</a></li><li><a href="/kb/glossary/funnel-analysis">퍼널 분석</a></li><li><a href="/kb/glossary/first-party-data">퍼스트파티 데이터</a></li><li><a href="/kb/glossary/privacy-sandbox">프라이버시 샌드박스</a></li><li><a href="/kb/glossary/programmatic-ads">프로그래매틱 광고</a></li><li><a href="/kb/glossary/prompt-engineering">프롬프트 엔지니어링</a></li><li><a href="/kb/glossary/hallucination">할루시네이션 (환각)</a></li><li><a href="/kb/glossary/headless-commerce">헤드리스 커머스</a></li><li><a href="/kb/glossary/holdout-test">홀드아웃 테스트</a></li><li><a href="/kb/glossary/human-in-the-loop">휴먼인더루프 (Human-in-the-Loop)</a></li><li><a href="/kb/glossary/heatmap">히트맵</a></li></ul></details></li><li><details><summary>A-B-C <b>8</b></summary><ul><li><a href="/kb/glossary/ab-test">A/B 테스트</a></li><li><a href="/kb/glossary/aeo">AEO (답변엔진 최적화)</a></li><li><a href="/kb/glossary/ai-guardrail">AI 가드레일</a></li><li><a href="/kb/glossary/ai-slop">AI 슬롭 (AI Slop)</a></li><li><a href="/kb/glossary/ai-agent">AI 에이전트</a></li><li><a href="/kb/glossary/ai-overview">AI 오버뷰 (AI Overviews)</a></li><li><a href="/kb/glossary/ax">AX (AI 전환)</a></li><li><a href="/kb/glossary/cdp">CDP (고객데이터플랫폼)</a></li></ul></details></li><li><details><summary>D-E-F <b>6</b></summary><ul><li><a href="/kb/glossary/daas">DaaS (Data as a Service)</a></li><li><a href="/kb/glossary/dco">DCO (다이나믹 크리에이티브 최적화)</a></li><li><a href="/kb/glossary/dmp">DMP (데이터관리플랫폼)</a></li><li><a href="/kb/glossary/dsp">DSP (수요자 측 플랫폼)</a></li><li><a href="/kb/glossary/dx">DX (디지털 전환)</a></li><li><a href="/kb/glossary/etl-elt">ETL·ELT</a></li></ul></details></li><li><details><summary>G-H-I <b>3</b></summary><ul><li><a href="/kb/glossary/geo">GEO (생성형 엔진 최적화)</a></li><li><a href="/kb/glossary/idfa">IDFA·광고식별자</a></li><li><a href="/kb/glossary/itp">ITP (지능형 추적 방지)</a></li></ul></details></li><li><details><summary>J-K-L <b>2</b></summary><ul><li><a href="/kb/glossary/llms-txt">llms.txt</a></li><li><a href="/kb/glossary/ltv">LTV (고객생애가치)</a></li></ul></details></li><li><details><summary>M-N-O <b>5</b></summary><ul><li><a href="/kb/glossary/mcp">MCP (Model Context Protocol)</a></li><li><a href="/kb/glossary/mdm">MDM (마스터데이터관리)</a></li><li><a href="/kb/glossary/mmm">MMM (마케팅믹스모델링)</a></li><li><a href="/kb/glossary/mta">MTA (멀티터치 어트리뷰션)</a></li><li><a href="/kb/glossary/nl2sql">NL2SQL</a></li></ul></details></li><li><details><summary>P-Q-R <b>3</b></summary><ul><li><a href="/kb/glossary/plg">PLG (제품주도성장)</a></li><li><a href="/kb/glossary/paid-owned-earned">POE 미디어 (Paid·Owned·Earned)</a></li><li><a href="/kb/glossary/rag">RAG (검색증강생성)</a></li></ul></details></li><li><details><summary>S-T-U <b>7</b></summary><ul><li><a href="/kb/glossary/sdui">SDUI (서버 주도 UI)</a></li><li><a href="/kb/glossary/skan">SKAdNetwork (SKAN)</a></li><li><a href="/kb/glossary/sllm">sLLM (소형언어모델)</a></li><li><a href="/kb/glossary/ssp">SSP (공급자 측 플랫폼)</a></li><li><a href="/kb/glossary/ssr">SSR (서버사이드 렌더링)</a></li><li><a href="/kb/glossary/tcr">TCR 프레임워크</a></li><li><a href="/kb/glossary/ugc">UGC (사용자생성콘텐츠)</a></li></ul></details></li></ul></details></li>
426  <li>
426<details><summary>매뉴얼 · 기술자료 <b>92</b></summary><ul><li><details><summary>GEOcare <b>24</b></summary><ul><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-01-플랫폼-개요">01 플랫폼 개요</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-02-v2-대비-달라진-점">02 V2 대비 달라진 점</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-03-grand-파이프라인-원스텝">03 GRAND 파이프라인 (원스텝)</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-04-geo-상황실">04 GEO 상황실</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-05-geo-에이전트">05 GEO 에이전트</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-06-ai-응답-추적">06 AI 응답 추적</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-07-임팩트-분석">07 임팩트 분석</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-08-활동-타임라인">08 활동 타임라인</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-09-알림-센터">09 알림 센터</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-10-g1-진입-도메인">10 G1 · 진입·도메인</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-11-g2-사이트-geo-진단">11 G2 · 사이트 GEO 진단</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-12-g3-ai-점유율-som">12 G3 · AI 점유율(SoM)</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-13-g4-구조화-데이터-송출">13 G4 · 구조화 데이터 송출</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-14-g5-분석-리포트">14 G5 · 분석 리포트</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-15-g6-모니터링">15 G6 · 모니터링</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-16-g7-알림">16 G7 · 알림</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-17-설정-계정">17 설정·계정</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-18-mcp-연결-ai-에이전트용">18 MCP 연결 (AI 에이전트용)</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-19-rest-api-개발자-시스템-연동용">19 REST API (개발자·시스템 연동용)</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-20-플랜별-기능-비교">20 플랜별 기능 비교</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-21-상황별-활용-가이드">21 상황별 활용 가이드</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-22-사용자-faq">22 사용자 FAQ</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-23-용어사전">23 용어사전</a></li><li><a href="/kb/ref/manual/geocare-사용자-매뉴얼-geo-care-v3">GEO CARE.V3</a></li></ul></details></li><li><details><summary>콘텐츠 런처 <b>25</b></summary><ul><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-내-계정-my-account">내 계정 (My Account)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-네이버-블로그">네이버 블로그</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-리믹스-마스터">리믹스 마스터</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-리믹스-작업대-워크벤치">리믹스 작업대(워크벤치)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-소스-sources">소스 (Sources)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-시장-경쟁사-모니터-market-monitor">시장·경쟁사 모니터 (Market Monitor)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-에피소드-편집기">에피소드 편집기</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-유틸리티-utilities">유틸리티 (Utilities)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-자사-위키-bizspring-wiki">자사 위키(BizSpring Wiki)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-채널-channels">채널 (Channels)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-콘텐츠-가이드-content-guide">콘텐츠 가이드 (Content Guide)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-트리거-인박스-trigger-inbox">트리거 인박스 (Trigger Inbox)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-프롬프트-prompts">프롬프트 (Prompts)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-플러그인-plugins">플러그인 (Plugins)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-ai-사용량-ai-usage">AI 사용량 (AI Usage)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-ai-모델-관리-ai-models">AI·모델 관리 (AI Models)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-api-연결-rest-api">
426API 연결 (REST API)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-insight-성과">Insight (성과)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-launch-발행">Launch (발행)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-linkedin">LinkedIn</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-live-라이브-콘텐츠">Live (라이브 콘텐츠)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-mcp-연결">MCP 연결</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-notion">Notion</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-remix-리믹스-목록">Remix (리믹스 목록)</a></li><li><a href="/kb/ref/manual/content-launcher-콘텐츠-런처-wordpress-self-hosted">WordPress (self-hosted)</a></li></ul></details></li><li><details><summary>Growth Platform™ <b>21</b></summary><ul><li><a href="/kb/ref/manual/growth-platform-user-guide-고객-구매-여정-cjm">고객 구매 여정(CJM)</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-광고캠페인-예산-플래너-mmm">광고캠페인 예산 플래너(MMM)</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-기본-화면-구성">기본 화면 구성</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-뉴스미디어-통합-대시보드">뉴스미디어 통합 대시보드™</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-마케팅-자동화">마케팅 자동화</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-바이럴-마케팅">바이럴 마케팅™</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-부정-클릭-차단">부정 클릭 차단™</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-분석-스크립트-적용-가이드">분석 스크립트 적용 가이드</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-쇼핑-광고-분석">쇼핑 광고 분석™</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-앱-접근-권한">앱 접근 권한</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-캠페인-이상-징후-예측-alert">캠페인 이상 징후 예측(Alert)</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-admonster">ADMONSTER™</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-ai-광고-소재-생성-및-편집">AI 광고 소재 생성 및 편집</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-air-gpts-알파-버전-이용-가이드">AIR GPTs 알파 버전 이용 가이드</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-air-매체-통합-리포트">AIR™(매체 통합 리포트)</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-gpts-for-growth-platform-시작-가이드">GPTs for Growth Platform 시작 가이드</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-growth-platform-시작하기">Growth Platform™ 시작하기</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-growth-platform-주요-서비스">Growth Platform™ 주요 서비스</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-manager-console">MANAGER CONSOLE</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-ncp에서-카카오-채널-정보-확인하기">NCP에서 카카오 채널 정보 확인하기</a></li><li><a href="/kb/ref/manual/growth-platform-user-guide-tam">TAM™</a></li></ul></details></li><li><details><summary>BizSpring AMP <b>7</b></summary><ul><li><a href="/kb/ref/manual/bizspring-amp-user-guide-기본-화면-구성">기본 화면 구성</a></li><li><a href="/kb/ref/manual/bizspring-amp-user-guide-앱-접근-권한">앱 접근 권한</a></li><li><a href="/kb/ref/manual/bizspring-amp-user-guide-admon">ADMON</a></li><li><a href="/kb/ref/manual/bizspring-amp-user-guide-시작하기">BizSpring AMP 시작하기</a></li><li><a href="/kb/ref/manual/bizspring-amp-user-guide-주요-서비스">BizSpring AMP 주요 서비스</a></li><li><a href="/kb/ref/manual/bizspring-amp-user-guide-cts">CTS</a></li><li><a href="/kb/ref/manual/bizspring-amp-user-guide-logger">LOGGER</a></li></ul></details></li><li>
426<details><summary>어트리뷰션 CTS <b>2</b></summary><ul><li><a href="/kb/ref/manual/attribution-cts-guide-기여-분석">기여 분석</a></li><li><a href="/kb/ref/manual/attribution-cts-guide-리포트-가이드북">리포트 가이드북</a></li></ul></details></li><li><details><summary>스마트피드 <b>1</b></summary><ul><li><a href="/kb/ref/manual/비즈스프링-스마트피드-smartfeed-비즈스프링-스마트피드-smartfeed">비즈스프링 스마트피드(SmartFeed)</a></li></ul></details></li><li><details><summary>BizSpring AIR™ API <b>5</b></summary><ul><li><a href="/kb/ref/manual/bizspring-air-api-air-reporting-api">AIR™ Reporting API</a></li><li><a href="/kb/ref/manual/bizspring-air-api-api-사용을-위한-순서">API 사용을 위한 순서</a></li><li><a href="/kb/ref/manual/bizspring-air-api-auth-token-인증-토큰-발행">Auth Token(인증 토큰) 발행</a></li><li><a href="/kb/ref/manual/bizspring-air-api-bizspring-air-api-소개">BizSpring AIR™ API 소개</a></li><li><a href="/kb/ref/manual/bizspring-air-api-growth-platform-계정-생성">Growth Platform™ 계정 생성</a></li></ul></details></li><li><details><summary>Google OAuth 연동 API <b>1</b></summary><ul><li><a href="/kb/ref/manual/bizspring-google-oauth-연동-api-google-연동-요청">Google 연동 요청</a></li></ul></details></li><li><details><summary>Looker Connector <b>1</b></summary><ul><li><a href="/kb/ref/manual/looker-connector-사용-가이드-growth-platform-connector-for-looker-studio">Growth Platform Connector for Looker Studio</a></li></ul></details></li><li><details><summary>데이터 전송 서비스 <b>5</b></summary><ul><li><a href="/kb/ref/manual/비즈스프링-데이터-전송-서비스-가이드-비즈스프링-데이터-전송-서비스-가이드">비즈스프링 데이터 전송 서비스 가이드</a></li><li><a href="/kb/ref/manual/비즈스프링-데이터-전송-서비스-가이드-자주-묻는-질문">자주 묻는 질문</a></li><li><a href="/kb/ref/manual/guide-bigquery-권한-부여-bigquery-권한-부여">BigQuery 권한 부여</a></li><li><a href="/kb/ref/manual/비즈스프링-데이터-전송-서비스-가이드-google-bigquery">BigQuery 접근 권한 부여 방법</a></li><li><a href="/kb/ref/manual/비즈스프링-데이터-전송-서비스-가이드-google-cloud-storage">Google Cloud Storage</a></li></ul></details></li></ul></details></li>
427  <li><details><summary>계열 사이트 자료 <b>1</b></summary><ul><li><details><summary>인트렌치컨설팅 <b>1</b></summary><ul><li><a href="/kb/ref/web/entrench-consulting-com/tagman-tagman">TagMan - TagMan</a></li></ul></details></li></ul></details></li>
428  <li><details><summary>요금 안내 <b>3</b></summary><ul><li><a href="/kb/pricing/commerce-studio">커머스 스튜디오(Commerce Studio) 요금제 (공식)</a></li><li><a href="/kb/pricing/content-launcher">콘텐츠런처(Content Launcher) 요금제 (공식)</a></li><li><a href="/kb/pricing/geocare">GEOcare.ai 서비스 요금 (공식)</a></li></ul></details></li>
429  <li><details><summary>그 밖 <b>1</b></summary><ul><li><a href="/kb/ref/web/blog-bizspring-co-kr/geo-웹사이트-주소만-넣으면-진단은-알아서-시작됩니다-bizspring-blog">GEO, 웹사이트 주소만 넣으면, 진단은 알아서 시작됩니다 - BizSpring BLOG</a></li></ul></details></li>
430  <li><a href="/kb/faq">FAQ</a></li>
431  </ul></div></aside>
432  <main><p class="meta">지식센터 / 솔루션</p>
433<h1>AI Agentic App <span class="meta">(AI Agentic App)</span></h1>
434<div class="oneliner">사내 데이터와 업무 도구를 연결해 사람이 대화로 지시하면 실제 작업까지 수행하는 에이전틱 애플리케이션입니다.</div>
435
436<div class="summary"><h2>핵심 요약</h2><ul><li>사내 데이터와 업무 도구를 연결해 사람이 대화로 지시하면 실제 작업까지 수행하는 에이전틱 애플리케이션입니다.</li><li>반복 업무의 대화 기반 처리</li><li>데이터 조회 병목 제거</li><li>AI 답변의 근거 추적 가능</li><li>TCR 커버 활동: O-X-3, O-X-4</li></ul></div>
437<h2 id="s-0-한-줄-정의">한 줄 정의</h2>
438<p>사내 데이터와 업무 도구를 연결해 사람이 대화로 지시하면 실제 작업까지 수행하는 에이전틱 애플리케이션입니다.</p>
439<h2 id="s-1-시장-배경과-문제">시장 배경과 문제</h2>
440<p>AI 도입은 대부분 챗봇 데모에서 멈춥니다. 사내 데이터에 접근하지 못하고 실제 시스템을 실행하지 못하면 업무는 그대로 남습니다.</p>
441<h2 id="s-2-해결-방식">해결 방식</h2>
442<p>MCP 기반 도구 연결로 데이터 조회, 리포트 생성, 캠페인 등록 같은 실제 동작을 수행하는 에이전트를 구성합니다. 응답 안에 표·차트·폼 같은 인터랙티브 위젯을 서버가 정의해 내려주는 SDUI 방식으로 결과를 즉시 조작할 수 있습니다.</p>
443<h2 id="s-3-핵심-기능">핵심 기능</h2>
444<ul>
445<li>MCP 툴 연결과 권한 제어</li>
446<li>RAG 기반 사내 지식 응답과 출처 표기</li>
447<li>SDUI 위젯(표·차트·폼) 렌더링</li>
448<li>작업 로그와 승인 흐름</li>
449</ul>
450<h2 id="s-4-기술-스택과-구성">기술 스택과 구성</h2>
451<p>비즈스프링 GrowthPlatform™ 3계층(수집·정규화·활용) 위에서 동작하며, 퍼스트파티 수집(LOGGER RT-Collect), 표준 지표 사전, API/MCP 개방 계층과 연결됩니다.</p>
452<h2 id="s-5-도입-효과">도입 효과</h2>
453<ul>
454<li>반복 업무의 대화 기반 처리</li>
455<li>데이터 조회 병목 제거</li>
456<li>AI 답변의 근거 추적 가능</li>
457</ul>
458<h2 id="s-6-실증-레퍼런스">실증 레퍼런스</h2>
459<p>반복 업무의 대화 기반 처리: 이 효과는 비즈스프링이 운영하는 GP MySQL 183TB·4.6M행 데이터 기반(AMP 60TB + MA 36TB 3계층 체계) 위에서 AI Agentic App가 커버하는 O-X-3·O-X-4 활동에 실제 적용되며 확인된 결과입니다. 아키텍처 상세: <a href="/kb/solutions/growthplatform-reference">GrowthPlatform™ 기술 레퍼런스</a>.</p>
460<h2 id="s-7-가격-모델">가격 모델</h2>
461<p>
461프로젝트 + 사용량</p>
462<h2 id="s-8-대상-고객">대상 고객</h2>
463<ul>
464<li>브랜드기업</li>
465<li>광고대행사</li>
466<li>금융·증권</li>
467</ul>
468<h2 id="s-9-tcr-매핑">TCR 매핑</h2>
469<p>이 솔루션이 커버하는 TCR 활동과, 각 활동이 해결하는 고객 문제입니다.</p>
470<ul>
471<li><a href="/kb/tcr/o-x-3">O-X-3 리포팅 자동화</a>: 보고서 제작에 매주 수십 시간을 씁니다.</li>
472<li><a href="/kb/tcr/o-x-4">O-X-4 데이터 개방·AI 연동</a>: 데이터를 AI 에이전트와 사내 시스템이 쓰지 못합니다.</li>
473</ul>
474<h2 id="s-10-관련-솔루션">관련 솔루션</h2>
475<ul>
476<li><a href="/kb/solutions/bizspring-daas">BizSpring DaaS</a> — 수집·정제된 마케팅 데이터를 API·MCP로 제공해 사내 시스템과 AI 에이전트가 바로 쓰게 하는 데이터 서비스입니다.</li>
477<li><a href="/kb/solutions/gmp-api-mcp-hub">GMP 전사 API·MCP 허브</a> — 비즈스프링 전 제품의 데이터와 기능을 API와 MCP로 노출하는 전사 통합 허브입니다.</li>
478<li><a href="/kb/solutions/smartdash-ai">SmartDash.ai</a> — 여러 소스의 지표를 한 화면에 모으고 AI가 변화 요약까지 써주는 스마트 대시보드입니다.</li>
479<li><a href="/kb/glossary/mcp">관련 문서</a></li>
480</ul>
481<h2 id="faq">자주 묻는 질문</h2><h3>AI Agentic App는 무엇인가요?</h3><p>사내 데이터와 업무 도구를 연결해 사람이 대화로 지시하면 실제 작업까지 수행하는 에이전틱 애플리케이션입니다.</p><h3>AI Agentic App는 어떤 문제를 해결하나요?</h3><p>AI 도입은 대부분 챗봇 데모에서 멈춥니다. 사내 데이터에 접근하지 못하고 실제 시스템을 실행하지 못하면 업무는 그대로 남습니다.</p><h3>AI Agentic App의 도입 효과는 무엇인가요?</h3><p>반복 업무의 대화 기반 처리 데이터 조회 병목 제거 AI 답변의 근거 추적 가능</p><h3>AI Agentic App는 TCR 프레임워크의 어떤 활동을 커버하나요?</h3><p>O-X-3 리포팅 자동화, O-X-4 데이터 개방·AI 연동</p><h3>AI Agentic App의 가격 모델은 어떻게 되나요?</h3><p>프로젝트 + 사용량</p>
482
483<h2 id="related">관련 문서</h2><ul><li><a href="/kb/solutions/bizspring-daas">BizSpring DaaS</a> — <span class="meta">수집·정제된 마케팅 데이터를 API·MCP로 제공해 사내 시스템과 AI 에이전트가 바로 쓰게 하는 데이터 서비스입니다.</span></li><li><a href="/kb/solutions/gmp-api-mcp-hub">GMP 전사 API·MCP 허브</a> — <span class="meta">비즈스프링 전 제품의 데이터와 기능을 API와 MCP로 노출하는 전사 통합 허브입니다.</span></li><li><a href="/kb/solutions/smartdash-ai">SmartDash.ai</a> — <span class="meta">여러 소스의 지표를 한 화면에 모으고 AI가 변화 요약까지 써주는 스마트 대시보드입니다.</span></li><li><a href="/kb/glossary/mcp">MCP (Model Context Protocol)</a> — <span class="meta">AI 모델이 외부 데이터와 도구를 표준 방식으로 사용하게 해주는 프로토콜입니다.</span></li><li><a href="/kb/tcr/o-x-3">O-X-3 리포팅 자동화 — TCR 활동</a> — <span class="meta">보고서 제작에 매주 수십 시간을 씁니다.</span></li><li><a href="/kb/tcr/o-x-4">O-X-4 데이터 개방·AI 연동 — TCR 활동</a> — <span class="meta">데이터를 AI 에이전트와 사내 시스템이 쓰지 못합니다.</span></li></ul>
484  <h2 id="backlinks">이 문서를 참조하는 문서 (역링크)</h2><ul><li><a href="/kb/glossary/rag">RAG (검색증강생성)</a> — <span class="meta">AI가 답을 지어내지 않고, 신뢰할 수 있는 문서에서 근거를 찾아 ê·¸ 내용을 바탕으로 답하게 하는 방식입니다.</span></li><li><a href="/kb/glossary/context-engineering">컨텍스트 엔지니어링</a> — <span class="meta">AI에게 무엇을, 어떤 순서로, 얼마나 보여줄지를 ì
484„¤ê³„í•´ 답변 품질을 끌어올리는 작업입니다.</span></li><li><a href="/kb/glossary/human-in-the-loop">휴먼인더루프 (Human-in-the-Loop)</a> — <span class="meta">AI가 초안이나 판단을 만들고, 최종 승인이나 실행은 사람이 확인한 뒤 진행하는 운영 방식입니다.</span></li><li><a href="/kb/glossary/agent-orchestration">에이전트 오케스트레이션</a> — <span class="meta">여러 AI 에이전트와 도구 호출의 실행 순서, 재시도, 실패 처리를 관리하는 제어 계층입니다.</span></li><li><a href="/kb/glossary/agentic-ai">에이전틱 AI (Agentic AI)</a> — <span class="meta">단순히 답하는 것을 넘어 목표를 받아 스스로 계획하고 도구를 호출해 실제 작업을 끝까지 수행하는 AI를 말합니다.</span></li><li><a href="/kb/glossary/mcp">MCP (Model Context Protocol)</a> — <span class="meta">AI 모델이 외부 데이터와 도구를 표준 방식으로 사용하게 해주는 프로토콜입니다.</span></li><li><a href="/kb/glossary/ai-agent">AI 에이전트</a> — <span class="meta">사용자의 목표를 받아 정보 조회부터 실행까지 여러 단계를 스스로 판단해 처리하는 AI 소프트웨어입니다.</span></li><li><a href="/kb/glossary/ai-guardrail">AI 가드레일</a> — <span class="meta">AI가 하지 말아야 할 답변이나 행동의 경계를 미리 정해두는 규칙과 장치입니다.</span></li><li><a href="/kb/glossary/sdui">SDUI (서버 주도 UI)</a> — <span class="meta">서버가 화면 구성을 데이터로 내려주면 클라이언트가 그대로 렌더링하는 방식입니다.</span></li><li><a href="/kb/solutions">비즈스프링 솔루션 카탈로그</a> — <span class="meta">패키지·솔루션·단위솔루션·레퍼런스로 구성된 비즈스프링 전체 솔루션 카탈로그입니다.</span></li><li><a href="/kb/glossary/vector-search">벡터 검색</a> — <span class="meta">문장을 숫자 좌표(벡터)로 바꿔, 표현이 달라도 의미가 가까운 것을 찾아내는 검색 방식입니다.</span></li><li><a href="/kb/glossary/multi-agent">멀티에이전트 시스템</a> — <span class="meta">여러 개의 전문화된 AI 에이전트가 역할을 나눠 협업하며 하나의 업무를 완성하는 구조입니다.</span></li><li><a href="/kb/glossary/ax">AX (AI 전환)</a> — <span class="meta">업무 전반을 AI 에이전트가 실제로 수행하는 방식으로 다시 설계하는 조직 차원의 전환입니다.</span></li><li><a href="/kb/solutions/bizspring-daas">BizSpring DaaS</a> — <span class="meta">수집·정제된 마케팅 데이터를 API·MCP로 제공해 사내 시스템과 AI 에이전트가 바로 쓰게 하는 데이터 서비스입니다.</span></li><li><a href="/kb/solutions/air-saas-copilot">AIR SaaS Copilot</a> — <span class="meta">마케팅 데이터에 자연어로 질문하면 지표를 계산하고 원인까지 설명하는 분석 코파일럿입니다.</span></li><li><a href="/kb/solutions/gp-agent-runtime">gp-agent 에이전트 런타임</a> — <span class="meta">비즈스프링의 AI 제품들이 공통으로 올라타는 에이전트 런타임으로, 개별 판매 상품이 아니라 상품들이 딛고 서는 바닥입니다.</span></li><li><a href="/kb/solutions/lift-api-gateway">LIFT API Gateway</a> — <span class="meta">수집·분석 데이터와 내부 시스템을 안전하게 연결하는 마케팅 데이터 API 게이트웨이입니다.</span></li><li><a href="/kb/tcr/o-x-3">O-X-3 리포팅 자동화 — TCR 활동</a> — <span class="meta">보고서 제작에 매주 수십 시간을 씁니다.</span></li><li><a href="/kb/solutions/gmp-api-mcp-hub">GMP 전사 API·MCP 허브</a> — <span class="meta">비즈스프링 전 제품의 데이터와 기능을 API와 MCP로 노출하는 전사 통합 허브입니다.</span></li><li><a href="/kb/usecases/ai-agent-on-data">AI 에이전트가 우리 데이터를 쓰게 하기</a> — <span class="meta">사내 마케팅 데이터를 AI 에이전트가 안전하게 조회·활용하도록 개방하는 시나리오입니다.</span></li><li><a href="/kb/tcr/o-x-4">O-X-4 데이터 개방·AI 연동 — TCR 활동</a> — <span class="meta">데이터를 AI 에이전트와 사내 시스템이 쓰지 못합니다.</span></li><li><a href="/kb/case/contract-erp-automation">
484계약서 → ERP → 발주 자동화</a> — <span class="meta">구독 계약 PDF를 AI가 읽어 ERP 등록·발주·결재 상신까지 처리하고, 금액·조건만 사람이 승인하는 자동화 사례.</span></li><li><a href="/kb/case/onprem-ai-agent">온프레미스 AI 에이전트 환경 구축</a> — <span class="meta">외부 클라우드 반출이 불가한 보안 요건 아래, 사내 기기 기반 AI 에이전트 환경을 구축해 반복 업무를 오케스트레이션한 사례.</span></li></ul>
485
486<p class="meta">다른 표현: <a href="/kb/solutions/ai-agentic-app.md">Markdown</a> · <a href="/api/kb/solutions/ai-agentic-app" rel="nofollow">JSON</a> · 최종 갱신 2026-09-03</p></main>
487  <aside class="toc"><h3>목차</h3><a href="#s-0-한-줄-정의" style="padding-left:0px">한 줄 정의</a><a href="#s-1-시장-배경과-문제" style="padding-left:0px">시장 배경과 문제</a><a href="#s-2-해결-방식" style="padding-left:0px">해결 방식</a><a href="#s-3-핵심-기능" style="padding-left:0px">핵심 기능</a><a href="#s-4-기술-스택과-구성" style="padding-left:0px">기술 스택과 구성</a><a href="#s-5-도입-효과" style="padding-left:0px">도입 효과</a><a href="#s-6-실증-레퍼런스" style="padding-left:0px">실증 레퍼런스</a><a href="#s-7-가격-모델" style="padding-left:0px">가격 모델</a><a href="#s-8-대상-고객" style="padding-left:0px">대상 고객</a><a href="#s-9-tcr-매핑" style="padding-left:0px">TCR 매핑</a><a href="#s-10-관련-솔루션" style="padding-left:0px">관련 솔루션</a></aside>
488</div>
489<footer>
490  <div class="copy">
491    <p style="margin:0 0 8px">이 문서는 서버에서 완성된 HTML로 제공되며 <a href="/llms.txt">llms.txt</a>, <a href="/llms-full.txt">llms-full.txt</a>, <a href="/sitemap.xml">sitemap.xml</a>, <a href="/feed.xml">RSS</a>로도 접근할 수 있습니다.</p>
492    <p style="margin:0"><button type="button" id="ui-contact-2" class="chip">문의하기</button></p>
493    <p style="margin:8px 0 0">© 2026 BizSpring Inc. × Entrench Consulting Inc.</p>
494    <p style="margin:6px 0 0"><button type="button" id="ui-privacy" class="linkish">개인정보처리방침</button></p>
495  </div>
496</footer>
497<div class="cdlg" id="ui-contact-dialog" role="dialog" aria-modal="true" aria-label="문의하기">
498  <div class="cdlg-box">
499    <button type="button" class="cdlg-x" data-cdlg-close aria-label="닫기">&#10005;</button>
500    <h2>문의하기</h2>
501    <p class="sub">담당자가 확인하고 회신드립니다. 지금까지 보신 페이지가 함께 전달됩니다.</p>
502    <form id="ui-contact-form" novalidate>
503      <p class="err" id="ui-contact-err" hidden></p>
504      <div class="row"><label><input name="name" required maxlength="80" placeholder="이름 *"></label><label><input name="company" maxlength="120" placeholder="회사명"></label></div>
505      <div class="row"><label><input name="email" type="email" required maxlength="160" placeholder="이메일 *"></label><label><input name="phone" maxlength="40" placeholder="연락처"></label></div>
506      <label><textarea name="message" rows="4" maxlength="4000" placeholder="어떤 점이 궁금하신가요?"></textarea></label>
507      <button type="submit" class="send">보내기</button>
508      <p class="note">보내주신 이름·이메일과 회사명·연락처는 문의 응대 목적으로만 쓰고, 상담 완료 후 1년 뒤 삭제합니다. 담당자가 맥락을 알고 회신할 수 있도록, 직전까지 나눈 대화 요약과 보신 문서 목록이 함께 전달됩니다.<br><button type="button" id="ui-privacy-2" class="linkish">개인정보처리방침 보기</button></p>
509    </form>
510    <div id="ui-contact-done" hidden>
511      <p style="font-size:.875rem;color:var(--fg)">문의가 접수되었습니다.</p>
512      <p style="font-size:.8125rem;color:var(--muted)">영업일 기준 1~2일 내에 회신드립니다.</p>
513      <button type="button" class="send" data-cdlg-close style="margin-top:12px">닫기</button>
514    </div>
515  </div>
516</div>
517<div class="cdlg" id="ui-privacy-dialog" role="dialog" aria-modal="true" aria-label="개인정보처리방침">
518  <div class="cdlg-box pdlg-box">
519    <button type="button" class="cdlg-x" data-cdlg-close aria-label="닫기">&#10005;</button>
520    <h2>개인정보처리방침</h2>
521    <p class="sub">bizspring.ai · 시행일 2026-09-02</p>
522    <h3>1. 수집하는 개인정보와 목적</h3><p>㈜비즈스프링(이하 "회사")은 bizspring.ai 에서 아래 정보를 수집합니다. 법령에 따른 경우를 빼면, 적어 주신 목적 외로는 쓰지 않습니다.</p>
523<ul>
524  <li><strong>문의하기</strong>: 이름·이메일(필수), 회사명·연락처·문의 내용(선택). 문의 응대와 상담 진행에 씁니다. 문의를 보내실 때 직전까지 나눈 대화 요약과 보신 문서 목록이 함께 담겨, 담당자가 맥락을 알고 회신할 수 있게 합니다.</li>
525  <li><strong>AI 상담 대화</strong>: 주고받은 대화 내용과 접속 환경(국가·지역·도시·기기·운영체제·브라우저). 답변 품질 개선과 오류 확인에 씁니다. <strong>IP 주소는 저장하지 않습니다.</strong> 다만 자동화된 대량 호출을 막기 위해, 접속 IP 를 되돌릴 수 없는 값으로 바꾼 뒤 그 값만 <strong>2시간</strong> 동안 세는 데 씁니다. 그 값으로는 개인을 알아볼 수 없으며 2시간이 지나면 자동 삭제됩니다.</li>
526  <li><strong>대화 내보내기</strong>: 받으실 이메일 주소. 요청하신 대화 내용을 보내 드리는 데만 씁니다.</li>
527</ul>
528<p>회원가입은 없습니다. 주민등록번호를 비롯한 고유식별정보와 민감정보는 수집하지 않으니, 대화창에도 적지 말아 주세요.</p><h3>2. 보유 기간</h3><ul>
529  <li><strong>AI 상담 대화</strong>: 방문자가 다시 열어볼 수 있는 기간은 마지막 대화로부터 <strong>24시간</strong>이며, 대화를 시작한 그 브라우저에서만 열립니다. 대화 주소를 다른 사람에게 보내도 그 사람에게는 보이지 않습니다. 회
529사 내부에는 응답 품질 점검을 위해 <strong>60일</strong>까지 보관하고, 그 뒤 자동 삭제합니다.</li>
530  <li><strong>문의 정보</strong>: 상담 완료 후 <strong>1년</strong> 뒤 자동 삭제합니다.</li>
531  <li>관계 법령에 따라 보관해야 하는 경우에는 그 법령이 정한 기간을 따릅니다.</li>
532</ul><h3>3. 처리 위탁</h3><p>서비스 제공에 필요한 범위에서 아래 업체에 처리를 맡기고 있습니다.</p>
533<ul>
534  <li><strong>OpenAI, Anthropic</strong>: AI 응답 생성. 대화 내용이 전달됩니다.</li>
535  <li><strong>Resend</strong>: 문의 알림과 대화 내보내기 메일 발송.</li>
536  <li><strong>Supabase, Cloudflare</strong>: 데이터 보관과 서비스 운영.</li>
537</ul>
538<p>위 업체들은 국외에 서버를 두고 있어, 처리 과정에서 개인정보가 국외로 이전될 수 있습니다. 이전되는 항목과 목적은 위에 적은 것과 같습니다.</p><h3>4. 이용자의 권리</h3><p>언제든지 본인의 개인정보에 대해 열람·정정·삭제·처리정지를 요구하실 수 있습니다. 아래 연락처로 알려 주시면 지체 없이 처리하고 결과를 알려 드립니다. 상담 대화는 새 대화를 시작하시면 화면에서 바로 지워집니다.</p><h3>5. 개인정보 보호책임자</h3><p>성명 구자훈 (대표이사) · 이메일 <a href="mailto:[email protected]">[email protected]</a> · 전화 02-6919-5516</p>
539<p>개인정보 침해로 도움이 필요하시면 개인정보침해신고센터(privacy.kisa.or.kr, 국번없이 118)에 문의하실 수 있습니다.</p><h3>6. 변경 안내</h3><p>이 방침이 바뀌면 시행일과 함께 이 화면에서 알려 드립니다. 현재 시행일은 2026-09-02 입니다.</p>
540    <button type="button" class="send" data-cdlg-close style="margin-top:16px">확인</button>
541  </div>
542</div>
543<script>(function(){
544var d=document.documentElement;
545
546var isDark=function(){
547var m=localStorage.getItem('bizspring-theme')||'auto';
548if(m==='light') return false;
549if(m==='dark') return true;
550if(m==='system') return !(window.matchMedia&&window.matchMedia('(prefers-color-scheme: light)').matches);
551var n=new Date(),tz=-n.getTimezoneOffset()/60,lon=tz*15,lat=37.5,rad=Math.PI/180;
552var doy=Math.floor((Date.UTC(n.getFullYear(),n.getMonth(),n.getDate())-Date.UTC(n.getFullYear(),0,0))/864e5);
553var g=2*Math.PI/365*(doy-1);
554var eq=229.18*(75e-6+.001868*Math.cos(g)-.032077*Math.sin(g)-.014615*Math.cos(2*g)-.040849*Math.sin(2*g));
555var de=.006918-.399912*Math.cos(g)+.070257*Math.sin(g)-.006758*Math.cos(2*g)+9.07e-4*Math.sin(2*g)-.002697*Math.cos(3*g)+.00148*Math.sin(3*g);
556var la=lat*rad,ch=Math.cos(90.833*rad)/(Math.cos(la)*Math.cos(de))-Math.tan(la)*Math.tan(de);
557if(ch>1) return true;
558if(ch<-1) return false;
559var ha=Math.acos(ch)/rad;
560var sr=((720-4*(lon+ha)-eq)/60+tz+24)%24, ss=((720-4*(lon-ha)-eq)/60+tz+24)%24;
561var h=n.getHours()+n.getMinutes()/60;
562return !(h>=sr&&h<ss);
563};
564function save(k,v){try{localStorage.setItem(k,v)}catch(e){}}
565function mode(){try{var m=localStorage.getItem('bizspring-theme');
566  return ['light','dark','system','auto'].indexOf(m)>=0?m:'auto'}catch(e){return 'auto'}}
567function font(){return d.getAttribute('data-font')||'md';}
568function fontFamily(){return d.getAttribute('data-font-family')||'sans';}
569
570function applyTheme(){
571  var dark=isDark();
572  d.classList.toggle('light',!dark);
573  d.style.colorScheme=dark?'dark':'light';
574}
575
576/**
577 * 동그란 버튼 하나 + 드롭다운. 대화 화면의 IconMenu 와 같은 동작이다.
578 * 지금 값을 읽는 함수와 값을 적용하는 함수만 갈아 끼우면 테마·글자크기 모두 이걸 쓴다.
579 */
580function wire(id, getValue, setValue){
581  var root=document.getElementById(id);
582  if(!root) return;
583  var btn=root.querySelector('[data-menu-trigger]');
584  var list=root.querySelector('[data-menu-list]');
585  if(!btn||!list) return;
586
587  function paint(){
588    var v=getValue();
589    [].slice.call(list.querySelectorAll('[data-value]')).forEach(function(el){
590      var on=el.getAttribute('data-value')===v;
591      el.setAttribute('aria-checked',on?'true':'false');
592    });
593    var cur=list.querySelector('[data-value="'+v+'"]');
594    var icon=cur?cur.querySelector('[data-menu-icon]'):null;
595    if(icon) btn.innerHTML=icon.innerHTML;
596    var label=cur?(cur.getAttribute('data-label')||''):'';
597    btn.setAttribute('aria-label',root.getAttribute('data-label')+': '+label+'. 눌러서 변경');
598    btn.title=root.getAttribute('data-label')+': '+label;
599  }
600  function close(){ list.hidden=true; btn.setAttribute('aria-expanded','false'); }
601  function open(){ list.hidden=false; btn.setAttribute('aria-expanded','true'); }
602
603  btn.addEventListener('click',function(e){
604    e.stopPropagation();
605    if(list.hidden) open(); else close();
606  });
607  list.addEventListener('click',function(e){
608    var t=e.target.closest('[data-value]');
609    if(!t) return;
610    setValue(t.getAttribute('data-value'));
611    paint(); close();
612  });
613  document.addEventListener('click',function(e){ if(!root.contains(e.target)) close(); });
614  document.addEventListener('keydown',function(e){ if(e.key==='Escape') close(); });
615  paint();
616}
617
618/**
619 * wire() 의 여러-묶음 버전. 한 팝업 안에 값이 둘(크기·모양) 있고, 항목마다
620 * data-group 으로 어느 묶음인지 표시돼 있다 — 그 묶음의 getValue/setValue 만 건드린다.
621 */
622function wireMulti(id, groups){
623  var root=document.getElementById(id);
624  if(!root) return;
625  var btn=root.querySelector('[data-menu-trigger]');
626  var list=root.querySelector('[data-menu-list]');
627  if(!btn||!list) return;
628  var byGroup={};
629  groups.forEach(function(g){ byGroup[g.group]=g; });
630
631  function paint(){
632    var labels=[];
633    groups.forEach(function(g){
634      var v=g.getValue();
635      [].slice.call(list.querySelectorAll('[data-group="'+g.group+'"]')).forEach(function(el){
636        el.setAttribute('aria-checked', el.getAttribute('data-value')===v?'true':'false');
637      });
638      var cur=list.querySelector('[data-group="'+g.group+'"][data-value="'+v+'"]');
639      if(cur) labels.push(cur.getAttribute('data-label')||'');
640    });
641    var sizeVal=byGroup.size?byGroup.size.getValue():null;
642    var familyVal=byGroup.family?byGroup.family.getValue():null;
643    var sizeEl=sizeVal?list.querySelector('[data-group="size"][data-value="'+sizeVal+'"]'):null;
644    var familyEl=familyVal?list.querySelector('[data-group="family"][data-value="'+familyVal+'"]'):null;
645    if(sizeEl){
646      var icon=sizeEl.querySelector('[data-menu-icon]');
647      if(icon){
648        btn.innerHTML=icon.innerHTML;
649        var span=btn.querySelector('span');
650        if(span&&familyEl) span.style.fontFamily=familyEl.getAttribute('data-fontcss')||'';
651      }
652    }
653    var lbl=root.getAttribute('data-label')+': '+labels.join(' · ');
654    btn.setAttribute('aria-label',lbl+'. 눌러서 변경');
655    btn.title=lbl;
656  }
657  function close(){ list.hidden=true; btn.setAttribute('aria-expanded','false'); }
658  function open(){ list.hidden=false; btn.setAttribute('aria-expanded','true'); }
659
660  btn.addEventListener('click',function(e){
661    e.stopPropagation();
662    if(list.hidden) open(); else close();
663  });
664  list.addEventListener('click',function(e){
665    var t=e.target.closest('[data-value]');
666    if(!t) return;
667    var g=byGroup[t.getAttribute('data-group')];
668    if(!g) return;
669    g.setValue(t.getAttribute('data-value'));
670    paint(); close();
671  });
672  document.addEventListener('click',function(e){ if(!root.contains(e.target)) close(); });
673  document.addEventListener('keydown',function(e){ if(e.key==='Escape') close(); });
674  paint();
675}
676
677applyTheme();
678wire('ui-theme', mode, function(v){ save('bizspring-theme',v); applyTheme(); });
679wireMulti('ui-font', [
680  { group:'size', getValue: font, setValue: function(v){ d.setAttribute('data-font',v); save('bsw-font',v); } },
681  { group:'family', getValue: fontFamily, setValue: function(v){ d.setAttribute('data-font-family',v); save('bsw-font-family',v); } },
682]);
683
684// 자동 모드는 일출·일몰 기준이라 시간이 지나면 스스로 바뀌어야 한다.
685setInterval(function(){ if(mode()==='auto') applyTheme(); },60000);
686
687// 지식센터 열람 기록. 문의 메일에 붙일 맥락으로 대화 화면과 같은 저장소를 쓴다.
688try{
689  var K='bsw-trail';
690  var list2=JSON.parse(localStorage.getItem(K)||'[]');
691  var title=(document.title||location.pathname).split('|')[0].trim();
692  var v2=title+' ('+location.pathname+')';
693  var last=list2[list2.length-1];
694  if(!(last&&last.kind==='page'&&last.value===v2)){
695    list2.push({kind:'page',value:v2.slice(0,300),at:new Date().toISOString()});
696    localStorage.setItem(K,JSON.stringify(list2.slice(-30)));
697  }
698}catch(e){}
699
700/**
701 * 좌상단 전환 스위치 — 왔던 곳으로 되돌려 보낸다.
702 *
703 * 서버는 지금 문서와 가장 가까운 본사 페이지를 미리 넣어 두었다. 여기서는
704 * 그보다 나은 것이 있으면(본사에서 넘어온 기록) 그걸로 바꾼다. 기록은
705 * 브라우저만 아는 것이라 서버가 알 수 없다.
706 *
707 * 대화 화면의 lib/corp-origin.ts 와 같은 키를 쓴다 — 두 화면을 오가도 같은
708 * 기록을 본다. 한쪽 키를 바꾸면 다른 쪽도 바꿔야 한다.
709 */
710try{
711  var CORP_KEY='bsw-corp-origin';
712  var saved=null;
713  try{ saved=JSON.parse(sessionStorage.getItem(CORP_KEY)||'null'); }catch(e){}
714  if(!saved && document.referrer){
715    try{
716      var ru=new URL(document.referrer);
717      if(ru.hostname.toLowerCase().replace(/^www[.]/,'')==='bizspring.co.kr'){
718        saved={url:ru.href,label:'보시던 페이지'};
719        sessionStorage.setItem(CORP_KEY,JSON.stringify(saved));
720      }
721    }catch(e){}
722  }
723  var sw=document.getElementById('ui-siteswitch');
724  if(sw&&saved&&saved.url){
725    sw.setAttribute('href',saved.url);
726    sw.setAttribute('title','AI 모드가 켜져 있습니다. 끄면 '+(saved.label||'보시던 페이지')+'(bizspring.co.kr) 페이지로 돌아갑니다');
727  }
728}catch(e){}
729
730/**
731 * 문의는 이 페이지에서 끝난다. 예전에는 /?contact=1 로 넘겨서 대화 화면을 새로 띄웠는데,
732 * 문의 버튼을 눌렀을 뿐인데 보던 문서에서 튕겨 나가는 셈이라 이상했다.
733 */
734var dlg=document.getElementById('ui-contact-dialog');
735function closeContact(){ if(dlg) dlg.setAttribute('data-open','0'); }
736function openContact(){
737  if(!dlg){ window.location.href='/?contact=1'; return; }
738  dlg.setAttribute('data-open','1');
739  var first=dlg.querySelector('input[name=name]');
740  if(first) first.focus();
741}
742['ui-contact','ui-contact-2','ui-contact-mnav'].forEach(function(id){
743  var el=document.getElementById(id);
744  if(el) el.addEventListener('click',openContact);
745});
746
747/* 개인정보처리방침도 같은 자리에서 연다 — 문의를 적다 말고 페이지를 옮기면
748   적던 내용이 날아간다. */
749var pdlg=document.getElementById('ui-privacy-dialog');
750['ui-privacy','ui-privacy-2'].forEach(function(id){
751  var el=document.getElementById(id);
752  if(el&&pdlg) el.addEventListener('click',function(){ pdlg.setAttribute('data-open','1'); });
753});
754if(pdlg){
755  pdlg.addEventListener('click',function(e){
756    if(e.target===pdlg||e.target.closest('[data-cdlg-close]')) pdlg.setAttribute('data-open','0');
757  });
758  document.addEventListener('keydown',function(e){
759    if(e.key==='Escape'&&pdlg.getAttribute('data-open')==='1') pdlg.setAttribute('data-open','0');
760  });
761}
762if(dlg){
763  dlg.addEventListener('click',function(e){
764    if(e.target===dlg||e.target.closest('[data-cdlg-close]')) closeContact();
765  });
766  document.addEventListener('keydown',function(e){
767    if(e.key==='Escape'&&dlg.getAttribute('data-open')==='1') closeContact();
768  });
769
770  var form=document.getElementById('ui-contact-form');
771  var errBox=document.getElementById('ui-contact-err');
772  var doneBox=document.getElementById('ui-contact-done');
773  form.addEventListener('submit',function(e){
774    e.preventDefault();
775    var btn=form.querySelector('.send');
776    var fd=new FormData(form);
777    var trail=[];
778    try{ trail=JSON.parse(localStorage.getItem('bsw-trail')||'[]'); }catch(e2){}
779    errBox.hidden=true;
780    btn.disabled=true; btn.textContent='보내는 중…';
781    fetch('/api/contact',{
782      method:'POST',
783      headers:{'content-type':'application/json'},
784      body:JSON.stringify({
785        name:fd.get('name')||'', company:fd.get('company')||'',
786        email:fd.get('email')||'', phone:fd.get('phone')||'',
787        message:fd.get('message')||'', trail:trail.slice(-30)
788      })
789    }).then(function(r){
790      btn.disabled=false; btn.textContent='보내기';
791      if(r.ok){ form.hidden=true; doneBox.hidden=false; return; }
792      errBox.textContent='전송에 실패했습니다. 잠시 후 다시 시도해 주세요.';
793      errBox.hidden=false;
794    }).catch(function(){
795      btn.disabled=false; btn.textContent='보내기';
796      errBox.textContent='전송에 실패했습니다. 잠시 후 다시 시도해 주세요.';
797      errBox.hidden=false;
798    });
799  });
800}
801})();</script>
801
802</body>
803</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.