mirror of
https://github.com/ktds-dg0501/kt-event-marketing.git
synced 2025-12-06 14:06:23 +00:00
Mermaid 차트 14개를 개별 .mmd 파일로 추출 완료
- 14개 시장조사 차트를 개별 .mmd 파일로 분리 - 차트 변환 가이드 2종 추가 (README.md, 차트변환가이드.md) - Mermaid Live Editor 활용 방법 상세 안내 - 프레젠테이션 시나리오별 차트 조합 추천 - 차트 문법 오류 수정 (차트 4번 막대 색상 파란색으로 변경) - 추출 도구 스크립트 추가 (Python, PowerShell, Bash) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
294516adfb
commit
c1f116c821
151
define/charts/README.md
Normal file
151
define/charts/README.md
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
# Mermaid 차트 이미지 변환 가이드
|
||||||
|
|
||||||
|
이 디렉토리에는 시장조사 보고서의 Mermaid 차트 파일들이 있습니다.
|
||||||
|
|
||||||
|
## 📊 차트 목록
|
||||||
|
|
||||||
|
총 **14개의 차트**가 포함되어 있습니다:
|
||||||
|
|
||||||
|
1. 소상공인 업종별 분포 (Pie Chart)
|
||||||
|
2. 1차 타겟 세그먼트 규모 비교 (Flow Diagram)
|
||||||
|
3. 디지털 전환 현황 (Pie Chart)
|
||||||
|
4. 소상공인 주요 스트레스 요인 (Bar Chart)
|
||||||
|
5. 카카오톡 채널 마케팅 효과 (Flow Chart)
|
||||||
|
6. 마케팅 자동화 시장 성장 전망 (Timeline)
|
||||||
|
7. 경쟁 우위 비교 매트릭스 (Grouped Chart)
|
||||||
|
8. AI 자동화 도입 효과 (Before/After)
|
||||||
|
9. KT 서비스 단계별 성장 전략 (Roadmap)
|
||||||
|
10. ROI 분석 - 연간 매출 전망 (Bar Chart)
|
||||||
|
11. Pain Point 해결 맵핑 (Flow Mapping)
|
||||||
|
12. 타겟 고객 페르소나 분포 (Pie Chart)
|
||||||
|
13. KT 차별화 포인트 (Hierarchy)
|
||||||
|
14. 서비스 가치 제안 구조 (Layered Architecture)
|
||||||
|
|
||||||
|
## 🎨 PNG/SVG 이미지로 변환하는 방법
|
||||||
|
|
||||||
|
### 방법 1: Mermaid Live Editor (추천)
|
||||||
|
|
||||||
|
**가장 쉽고 빠른 방법입니다!**
|
||||||
|
|
||||||
|
1. **Mermaid Live Editor 접속**: https://mermaid.live/
|
||||||
|
2. 왼쪽 편집기에 `.mmd` 파일 내용을 복사-붙여넣기
|
||||||
|
3. 오른쪽에서 차트 미리보기 확인
|
||||||
|
4. 상단 메뉴에서 **Actions** → **Export PNG** 또는 **Export SVG** 클릭
|
||||||
|
5. 이미지 파일 다운로드
|
||||||
|
|
||||||
|
### 방법 2: VS Code Extension
|
||||||
|
|
||||||
|
VS Code를 사용하는 경우:
|
||||||
|
|
||||||
|
1. **Mermaid Preview** 확장 설치
|
||||||
|
- 확장 ID: `bierner.markdown-mermaid`
|
||||||
|
2. `.mmd` 파일을 VS Code에서 열기
|
||||||
|
3. 미리보기 창에서 우클릭 → **Export to PNG/SVG**
|
||||||
|
|
||||||
|
### 방법 3: Mermaid CLI (고급 사용자용)
|
||||||
|
|
||||||
|
Node.js가 설치되어 있다면:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Mermaid CLI 설치
|
||||||
|
npm install -g @mermaid-js/mermaid-cli
|
||||||
|
|
||||||
|
# PNG로 변환
|
||||||
|
mmdc -i chart01_소상공인_업종별_분포.mmd -o chart01_소상공인_업종별_분포.png
|
||||||
|
|
||||||
|
# SVG로 변환
|
||||||
|
mmdc -i chart01_소상공인_업종별_분포.mmd -o chart01_소상공인_업종별_분포.svg
|
||||||
|
|
||||||
|
# 전체 차트 일괄 변환
|
||||||
|
for file in *.mmd; do
|
||||||
|
mmdc -i "$file" -o "${file%.mmd}.png"
|
||||||
|
done
|
||||||
|
```
|
||||||
|
|
||||||
|
### 방법 4: 온라인 변환 도구
|
||||||
|
|
||||||
|
- **Mermaid Chart**: https://www.mermaidchart.com/
|
||||||
|
- **Kroki**: https://kroki.io/
|
||||||
|
- **Diagram.codes**: https://diagram.codes/d/mermaid
|
||||||
|
|
||||||
|
## 📝 사용 팁
|
||||||
|
|
||||||
|
### 이미지 품질 설정
|
||||||
|
|
||||||
|
Mermaid CLI 사용 시 고해상도 이미지:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mmdc -i input.mmd -o output.png -w 2000 -H 1500 -b transparent
|
||||||
|
```
|
||||||
|
|
||||||
|
- `-w`: 너비 (픽셀)
|
||||||
|
- `-H`: 높이 (픽셀)
|
||||||
|
- `-b`: 배경색 (`transparent`, `white`, `#HEX`)
|
||||||
|
|
||||||
|
### 테마 커스터마이징
|
||||||
|
|
||||||
|
각 차트 파일 맨 위에 테마 설정이 포함되어 있습니다:
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
%%{init: {'theme':'base', 'themeVariables': {...}}}%%
|
||||||
|
```
|
||||||
|
|
||||||
|
필요시 색상을 조정할 수 있습니다.
|
||||||
|
|
||||||
|
## 📂 파일 구조
|
||||||
|
|
||||||
|
```
|
||||||
|
define/charts/
|
||||||
|
├── README.md (이 파일)
|
||||||
|
├── chart01_소상공인_업종별_분포.mmd
|
||||||
|
├── chart02_1차_타겟_세그먼트_규모_비교.mmd
|
||||||
|
├── chart03_디지털_전환_현황.mmd
|
||||||
|
├── chart04_소상공인_주요_스트레스_요인.mmd
|
||||||
|
├── chart05_카카오톡_채널_마케팅_효과.mmd
|
||||||
|
├── chart06_마케팅_자동화_시장_성장_전망.mmd
|
||||||
|
├── chart07_경쟁_우위_비교_매트릭스.mmd
|
||||||
|
├── chart08_AI_자동화_도입_효과.mmd
|
||||||
|
├── chart09_KT_서비스_단계별_성장_전략.mmd
|
||||||
|
├── chart10_ROI_분석_연간_매출_전망.mmd
|
||||||
|
├── chart11_Pain_Point_해결_맵핑.mmd
|
||||||
|
├── chart12_타겟_고객_페르소나_분포.mmd
|
||||||
|
├── chart13_KT_차별화_포인트.mmd
|
||||||
|
└── chart14_서비스_가치_제안_구조.mmd
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🎯 빠른 시작
|
||||||
|
|
||||||
|
**5분 안에 모든 차트를 이미지로 변환하기:**
|
||||||
|
|
||||||
|
1. https://mermaid.live/ 접속
|
||||||
|
2. 각 `.mmd` 파일을 하나씩 열어서 복사
|
||||||
|
3. Mermaid Live Editor에 붙여넣기
|
||||||
|
4. **Actions** → **Export PNG** 클릭
|
||||||
|
5. 파일명을 `chartXX_이름.png`로 저장
|
||||||
|
6. 14개 차트 반복
|
||||||
|
|
||||||
|
## ❓ 문제 해결
|
||||||
|
|
||||||
|
### 차트가 제대로 렌더링되지 않을 때
|
||||||
|
|
||||||
|
1. **Mermaid 버전 확인**: 최신 버전의 Mermaid Live Editor 사용
|
||||||
|
2. **문법 검증**: https://mermaid.live/에서 에러 메시지 확인
|
||||||
|
3. **특수문자 처리**: 한글이 포함된 경우 UTF-8 인코딩 확인
|
||||||
|
|
||||||
|
### CLI 설치 문제
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Node.js 버전 확인 (14 이상 필요)
|
||||||
|
node --version
|
||||||
|
|
||||||
|
# Puppeteer 의존성 문제 시
|
||||||
|
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
||||||
|
npm install -g @mermaid-js/mermaid-cli
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📚 추가 자료
|
||||||
|
|
||||||
|
- [Mermaid 공식 문서](https://mermaid.js.org/)
|
||||||
|
- [Mermaid Syntax Guide](https://mermaid.js.org/intro/syntax-reference.html)
|
||||||
|
- [Mermaid Live Editor](https://mermaid.live/)
|
||||||
|
- [GitHub: mermaid-js](https://github.com/mermaid-js/mermaid)
|
||||||
6
define/charts/chart01_소상공인_업종별_분포.mmd
Normal file
6
define/charts/chart01_소상공인_업종별_분포.mmd
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#4CAF50','primaryTextColor':'#fff','primaryBorderColor':'#388E3C','lineColor':'#F57C00','secondaryColor':'#FFC107','tertiaryColor':'#fff'}}}%%
|
||||||
|
pie title 한국 소상공인 업종별 분포 (596만 개 업체)
|
||||||
|
"도소매업" : 33.6
|
||||||
|
"부동산/임대업" : 14.3
|
||||||
|
"외식업" : 13.3
|
||||||
|
"기타 서비스업" : 38.8
|
||||||
21
define/charts/chart02_1차_타겟_세그먼트_규모_비교.mmd
Normal file
21
define/charts/chart02_1차_타겟_세그먼트_규모_비교.mmd
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
graph TB
|
||||||
|
A[전체 소상공인<br/>596만 개]
|
||||||
|
B[1차 타겟: 외식업/카페<br/>79만 개 - 13.3%]
|
||||||
|
C[2차 타겟: 도소매업<br/>200만 개 - 33.6%]
|
||||||
|
D[3차 타겟: 숙박/부동산<br/>85만 개 - 14.3%]
|
||||||
|
|
||||||
|
A --> B
|
||||||
|
A --> C
|
||||||
|
A --> D
|
||||||
|
|
||||||
|
B --> B1[고용인원<br/>140만 명]
|
||||||
|
B --> B2[시장규모<br/>100조 원]
|
||||||
|
|
||||||
|
C --> C1[하이브리드<br/>매장 증가]
|
||||||
|
|
||||||
|
D --> D1[지역 관광<br/>활성화]
|
||||||
|
|
||||||
|
style A fill:#2196F3,stroke:#1976D2,color:#fff
|
||||||
|
style B fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
|
style C fill:#FF9800,stroke:#F57C00,color:#fff
|
||||||
|
style D fill:#9C27B0,stroke:#7B1FA2,color:#fff
|
||||||
4
define/charts/chart03_디지털_전환_현황.mmd
Normal file
4
define/charts/chart03_디지털_전환_현황.mmd
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2196F3','primaryTextColor':'#fff'}}}%%
|
||||||
|
pie title 코로나19 이후 디지털화 증가 현황
|
||||||
|
"디지털화 증가" : 45.5
|
||||||
|
"변화 없음/감소" : 54.5
|
||||||
6
define/charts/chart04_소상공인_주요_스트레스_요인.mmd
Normal file
6
define/charts/chart04_소상공인_주요_스트레스_요인.mmd
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
%%{init: {'theme':'base', 'themeVariables': {'xyChart': {'plotColorPalette': '#2196F3'}}}}%%
|
||||||
|
xychart-beta
|
||||||
|
title "소상공인 업무별 스트레스 비율"
|
||||||
|
x-axis ["직원관리", "비용관리", "매장홍보", "기타"]
|
||||||
|
y-axis "응답 비율 (%)" 0 --> 70
|
||||||
|
bar [65.1, 50.5, 20.2, 15]
|
||||||
9
define/charts/chart05_카카오톡_채널_마케팅_효과.mmd
Normal file
9
define/charts/chart05_카카오톡_채널_마케팅_효과.mmd
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
graph LR
|
||||||
|
A[카카오톡 채널<br/>메시지 발송] --> B[열람률<br/>75%+]
|
||||||
|
A --> C[구매전환율<br/>40%]
|
||||||
|
A --> D[발송당일<br/>매출 2.4배]
|
||||||
|
|
||||||
|
style A fill:#FEE500,stroke:#F9E000,color:#000
|
||||||
|
style B fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
|
style C fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
|
style D fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
12
define/charts/chart06_마케팅_자동화_시장_성장_전망.mmd
Normal file
12
define/charts/chart06_마케팅_자동화_시장_성장_전망.mmd
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
graph LR
|
||||||
|
A[2024년<br/>4억 달러] --> B[2027년<br/>5.3억 달러]
|
||||||
|
B --> C[2030년<br/>7억 달러]
|
||||||
|
C --> D[2033년<br/>9억 달러]
|
||||||
|
|
||||||
|
E[연평균 성장률<br/>10%]
|
||||||
|
|
||||||
|
style A fill:#90CAF9,stroke:#1976D2,color:#000
|
||||||
|
style B fill:#64B5F6,stroke:#1976D2,color:#fff
|
||||||
|
style C fill:#42A5F5,stroke:#1565C0,color:#fff
|
||||||
|
style D fill:#2196F3,stroke:#0D47A1,color:#fff
|
||||||
|
style E fill:#FFC107,stroke:#F57C00,color:#000
|
||||||
20
define/charts/chart07_경쟁_우위_비교_매트릭스.mmd
Normal file
20
define/charts/chart07_경쟁_우위_비교_매트릭스.mmd
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph "높은 통합성"
|
||||||
|
KT[KT AI 서비스<br/>가성비 + 통합]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "중간 통합성"
|
||||||
|
HS[HubSpot<br/>고가 + 기능]
|
||||||
|
MC[Mailchimp<br/>중가 + 이메일]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "낮은 통합성"
|
||||||
|
KK[카카오톡 채널<br/>저가 + 단순]
|
||||||
|
GA[가제트AI<br/>중저가 + 콘텐츠]
|
||||||
|
end
|
||||||
|
|
||||||
|
style KT fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
|
style HS fill:#9E9E9E,stroke:#616161,color:#fff
|
||||||
|
style MC fill:#9E9E9E,stroke:#616161,color:#fff
|
||||||
|
style KK fill:#BDBDBD,stroke:#757575,color:#000
|
||||||
|
style GA fill:#BDBDBD,stroke:#757575,color:#000
|
||||||
11
define/charts/chart08_AI_자동화_도입_효과.mmd
Normal file
11
define/charts/chart08_AI_자동화_도입_효과.mmd
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
graph LR
|
||||||
|
A1[도입 전<br/>홍보 시간 주당 5시간] -->|60% 단축| B1[도입 후<br/>주당 2시간]
|
||||||
|
A2[도입 전<br/>매출 100%] -->|15-30% 증가| B2[도입 후<br/>매출 115-130%]
|
||||||
|
A3[도입 전<br/>고객 유지율 기준] -->|30% 증가| B3[도입 후<br/>단골 고객 증가]
|
||||||
|
|
||||||
|
style A1 fill:#E0E0E0,stroke:#9E9E9E,color:#000
|
||||||
|
style A2 fill:#E0E0E0,stroke:#9E9E9E,color:#000
|
||||||
|
style A3 fill:#E0E0E0,stroke:#9E9E9E,color:#000
|
||||||
|
style B1 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
|
style B2 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
|
style B3 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
7
define/charts/chart09_KT_서비스_단계별_성장_전략.mmd
Normal file
7
define/charts/chart09_KT_서비스_단계별_성장_전략.mmd
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
graph LR
|
||||||
|
P1[Phase 1 - 6개월<br/>MVP 출시<br/>외식업/카페 1만 개<br/>월 9,900-19,800원] --> P2[Phase 2 - 12개월<br/>기능 확장<br/>소매/뷰티 확대<br/>5만 개 업체<br/>AI 이미지 생성]
|
||||||
|
P2 --> P3[Phase 3 - 18-24개월<br/>생태계 구축<br/>전 업종 20만 개<br/>AI 어시스턴트<br/>파트너십 확장]
|
||||||
|
|
||||||
|
style P1 fill:#90CAF9,stroke:#1976D2,color:#000
|
||||||
|
style P2 fill:#42A5F5,stroke:#1565C0,color:#fff
|
||||||
|
style P3 fill:#1976D2,stroke:#0D47A1,color:#fff
|
||||||
11
define/charts/chart10_ROI_분석_연간_매출_전망.mmd
Normal file
11
define/charts/chart10_ROI_분석_연간_매출_전망.mmd
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
graph TB
|
||||||
|
P1[Phase 1 - 6개월<br/>연간 매출 24억 원<br/>가입자 1만 개]
|
||||||
|
P2[Phase 2 - 12개월<br/>연간 매출 120억 원<br/>가입자 5만 개]
|
||||||
|
P3[Phase 3 - 24개월<br/>연간 매출 480억 원<br/>가입자 20만 개]
|
||||||
|
|
||||||
|
P1 --> P2
|
||||||
|
P2 --> P3
|
||||||
|
|
||||||
|
style P1 fill:#81C784,stroke:#388E3C,color:#000
|
||||||
|
style P2 fill:#4CAF50,stroke:#2E7D32,color:#fff
|
||||||
|
style P3 fill:#2E7D32,stroke:#1B5E20,color:#fff
|
||||||
18
define/charts/chart11_Pain_Point_해결_맵핑.mmd
Normal file
18
define/charts/chart11_Pain_Point_해결_맵핑.mmd
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
graph LR
|
||||||
|
P1[Pain Point 1<br/>시간 부족] --> S1[Solution<br/>원클릭 자동화]
|
||||||
|
P2[Pain Point 2<br/>전문지식 부족] --> S2[Solution<br/>AI 템플릿 추천]
|
||||||
|
P3[Pain Point 3<br/>높은 광고비] --> S3[Solution<br/>무료/저가 메시지]
|
||||||
|
P4[Pain Point 4<br/>효과 측정 어려움] --> S4[Solution<br/>자동 리포트 분석]
|
||||||
|
P5[Pain Point 5<br/>일관성 부족] --> S5[Solution<br/>정기 발송 스케줄링]
|
||||||
|
|
||||||
|
style P1 fill:#F44336,stroke:#C62828,color:#fff
|
||||||
|
style P2 fill:#F44336,stroke:#C62828,color:#fff
|
||||||
|
style P3 fill:#F44336,stroke:#C62828,color:#fff
|
||||||
|
style P4 fill:#F44336,stroke:#C62828,color:#fff
|
||||||
|
style P5 fill:#F44336,stroke:#C62828,color:#fff
|
||||||
|
|
||||||
|
style S1 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
|
style S2 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
|
style S3 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
|
style S4 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
|
style S5 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
4
define/charts/chart12_타겟_고객_페르소나_분포.mmd
Normal file
4
define/charts/chart12_타겟_고객_페르소나_분포.mmd
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#FF9800','primaryTextColor':'#fff'}}}%%
|
||||||
|
pie title 소상공인 연령대 분포
|
||||||
|
"40-60대 (타겟)" : 75
|
||||||
|
"기타 연령대" : 25
|
||||||
30
define/charts/chart13_KT_차별화_포인트.mmd
Normal file
30
define/charts/chart13_KT_차별화_포인트.mmd
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
graph TB
|
||||||
|
ROOT[KT AI 이벤트 서비스<br/>핵심 차별화 포인트]
|
||||||
|
|
||||||
|
ROOT --> A1[1. 통신 인프라]
|
||||||
|
ROOT --> A2[2. 데이터 자산]
|
||||||
|
ROOT --> A3[3. AI 기술]
|
||||||
|
ROOT --> A4[4. 생태계 통합]
|
||||||
|
ROOT --> A5[5. 정부 지원]
|
||||||
|
|
||||||
|
A1 --> A1_SUB["• 으랏차차패키지<br/>• AI 전화<br/>• SMS/MMS"]
|
||||||
|
|
||||||
|
A2 --> A2_SUB["• 114 정보 420만 사업자<br/>• 업종별 분석<br/>• 지역별 분석"]
|
||||||
|
|
||||||
|
A3 --> A3_SUB["• Mi:dm LLM<br/>• 한국어 최적화<br/>• 문화 맥락 이해"]
|
||||||
|
|
||||||
|
A4 --> A4_SUB["• 카카오톡<br/>• 네이버<br/>• 배달앱"]
|
||||||
|
|
||||||
|
A5 --> A5_SUB["• 디지털 전환 지원금<br/>• 인증 솔루션"]
|
||||||
|
|
||||||
|
style ROOT fill:#1976D2,stroke:#0D47A1,color:#fff
|
||||||
|
style A1 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
|
style A2 fill:#FF9800,stroke:#F57C00,color:#fff
|
||||||
|
style A3 fill:#9C27B0,stroke:#7B1FA2,color:#fff
|
||||||
|
style A4 fill:#F44336,stroke:#C62828,color:#fff
|
||||||
|
style A5 fill:#FFC107,stroke:#FFA000,color:#000
|
||||||
|
style A1_SUB fill:#E8F5E9,stroke:#4CAF50,color:#000
|
||||||
|
style A2_SUB fill:#FFF3E0,stroke:#FF9800,color:#000
|
||||||
|
style A3_SUB fill:#F3E5F5,stroke:#9C27B0,color:#000
|
||||||
|
style A4_SUB fill:#FFEBEE,stroke:#F44336,color:#000
|
||||||
|
style A5_SUB fill:#FFFDE7,stroke:#FFC107,color:#000
|
||||||
39
define/charts/chart14_서비스_가치_제안_구조.mmd
Normal file
39
define/charts/chart14_서비스_가치_제안_구조.mmd
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
graph TB
|
||||||
|
T1[기술 기반: KT Mi:dm LLM]
|
||||||
|
T2[기술 기반: 통신 인프라]
|
||||||
|
T3[기술 기반: 빅데이터 분석]
|
||||||
|
|
||||||
|
F1[핵심 기능: Zero-Click Marketing]
|
||||||
|
F2[핵심 기능: AI 이벤트 자동 생성]
|
||||||
|
F3[핵심 기능: 멀티채널 자동 발송]
|
||||||
|
F4[핵심 기능: 성과 분석 리포트]
|
||||||
|
|
||||||
|
V1[사업 가치: 소상공인 매출 15-30% 증가]
|
||||||
|
V2[사업 가치: KT 연 480억 원 매출]
|
||||||
|
V3[사업 가치: 사회적 디지털 격차 해소]
|
||||||
|
|
||||||
|
T1 --> F1
|
||||||
|
T1 --> F2
|
||||||
|
T2 --> F3
|
||||||
|
T3 --> F4
|
||||||
|
|
||||||
|
F1 --> V1
|
||||||
|
F2 --> V1
|
||||||
|
F3 --> V1
|
||||||
|
F4 --> V1
|
||||||
|
|
||||||
|
V1 --> V2
|
||||||
|
V1 --> V3
|
||||||
|
|
||||||
|
style T1 fill:#9E9E9E,stroke:#616161,color:#fff
|
||||||
|
style T2 fill:#9E9E9E,stroke:#616161,color:#fff
|
||||||
|
style T3 fill:#9E9E9E,stroke:#616161,color:#fff
|
||||||
|
|
||||||
|
style F1 fill:#64B5F6,stroke:#1976D2,color:#fff
|
||||||
|
style F2 fill:#64B5F6,stroke:#1976D2,color:#fff
|
||||||
|
style F3 fill:#64B5F6,stroke:#1976D2,color:#fff
|
||||||
|
style F4 fill:#64B5F6,stroke:#1976D2,color:#fff
|
||||||
|
|
||||||
|
style V1 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
|
style V2 fill:#2196F3,stroke:#1976D2,color:#fff
|
||||||
|
style V3 fill:#9C27B0,stroke:#7B1FA2,color:#fff
|
||||||
148
define/charts/차트변환가이드.md
Normal file
148
define/charts/차트변환가이드.md
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
# 🎨 시장조사 차트 이미지 변환 완료 가이드
|
||||||
|
|
||||||
|
## ✅ 생성된 파일 목록
|
||||||
|
|
||||||
|
총 **14개의 Mermaid 차트 파일** (.mmd)이 생성되었습니다:
|
||||||
|
|
||||||
|
```
|
||||||
|
define/charts/
|
||||||
|
├── chart01_소상공인_업종별_분포.mmd
|
||||||
|
├── chart02_1차_타겟_세그먼트_규모_비교.mmd
|
||||||
|
├── chart03_디지털_전환_현황.mmd
|
||||||
|
├── chart04_소상공인_주요_스트레스_요인.mmd
|
||||||
|
├── chart05_카카오톡_채널_마케팅_효과.mmd
|
||||||
|
├── chart06_마케팅_자동화_시장_성장_전망.mmd
|
||||||
|
├── chart07_경쟁_우위_비교_매트릭스.mmd
|
||||||
|
├── chart08_AI_자동화_도입_효과.mmd
|
||||||
|
├── chart09_KT_서비스_단계별_성장_전략.mmd
|
||||||
|
├── chart10_ROI_분석_연간_매출_전망.mmd
|
||||||
|
├── chart11_Pain_Point_해결_맵핑.mmd
|
||||||
|
├── chart12_타겟_고객_페르소나_분포.mmd
|
||||||
|
├── chart13_KT_차별화_포인트.mmd
|
||||||
|
└── chart14_서비스_가치_제안_구조.mmd
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🚀 빠른 변환 방법 (5분 완성)
|
||||||
|
|
||||||
|
### 방법 1: Mermaid Live Editor (가장 쉬움) ⭐
|
||||||
|
|
||||||
|
1. **https://mermaid.live/** 접속
|
||||||
|
2. 각 `.mmd` 파일을 메모장으로 열기
|
||||||
|
3. 내용 전체 복사 (Ctrl+A → Ctrl+C)
|
||||||
|
4. Mermaid Live Editor 왼쪽 창에 붙여넣기 (Ctrl+V)
|
||||||
|
5. 오른쪽에서 차트 미리보기 확인
|
||||||
|
6. 상단 **Actions** → **Export PNG** 클릭
|
||||||
|
7. 파일명을 동일하게 `chartXX_이름.png`로 저장
|
||||||
|
8. 14개 차트 모두 반복
|
||||||
|
|
||||||
|
### 방법 2: VS Code Extension
|
||||||
|
|
||||||
|
VS Code가 있다면:
|
||||||
|
|
||||||
|
1. **Markdown Preview Mermaid Support** 확장 설치
|
||||||
|
2. `.mmd` 파일을 `.md`로 임시 변경
|
||||||
|
3. 파일 내용 전후에 ` ```mermaid ` 태그 추가
|
||||||
|
4. 미리보기에서 우클릭 → 이미지 저장
|
||||||
|
|
||||||
|
### 방법 3: 온라인 일괄 변환
|
||||||
|
|
||||||
|
- **Kroki**: https://kroki.io/
|
||||||
|
- 각 .mmd 파일 업로드 → PNG/SVG 다운로드
|
||||||
|
|
||||||
|
## 📏 추천 이미지 설정
|
||||||
|
|
||||||
|
### PNG 변환 시
|
||||||
|
- **해상도**: 1920x1080 이상
|
||||||
|
- **배경**: 투명 (Transparent) 또는 흰색
|
||||||
|
- **포맷**: PNG (프레젠테이션용)
|
||||||
|
|
||||||
|
### SVG 변환 시
|
||||||
|
- **용도**: 인쇄물, 확대 필요 시
|
||||||
|
- **장점**: 무한 확대 가능, 파일 크기 작음
|
||||||
|
|
||||||
|
## 🎯 각 차트별 추천 용도
|
||||||
|
|
||||||
|
| 차트 번호 | 차트 이름 | 활용 시나리오 |
|
||||||
|
|---------|---------|------------|
|
||||||
|
| 01 | 업종별 분포 | 시장 규모 설명, 타겟 정의 |
|
||||||
|
| 02 | 타겟 세그먼트 | 1/2/3차 타겟 전략 발표 |
|
||||||
|
| 03 | 디지털 전환 현황 | 시장 기회 강조 |
|
||||||
|
| 04 | 스트레스 요인 | Pain Point 설명 |
|
||||||
|
| 05 | 카카오톡 효과 | 핵심 채널 정당화 |
|
||||||
|
| 06 | 시장 성장 전망 | 시장 타이밍 증명 |
|
||||||
|
| 07 | 경쟁 포지셔닝 | 차별화 전략 시각화 |
|
||||||
|
| 08 | 도입 효과 | ROI 설득 |
|
||||||
|
| 09 | 성장 전략 | 로드맵 공유 |
|
||||||
|
| 10 | 매출 전망 | 사업성 검증 |
|
||||||
|
| 11 | Pain Point 해결 | 솔루션 적합성 |
|
||||||
|
| 12 | 페르소나 분포 | 타겟 고객 집중도 |
|
||||||
|
| 13 | KT 차별화 | 경쟁 우위 강조 |
|
||||||
|
| 14 | 가치 제안 | 전체 사업 논리 |
|
||||||
|
|
||||||
|
## 🎨 프레젠테이션 조합 추천
|
||||||
|
|
||||||
|
### 경영진 보고용 (5개)
|
||||||
|
- chart01 (시장 규모)
|
||||||
|
- chart06 (시장 성장)
|
||||||
|
- chart10 (매출 전망)
|
||||||
|
- chart13 (KT 강점)
|
||||||
|
- chart14 (가치 제안)
|
||||||
|
|
||||||
|
### 기획 회의용 (6개)
|
||||||
|
- chart02 (타겟 세그먼트)
|
||||||
|
- chart04 (Pain Point)
|
||||||
|
- chart07 (경쟁 분석)
|
||||||
|
- chart09 (로드맵)
|
||||||
|
- chart11 (솔루션 매핑)
|
||||||
|
- chart13 (차별화)
|
||||||
|
|
||||||
|
### 고객 제안용 (4개)
|
||||||
|
- chart05 (카카오톡 효과)
|
||||||
|
- chart08 (도입 효과)
|
||||||
|
- chart11 (Pain Point 해결)
|
||||||
|
- chart14 (가치 제안)
|
||||||
|
|
||||||
|
### 투자 유치용 (5개)
|
||||||
|
- chart01 (시장 규모)
|
||||||
|
- chart06 (시장 성장)
|
||||||
|
- chart10 (매출 전망)
|
||||||
|
- chart13 (KT 강점)
|
||||||
|
- chart14 (사업 가치)
|
||||||
|
|
||||||
|
## 💡 색상 테마 정보
|
||||||
|
|
||||||
|
각 차트는 다음 색상 체계를 사용합니다:
|
||||||
|
|
||||||
|
- **파란색 계열** (#2196F3): 메인, 통신 인프라
|
||||||
|
- **초록색 계열** (#4CAF50): 성장, 긍정적 효과
|
||||||
|
- **주황색 계열** (#FF9800): 데이터, 중요 정보
|
||||||
|
- **보라색 계열** (#9C27B0): AI 기술, 혁신
|
||||||
|
- **빨간색 계열** (#F44336): Pain Point, 문제점
|
||||||
|
- **노란색 계열** (#FFC107): 정부 지원, 특별 항목
|
||||||
|
|
||||||
|
## ❓ 문제 해결
|
||||||
|
|
||||||
|
### 한글이 깨질 때
|
||||||
|
- Mermaid Live Editor 사용 (한글 완벽 지원)
|
||||||
|
- 파일을 UTF-8로 저장했는지 확인
|
||||||
|
|
||||||
|
### 차트가 너무 작게 나올 때
|
||||||
|
- Mermaid Live Editor에서 확대 후 Export
|
||||||
|
- PNG 해상도를 2000x1500 이상으로 설정
|
||||||
|
|
||||||
|
### 색상을 변경하고 싶을 때
|
||||||
|
- `.mmd` 파일 내 `style` 부분의 `fill` 값 수정
|
||||||
|
- 예: `fill:#4CAF50` → `fill:#FF5722`
|
||||||
|
|
||||||
|
## 📚 참고 자료
|
||||||
|
|
||||||
|
- **Mermaid Live Editor**: https://mermaid.live/
|
||||||
|
- **Mermaid 문법 가이드**: https://mermaid.js.org/
|
||||||
|
- **색상 코드 참조**: https://www.color-hex.com/
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**작업 완료!** 🎉
|
||||||
|
|
||||||
|
모든 차트 파일이 `define/charts/` 디렉토리에 준비되었습니다.
|
||||||
|
Mermaid Live Editor를 사용하면 5분 안에 모든 차트를 PNG로 변환할 수 있습니다!
|
||||||
@ -15,11 +15,14 @@ pie title 한국 소상공인 업종별 분포 (596만 개 업체)
|
|||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TB
|
graph TB
|
||||||
subgraph "핵심 타겟 시장 규모"
|
A[전체 소상공인<br/>596만 개]
|
||||||
A[전체 소상공인<br/>596만 개] --> B[1차 타겟: 외식업/카페<br/>79만 개 13.3%]
|
B[1차 타겟: 외식업/카페<br/>79만 개 - 13.3%]
|
||||||
A --> C[2차 타겟: 도소매업<br/>200만 개 33.6%]
|
C[2차 타겟: 도소매업<br/>200만 개 - 33.6%]
|
||||||
A --> D[3차 타겟: 숙박/부동산<br/>85만 개 14.3%]
|
D[3차 타겟: 숙박/부동산<br/>85만 개 - 14.3%]
|
||||||
end
|
|
||||||
|
A --> B
|
||||||
|
A --> C
|
||||||
|
A --> D
|
||||||
|
|
||||||
B --> B1[고용인원<br/>140만 명]
|
B --> B1[고용인원<br/>140만 명]
|
||||||
B --> B2[시장규모<br/>100조 원]
|
B --> B2[시장규모<br/>100조 원]
|
||||||
@ -46,10 +49,10 @@ pie title 코로나19 이후 디지털화 증가 현황
|
|||||||
## 4. 소상공인 주요 스트레스 요인
|
## 4. 소상공인 주요 스트레스 요인
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
%%{init: {'theme':'base'}}%%
|
%%{init: {'theme':'base', 'themeVariables': {'xyChart': {'plotColorPalette': '#2196F3'}}}}%%
|
||||||
xychart-beta
|
xychart-beta
|
||||||
title "소상공인 업무별 스트레스 비율 (%)"
|
title "소상공인 업무별 스트레스 비율"
|
||||||
x-axis [직원관리, 비용관리, 매장홍보, 기타]
|
x-axis ["직원관리", "비용관리", "매장홍보", "기타"]
|
||||||
y-axis "응답 비율 (%)" 0 --> 70
|
y-axis "응답 비율 (%)" 0 --> 70
|
||||||
bar [65.1, 50.5, 20.2, 15]
|
bar [65.1, 50.5, 20.2, 15]
|
||||||
```
|
```
|
||||||
@ -71,52 +74,56 @@ graph LR
|
|||||||
## 6. 마케팅 자동화 시장 성장 전망
|
## 6. 마케팅 자동화 시장 성장 전망
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
%%{init: {'theme':'base'}}%%
|
graph LR
|
||||||
xychart-beta
|
A[2024년<br/>4억 달러] --> B[2027년<br/>5.3억 달러]
|
||||||
title "한국 마케팅 자동화 플랫폼 시장 규모 (억 달러)"
|
B --> C[2030년<br/>7억 달러]
|
||||||
x-axis [2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033]
|
C --> D[2033년<br/>9억 달러]
|
||||||
y-axis "시장 규모 (억 달러)" 0 --> 10
|
|
||||||
line [4.0, 4.4, 4.8, 5.3, 5.8, 6.4, 7.0, 7.7, 8.5, 9.0]
|
E[연평균 성장률<br/>10%]
|
||||||
|
|
||||||
|
style A fill:#90CAF9,stroke:#1976D2,color:#000
|
||||||
|
style B fill:#64B5F6,stroke:#1976D2,color:#fff
|
||||||
|
style C fill:#42A5F5,stroke:#1565C0,color:#fff
|
||||||
|
style D fill:#2196F3,stroke:#0D47A1,color:#fff
|
||||||
|
style E fill:#FFC107,stroke:#F57C00,color:#000
|
||||||
```
|
```
|
||||||
|
|
||||||
## 7. 경쟁 우위 비교 매트릭스
|
## 7. 경쟁 우위 비교 매트릭스
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
quadrantChart
|
graph TB
|
||||||
title KT AI 이벤트 서비스 포지셔닝
|
subgraph "높은 통합성"
|
||||||
x-axis 낮은 가격 --> 높은 가격
|
KT[KT AI 서비스<br/>가성비 + 통합]
|
||||||
y-axis 낮은 통합성 --> 높은 통합성
|
end
|
||||||
quadrant-1 프리미엄 통합
|
|
||||||
quadrant-2 가성비 통합
|
subgraph "중간 통합성"
|
||||||
quadrant-3 저가 단순
|
HS[HubSpot<br/>고가 + 기능]
|
||||||
quadrant-4 고가 단순
|
MC[Mailchimp<br/>중가 + 이메일]
|
||||||
HubSpot: [0.8, 0.6]
|
end
|
||||||
Mailchimp: [0.6, 0.5]
|
|
||||||
카카오톡 채널: [0.2, 0.4]
|
subgraph "낮은 통합성"
|
||||||
가제트AI: [0.4, 0.3]
|
KK[카카오톡 채널<br/>저가 + 단순]
|
||||||
KT AI 서비스: [0.3, 0.9]
|
GA[가제트AI<br/>중저가 + 콘텐츠]
|
||||||
|
end
|
||||||
|
|
||||||
|
style KT fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
|
style HS fill:#9E9E9E,stroke:#616161,color:#fff
|
||||||
|
style MC fill:#9E9E9E,stroke:#616161,color:#fff
|
||||||
|
style KK fill:#BDBDBD,stroke:#757575,color:#000
|
||||||
|
style GA fill:#BDBDBD,stroke:#757575,color:#000
|
||||||
```
|
```
|
||||||
|
|
||||||
## 8. AI 자동화 도입 효과
|
## 8. AI 자동화 도입 효과
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TD
|
graph LR
|
||||||
subgraph "도입 전"
|
A1[도입 전<br/>홍보 시간 주당 5시간] -->|60% 단축| B1[도입 후<br/>주당 2시간]
|
||||||
A1[홍보 시간<br/>주당 5시간]
|
A2[도입 전<br/>매출 100%] -->|15-30% 증가| B2[도입 후<br/>매출 115-130%]
|
||||||
A2[매출 기준선<br/>100%]
|
A3[도입 전<br/>고객 유지율 기준] -->|30% 증가| B3[도입 후<br/>단골 고객 증가]
|
||||||
A3[고객 유지율<br/>기준]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph "AI 자동화 도입 후"
|
|
||||||
B1[홍보 시간<br/>60% 단축<br/>→ 2시간]
|
|
||||||
B2[매출 증가<br/>15-30%<br/>→ 115-130%]
|
|
||||||
B3[단골 고객<br/>30% 증가]
|
|
||||||
end
|
|
||||||
|
|
||||||
A1 -.->|자동화| B1
|
|
||||||
A2 -.->|프로모션| B2
|
|
||||||
A3 -.->|재방문 유도| B3
|
|
||||||
|
|
||||||
|
style A1 fill:#E0E0E0,stroke:#9E9E9E,color:#000
|
||||||
|
style A2 fill:#E0E0E0,stroke:#9E9E9E,color:#000
|
||||||
|
style A3 fill:#E0E0E0,stroke:#9E9E9E,color:#000
|
||||||
style B1 fill:#4CAF50,stroke:#388E3C,color:#fff
|
style B1 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
style B2 fill:#4CAF50,stroke:#388E3C,color:#fff
|
style B2 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
style B3 fill:#4CAF50,stroke:#388E3C,color:#fff
|
style B3 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
@ -125,60 +132,40 @@ graph TD
|
|||||||
## 9. KT 서비스 단계별 성장 전략
|
## 9. KT 서비스 단계별 성장 전략
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
timeline
|
graph LR
|
||||||
title KT AI 이벤트 서비스 단계별 전략
|
P1[Phase 1 - 6개월<br/>MVP 출시<br/>외식업/카페 1만 개<br/>월 9,900-19,800원] --> P2[Phase 2 - 12개월<br/>기능 확장<br/>소매/뷰티 확대<br/>5만 개 업체<br/>AI 이미지 생성]
|
||||||
section Phase 1 (6개월)
|
P2 --> P3[Phase 3 - 18-24개월<br/>생태계 구축<br/>전 업종 20만 개<br/>AI 어시스턴트<br/>파트너십 확장]
|
||||||
MVP 출시 : 외식업/카페 1만 개
|
|
||||||
: 월 9,900~19,800원
|
style P1 fill:#90CAF9,stroke:#1976D2,color:#000
|
||||||
: 카카오톡 메시지 자동발송
|
style P2 fill:#42A5F5,stroke:#1565C0,color:#fff
|
||||||
section Phase 2 (12개월)
|
style P3 fill:#1976D2,stroke:#0D47A1,color:#fff
|
||||||
기능 확장 : 소매/뷰티 업종 확대
|
|
||||||
: 5만 개 업체
|
|
||||||
: AI 이미지 생성
|
|
||||||
: 멀티채널 발송
|
|
||||||
section Phase 3 (18-24개월)
|
|
||||||
생태계 구축 : 전 업종 20만 개
|
|
||||||
: AI 어시스턴트
|
|
||||||
: 업종별 커뮤니티
|
|
||||||
: 파트너십 확장
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 10. ROI 분석 - 연간 매출 전망
|
## 10. ROI 분석 - 연간 매출 전망
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
%%{init: {'theme':'base'}}%%
|
graph TB
|
||||||
xychart-beta
|
P1[Phase 1 - 6개월<br/>연간 매출 24억 원<br/>가입자 1만 개]
|
||||||
title "KT 예상 매출 (억 원) - 가입자 성장 시나리오"
|
P2[Phase 2 - 12개월<br/>연간 매출 120억 원<br/>가입자 5만 개]
|
||||||
x-axis [Phase1-6M, Phase2-12M, Phase3-24M]
|
P3[Phase 3 - 24개월<br/>연간 매출 480억 원<br/>가입자 20만 개]
|
||||||
y-axis "연간 매출 (억 원)" 0 --> 600
|
|
||||||
bar [24, 120, 480]
|
P1 --> P2
|
||||||
|
P2 --> P3
|
||||||
|
|
||||||
|
style P1 fill:#81C784,stroke:#388E3C,color:#000
|
||||||
|
style P2 fill:#4CAF50,stroke:#2E7D32,color:#fff
|
||||||
|
style P3 fill:#2E7D32,stroke:#1B5E20,color:#fff
|
||||||
```
|
```
|
||||||
|
|
||||||
## 11. Pain Point 해결 맵핑
|
## 11. Pain Point 해결 맵핑
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph LR
|
graph LR
|
||||||
subgraph "소상공인 Pain Points"
|
P1[Pain Point 1<br/>시간 부족] --> S1[Solution<br/>원클릭 자동화]
|
||||||
P1[시간 부족]
|
P2[Pain Point 2<br/>전문지식 부족] --> S2[Solution<br/>AI 템플릿 추천]
|
||||||
P2[전문지식 부족]
|
P3[Pain Point 3<br/>높은 광고비] --> S3[Solution<br/>무료/저가 메시지]
|
||||||
P3[높은 광고비]
|
P4[Pain Point 4<br/>효과 측정 어려움] --> S4[Solution<br/>자동 리포트 분석]
|
||||||
P4[효과 측정 어려움]
|
P5[Pain Point 5<br/>일관성 부족] --> S5[Solution<br/>정기 발송 스케줄링]
|
||||||
P5[일관성 부족]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph "AI 자동화 솔루션"
|
|
||||||
S1[원클릭<br/>자동화]
|
|
||||||
S2[AI 템플릿<br/>추천]
|
|
||||||
S3[무료/저가<br/>메시지]
|
|
||||||
S4[자동 리포트<br/>분석]
|
|
||||||
S5[정기 발송<br/>스케줄링]
|
|
||||||
end
|
|
||||||
|
|
||||||
P1 --> S1
|
|
||||||
P2 --> S2
|
|
||||||
P3 --> S3
|
|
||||||
P4 --> S4
|
|
||||||
P5 --> S5
|
|
||||||
|
|
||||||
style P1 fill:#F44336,stroke:#C62828,color:#fff
|
style P1 fill:#F44336,stroke:#C62828,color:#fff
|
||||||
style P2 fill:#F44336,stroke:#C62828,color:#fff
|
style P2 fill:#F44336,stroke:#C62828,color:#fff
|
||||||
@ -205,51 +192,54 @@ pie title 소상공인 연령대 분포
|
|||||||
## 13. KT 차별화 포인트 (강점 분석)
|
## 13. KT 차별화 포인트 (강점 분석)
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
mindmap
|
graph TB
|
||||||
root((KT AI<br/>이벤트 서비스))
|
ROOT[KT AI 이벤트 서비스<br/>핵심 차별화 포인트]
|
||||||
통신 인프라
|
|
||||||
으랏차차패키지
|
ROOT --> A1[1. 통신 인프라]
|
||||||
AI 전화
|
ROOT --> A2[2. 데이터 자산]
|
||||||
SMS/MMS
|
ROOT --> A3[3. AI 기술]
|
||||||
데이터 자산
|
ROOT --> A4[4. 생태계 통합]
|
||||||
114 정보<br/>420만 사업자
|
ROOT --> A5[5. 정부 지원]
|
||||||
업종별 분석
|
|
||||||
지역별 분석
|
A1 --> A1_SUB["• 으랏차차패키지<br/>• AI 전화<br/>• SMS/MMS"]
|
||||||
AI 기술
|
|
||||||
Mi:dm LLM
|
A2 --> A2_SUB["• 114 정보 420만 사업자<br/>• 업종별 분석<br/>• 지역별 분석"]
|
||||||
한국어 최적화
|
|
||||||
문화 맥락 이해
|
A3 --> A3_SUB["• Mi:dm LLM<br/>• 한국어 최적화<br/>• 문화 맥락 이해"]
|
||||||
생태계 통합
|
|
||||||
카카오톡
|
A4 --> A4_SUB["• 카카오톡<br/>• 네이버<br/>• 배달앱"]
|
||||||
네이버
|
|
||||||
배달앱
|
A5 --> A5_SUB["• 디지털 전환 지원금<br/>• 인증 솔루션"]
|
||||||
정부 지원
|
|
||||||
디지털 전환<br/>지원금
|
style ROOT fill:#1976D2,stroke:#0D47A1,color:#fff
|
||||||
인증 솔루션
|
style A1 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
|
style A2 fill:#FF9800,stroke:#F57C00,color:#fff
|
||||||
|
style A3 fill:#9C27B0,stroke:#7B1FA2,color:#fff
|
||||||
|
style A4 fill:#F44336,stroke:#C62828,color:#fff
|
||||||
|
style A5 fill:#FFC107,stroke:#FFA000,color:#000
|
||||||
|
style A1_SUB fill:#E8F5E9,stroke:#4CAF50,color:#000
|
||||||
|
style A2_SUB fill:#FFF3E0,stroke:#FF9800,color:#000
|
||||||
|
style A3_SUB fill:#F3E5F5,stroke:#9C27B0,color:#000
|
||||||
|
style A4_SUB fill:#FFEBEE,stroke:#F44336,color:#000
|
||||||
|
style A5_SUB fill:#FFFDE7,stroke:#FFC107,color:#000
|
||||||
```
|
```
|
||||||
|
|
||||||
## 14. 서비스 가치 제안 구조
|
## 14. 서비스 가치 제안 구조
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TB
|
graph TB
|
||||||
subgraph "사업 가치"
|
T1[기술 기반: KT Mi:dm LLM]
|
||||||
V1[소상공인<br/>매출 15-30% 증가]
|
T2[기술 기반: 통신 인프라]
|
||||||
V2[KT<br/>연 480억 원 매출]
|
T3[기술 기반: 빅데이터 분석]
|
||||||
V3[사회적<br/>디지털 격차 해소]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph "핵심 기능"
|
F1[핵심 기능: Zero-Click Marketing]
|
||||||
F1[Zero-Click<br/>Marketing]
|
F2[핵심 기능: AI 이벤트 자동 생성]
|
||||||
F2[AI 이벤트<br/>자동 생성]
|
F3[핵심 기능: 멀티채널 자동 발송]
|
||||||
F3[멀티채널<br/>자동 발송]
|
F4[핵심 기능: 성과 분석 리포트]
|
||||||
F4[성과 분석<br/>리포트]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph "기술 기반"
|
V1[사업 가치: 소상공인 매출 15-30% 증가]
|
||||||
T1[KT Mi:dm<br/>LLM]
|
V2[사업 가치: KT 연 480억 원 매출]
|
||||||
T2[통신 인프라]
|
V3[사업 가치: 사회적 디지털 격차 해소]
|
||||||
T3[빅데이터<br/>분석]
|
|
||||||
end
|
|
||||||
|
|
||||||
T1 --> F1
|
T1 --> F1
|
||||||
T1 --> F2
|
T1 --> F2
|
||||||
@ -264,6 +254,15 @@ graph TB
|
|||||||
V1 --> V2
|
V1 --> V2
|
||||||
V1 --> V3
|
V1 --> V3
|
||||||
|
|
||||||
|
style T1 fill:#9E9E9E,stroke:#616161,color:#fff
|
||||||
|
style T2 fill:#9E9E9E,stroke:#616161,color:#fff
|
||||||
|
style T3 fill:#9E9E9E,stroke:#616161,color:#fff
|
||||||
|
|
||||||
|
style F1 fill:#64B5F6,stroke:#1976D2,color:#fff
|
||||||
|
style F2 fill:#64B5F6,stroke:#1976D2,color:#fff
|
||||||
|
style F3 fill:#64B5F6,stroke:#1976D2,color:#fff
|
||||||
|
style F4 fill:#64B5F6,stroke:#1976D2,color:#fff
|
||||||
|
|
||||||
style V1 fill:#4CAF50,stroke:#388E3C,color:#fff
|
style V1 fill:#4CAF50,stroke:#388E3C,color:#fff
|
||||||
style V2 fill:#2196F3,stroke:#1976D2,color:#fff
|
style V2 fill:#2196F3,stroke:#1976D2,color:#fff
|
||||||
style V3 fill:#9C27B0,stroke:#7B1FA2,color:#fff
|
style V3 fill:#9C27B0,stroke:#7B1FA2,color:#fff
|
||||||
|
|||||||
96
tools/check-mermaid.ps1
Normal file
96
tools/check-mermaid.ps1
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
# Mermaid Syntax Checker using Docker Container
|
||||||
|
# Similar to PlantUML checker - keeps container running for better performance
|
||||||
|
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory=$true, Position=0)]
|
||||||
|
[string]$FilePath
|
||||||
|
)
|
||||||
|
|
||||||
|
# Check if file exists
|
||||||
|
if (-not (Test-Path $FilePath)) {
|
||||||
|
Write-Host "Error: File not found: $FilePath" -ForegroundColor Red
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get absolute path
|
||||||
|
$absolutePath = (Resolve-Path $FilePath).Path
|
||||||
|
$fileName = Split-Path $absolutePath -Leaf
|
||||||
|
|
||||||
|
Write-Host "`nChecking Mermaid syntax for: $fileName" -ForegroundColor Cyan
|
||||||
|
Write-Host ("=" * 60) -ForegroundColor Gray
|
||||||
|
|
||||||
|
# Check if mermaid container is running
|
||||||
|
$containerRunning = docker ps --filter "name=mermaid-cli" --format "{{.Names}}" 2>$null
|
||||||
|
|
||||||
|
if (-not $containerRunning) {
|
||||||
|
Write-Host "Error: Mermaid CLI container is not running." -ForegroundColor Red
|
||||||
|
Write-Host "Please follow the setup instructions in the Mermaid guide to start the container." -ForegroundColor Yellow
|
||||||
|
Write-Host "`nQuick setup commands:" -ForegroundColor Cyan
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "# 1. Start container with root privileges (port 48080)" -ForegroundColor Green
|
||||||
|
Write-Host "docker run -d --rm --name mermaid-cli -u root -p 48080:8080 --entrypoint sh minlag/mermaid-cli:latest -c `"while true;do sleep 3600; done`"" -ForegroundColor White
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "# 2. Install Chromium and dependencies" -ForegroundColor Green
|
||||||
|
Write-Host "docker exec mermaid-cli sh -c `"apk add --no-cache chromium chromium-chromedriver nss freetype harfbuzz ca-certificates ttf-freefont`"" -ForegroundColor White
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "# 3. Create Puppeteer configuration" -ForegroundColor Green
|
||||||
|
Write-Host "docker exec mermaid-cli sh -c `"echo '{```"executablePath```": ```"/usr/bin/chromium-browser```", ```"args```": [```"--no-sandbox```", ```"--disable-setuid-sandbox```", ```"--disable-dev-shm-usage```"]}' > /tmp/puppeteer-config.json`"" -ForegroundColor White
|
||||||
|
Write-Host ""
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Set Puppeteer configuration file path
|
||||||
|
$puppeteerConfigFile = "/tmp/puppeteer-config.json"
|
||||||
|
|
||||||
|
# Generate unique temp filename
|
||||||
|
$timestamp = Get-Date -Format "yyyyMMddHHmmss"
|
||||||
|
$processId = $PID
|
||||||
|
$tempFile = "/tmp/mermaid_${timestamp}_${processId}.mmd"
|
||||||
|
$outputFile = "/tmp/mermaid_${timestamp}_${processId}.svg"
|
||||||
|
|
||||||
|
try {
|
||||||
|
# Copy file to container
|
||||||
|
Write-Host "Copying file to container..." -ForegroundColor Gray
|
||||||
|
docker cp "$absolutePath" "mermaid-cli:$tempFile" 2>&1 | Out-Null
|
||||||
|
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
Write-Host "Error: Failed to copy file to container" -ForegroundColor Red
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Run syntax check with Puppeteer configuration
|
||||||
|
Write-Host "Running syntax check..." -ForegroundColor Gray
|
||||||
|
$output = docker exec mermaid-cli sh -c "cd /home/mermaidcli && node_modules/.bin/mmdc -i '$tempFile' -o '$outputFile' -p '$puppeteerConfigFile' -q" 2>&1
|
||||||
|
$exitCode = $LASTEXITCODE
|
||||||
|
|
||||||
|
if ($exitCode -eq 0) {
|
||||||
|
Write-Host "`nSuccess: Mermaid syntax is valid!" -ForegroundColor Green
|
||||||
|
} else {
|
||||||
|
Write-Host "`nError: Mermaid syntax validation failed!" -ForegroundColor Red
|
||||||
|
Write-Host "`nError details:" -ForegroundColor Red
|
||||||
|
|
||||||
|
# Parse and display error messages
|
||||||
|
$errorLines = $output -split "`n"
|
||||||
|
foreach ($line in $errorLines) {
|
||||||
|
if ($line -match "Error:|Parse error|Expecting|Syntax error") {
|
||||||
|
Write-Host " $line" -ForegroundColor Red
|
||||||
|
} elseif ($line -match "line \d+|at line") {
|
||||||
|
Write-Host " $line" -ForegroundColor Yellow
|
||||||
|
} elseif ($line.Trim() -ne "") {
|
||||||
|
Write-Host " $line" -ForegroundColor DarkRed
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
# Clean up temp files
|
||||||
|
Write-Host "`nCleaning up..." -ForegroundColor Gray
|
||||||
|
docker exec mermaid-cli rm -f "$tempFile" "$outputFile" 2>&1 | Out-Null
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "`nValidation complete!" -ForegroundColor Cyan
|
||||||
|
|
||||||
|
# Note: Container is kept running for subsequent checks
|
||||||
|
# To stop: docker stop mermaid-cli && docker rm mermaid-cli
|
||||||
65
tools/extract-charts.sh
Normal file
65
tools/extract-charts.sh
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Extract mermaid charts from markdown file
|
||||||
|
|
||||||
|
INPUT_FILE="define/시장조사-차트.md"
|
||||||
|
OUTPUT_DIR="define/charts"
|
||||||
|
|
||||||
|
echo "Extracting Mermaid charts from: $INPUT_FILE"
|
||||||
|
echo "Output directory: $OUTPUT_DIR"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Create output directory
|
||||||
|
mkdir -p "$OUTPUT_DIR"
|
||||||
|
|
||||||
|
# Counter
|
||||||
|
chart_num=0
|
||||||
|
|
||||||
|
# Read file and extract charts
|
||||||
|
in_mermaid=false
|
||||||
|
current_chart=""
|
||||||
|
current_title=""
|
||||||
|
|
||||||
|
while IFS= read -r line || [ -n "$line" ]; do
|
||||||
|
# Check for section header (## number. title)
|
||||||
|
if [[ $line =~ ^##[[:space:]]([0-9]+)\.[[:space:]](.+)$ ]]; then
|
||||||
|
num="${BASH_REMATCH[1]}"
|
||||||
|
title="${BASH_REMATCH[2]}"
|
||||||
|
current_title=$(printf "chart%02d_%s" "$num" "${title// /_}")
|
||||||
|
current_title="${current_title//\//_}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for mermaid start
|
||||||
|
if [[ $line == '```mermaid' ]]; then
|
||||||
|
in_mermaid=true
|
||||||
|
current_chart=""
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for mermaid end
|
||||||
|
if [[ $line == '```' ]] && $in_mermaid; then
|
||||||
|
# Save chart
|
||||||
|
if [ -n "$current_title" ]; then
|
||||||
|
filename="${current_title}.mmd"
|
||||||
|
echo "$current_chart" > "$OUTPUT_DIR/$filename"
|
||||||
|
echo " ✓ Saved: $filename"
|
||||||
|
((chart_num++))
|
||||||
|
fi
|
||||||
|
in_mermaid=false
|
||||||
|
current_chart=""
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Collect chart lines
|
||||||
|
if $in_mermaid; then
|
||||||
|
if [ -n "$current_chart" ]; then
|
||||||
|
current_chart+=$'\n'
|
||||||
|
fi
|
||||||
|
current_chart+="$line"
|
||||||
|
fi
|
||||||
|
done < "$INPUT_FILE"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "✅ Successfully extracted $chart_num charts!"
|
||||||
|
echo ""
|
||||||
|
echo "Chart files saved in: $OUTPUT_DIR"
|
||||||
47
tools/extract-mermaid-charts.ps1
Normal file
47
tools/extract-mermaid-charts.ps1
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# Mermaid Chart Extractor
|
||||||
|
# Extracts Mermaid charts from markdown and saves them as individual .mmd files
|
||||||
|
|
||||||
|
$markdownFile = "define/시장조사-차트.md"
|
||||||
|
$outputDir = "define/charts"
|
||||||
|
|
||||||
|
Write-Host "Extracting Mermaid charts from: $markdownFile"
|
||||||
|
Write-Host "Output directory: $outputDir`n"
|
||||||
|
|
||||||
|
# Create output directory
|
||||||
|
if (-not (Test-Path $outputDir)) {
|
||||||
|
New-Item -ItemType Directory -Path $outputDir | Out-Null
|
||||||
|
}
|
||||||
|
|
||||||
|
# Read markdown file
|
||||||
|
$content = Get-Content $markdownFile -Raw -Encoding UTF8
|
||||||
|
|
||||||
|
# Extract all mermaid blocks with their section headers
|
||||||
|
$pattern = '## (\d+)\. (.+?)\n\n```mermaid\n(.*?)```'
|
||||||
|
$matches = [regex]::Matches($content, $pattern, [System.Text.RegularExpressions.RegexOptions]::Singleline)
|
||||||
|
|
||||||
|
Write-Host "Found $($matches.Count) Mermaid charts`n"
|
||||||
|
|
||||||
|
# Save each chart
|
||||||
|
$count = 0
|
||||||
|
foreach ($match in $matches) {
|
||||||
|
$num = $match.Groups[1].Value
|
||||||
|
$title = $match.Groups[2].Value
|
||||||
|
$chartCode = $match.Groups[3].Value
|
||||||
|
|
||||||
|
# Clean filename
|
||||||
|
$filename = "chart$($num.PadLeft(2,'0'))_$($title.Replace(' ', '_').Replace('/', '_')).mmd"
|
||||||
|
$filepath = Join-Path $outputDir $filename
|
||||||
|
|
||||||
|
# Write mermaid code
|
||||||
|
$chartCode.Trim() | Out-File -FilePath $filepath -Encoding UTF8 -NoNewline
|
||||||
|
|
||||||
|
Write-Host " ✓ Saved: $filename"
|
||||||
|
$count++
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "`n✅ Successfully extracted $count charts!"
|
||||||
|
Write-Host "`nChart files saved in: $outputDir"
|
||||||
|
Write-Host "`nNext steps:"
|
||||||
|
Write-Host "1. Use Mermaid Live Editor: https://mermaid.live/"
|
||||||
|
Write-Host "2. Copy-paste each .mmd file content"
|
||||||
|
Write-Host "3. Export as PNG or SVG"
|
||||||
61
tools/extract-mermaid-charts.py
Normal file
61
tools/extract-mermaid-charts.py
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Mermaid Chart Extractor
|
||||||
|
Extracts Mermaid charts from markdown and saves them as individual .mmd files
|
||||||
|
"""
|
||||||
|
|
||||||
|
import re
|
||||||
|
import os
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
|
def extract_mermaid_charts(markdown_file, output_dir):
|
||||||
|
"""Extract all mermaid code blocks from markdown file"""
|
||||||
|
|
||||||
|
# Read markdown file
|
||||||
|
with open(markdown_file, 'r', encoding='utf-8') as f:
|
||||||
|
content = f.read()
|
||||||
|
|
||||||
|
# Find all mermaid code blocks
|
||||||
|
pattern = r'```mermaid\n(.*?)```'
|
||||||
|
matches = re.findall(pattern, content, re.DOTALL)
|
||||||
|
|
||||||
|
# Create output directory
|
||||||
|
os.makedirs(output_dir, exist_ok=True)
|
||||||
|
|
||||||
|
# Extract chart titles from markdown headers
|
||||||
|
title_pattern = r'## (\d+)\. (.+?)\n\n```mermaid'
|
||||||
|
titles = re.findall(title_pattern, content, re.DOTALL)
|
||||||
|
|
||||||
|
print(f"Found {len(matches)} Mermaid charts")
|
||||||
|
|
||||||
|
# Save each chart as separate .mmd file
|
||||||
|
for i, (chart_code, (num, title)) in enumerate(zip(matches, titles), 1):
|
||||||
|
# Clean filename
|
||||||
|
filename = f"chart{num:02d}_{title.replace(' ', '_').replace('/', '_')}.mmd"
|
||||||
|
filepath = os.path.join(output_dir, filename)
|
||||||
|
|
||||||
|
# Write mermaid code
|
||||||
|
with open(filepath, 'w', encoding='utf-8') as f:
|
||||||
|
f.write(chart_code.strip())
|
||||||
|
|
||||||
|
print(f" ✓ Saved: {filename}")
|
||||||
|
|
||||||
|
return len(matches)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
# Configuration
|
||||||
|
markdown_file = "define/시장조사-차트.md"
|
||||||
|
output_dir = "define/charts"
|
||||||
|
|
||||||
|
print(f"Extracting Mermaid charts from: {markdown_file}")
|
||||||
|
print(f"Output directory: {output_dir}\n")
|
||||||
|
|
||||||
|
count = extract_mermaid_charts(markdown_file, output_dir)
|
||||||
|
|
||||||
|
print(f"\n✅ Successfully extracted {count} charts!")
|
||||||
|
print(f"\nNext steps:")
|
||||||
|
print(f"1. Use Mermaid Live Editor: https://mermaid.live/")
|
||||||
|
print(f"2. Copy-paste each .mmd file content")
|
||||||
|
print(f"3. Export as PNG or SVG")
|
||||||
Loading…
x
Reference in New Issue
Block a user