77일차 실행 기록 분석: 실습 15개 · 강의(개요 30장 · 단계 문서 · 4단계 정리 · 05 바이브), 정답본 LAB-A · answers · VIBE-A · tlog 포함

This commit is contained in:
mcchae committed 2026-11-01 23:43:55 +09:00
1 parent 036eae1c6a
commit dcd4cdd66b
148 files changed
+40344

No files matched your search

+76
View File
@@ -0,0 +1,76 @@
{
"webhook": "my-log-report",
"cases": [
{
"name": "날짜별 · 월요일",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"by_day.2026-10-26.total": 70,
"by_day.2026-10-26.errors": 16,
"by_day.2026-10-26.error_rate": 0.2286
}
}
},
{
"name": "날짜별 · 목요일",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"by_day.2026-10-29.total": 97,
"by_day.2026-10-29.errors": 5
}
}
},
{
"name": "날짜는 10일",
"request": "requests/two-weeks.json",
"expect": {
"contains": {
"by_day": [
"\"2026-10-19\""
]
},
"not_contains": {
"by_day": [
"\"2026-10-24\"",
"\"2026-10-25\""
]
}
}
},
{
"name": "릴리스별 다시 묻기 · 1.2.0",
"request": "requests/two-weeks.json",
"expect": {
"contains": {
"by_release": [
"\"1.2.0\": {\"answers\": 8, \"repeats\": 5, \"repeat_rate\": 0.625}"
]
}
}
},
{
"name": "릴리스별 다시 묻기 · 1.0.0 · 1.1.0",
"request": "requests/two-weeks.json",
"expect": {
"contains": {
"by_release": [
"\"1.0.0\": {\"answers\": 402, \"repeats\": 19, \"repeat_rate\": 0.0473}"
]
}
}
},
{
"name": "1.1.0",
"request": "requests/two-weeks.json",
"expect": {
"contains": {
"by_release": [
"\"1.1.0\": {\"answers\": 181, \"repeats\": 14, \"repeat_rate\": 0.0773}"
]
}
}
}
]
}
+62
View File
@@ -0,0 +1,62 @@
{
"webhook": "my-log-report",
"cases": [
{
"name": "두 주 · 단계별 p95",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"steps.faq_ms.p95": 39,
"steps.answer_ms.p95": 2509,
"steps.answer_ms.p50": 1179
}
}
},
{
"name": "두 주 · 단계마다 잰 실행 수",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"steps.faq_ms.runs": 646,
"steps.answer_ms.runs": 596
}
}
},
{
"name": "월요일 · FAQ 단계가 느림",
"request": "requests/monday.json",
"expect": {
"equals": {
"steps.faq_ms.p95": 1000,
"steps.answer_ms.p95": 2482
}
}
},
{
"name": "두 주 · 비용",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"cost_usd": 0.07836,
"cost_per_run": 0.000118,
"llm_calls": 596
}
}
},
{
"name": "빈 기간 · 비용 0",
"body": {
"from": "2026-11-02",
"to": "2026-11-06"
},
"expect": {
"equals": {
"cost_usd": 0,
"cost_per_run": 0,
"llm_calls": 0,
"steps.faq_ms.p95": 0
}
}
}
]
}
+82
View File
@@ -0,0 +1,82 @@
{
"webhook": "my-log-report",
"before": [
{
"url": "http://localhost:8800/logs-reset",
"body": {}
}
],
"cases": [
{
"name": "하루 · from = to (포함)",
"request": "requests/monday.json",
"expect": {
"equals": {
"total": 70,
"errors": 16
}
}
},
{
"name": "빈 기간 · 0건이어도 200",
"body": {
"from": "2026-11-02",
"to": "2026-11-06"
},
"expect": {
"equals": {
"total": 0,
"errors": 0,
"error_rate": 0,
"p95_ms": 0
}
}
},
{
"name": "주말 · 실행이 없는 날",
"body": {
"from": "2026-10-24",
"to": "2026-10-25"
},
"expect": {
"equals": {
"total": 0
}
}
},
{
"name": "기간을 비우면 전체",
"body": {},
"expect": {
"equals": {
"total": 666
}
}
},
{
"name": "source seed · 두 주 기록만",
"body": {
"from": "2026-10-19",
"to": "2026-10-30",
"source": "seed"
},
"expect": {
"equals": {
"total": 666
}
}
},
{
"name": "source live · 오늘 실습 기록 (아직 없음)",
"body": {
"source": "live"
},
"expect": {
"equals": {
"total": 0,
"error_rate": 0
}
}
}
]
}
+63
View File
@@ -0,0 +1,63 @@
{
"webhook": "my-log-report",
"cases": [
{
"name": "두 주 전체",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"total": 666,
"errors": 21,
"error_rate": 0.0315,
"p50_ms": 1205,
"p95_ms": 2537
}
}
},
{
"name": "두 주 · 갈래별",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"by_route.자동 답변": 591,
"by_route.담당자 연결": 34,
"by_route.잠시 후": 20,
"by_route.오류": 21
}
}
},
{
"name": "첫 주",
"request": "requests/week1.json",
"expect": {
"equals": {
"total": 309,
"errors": 0,
"error_rate": 0
}
}
},
{
"name": "둘째 주",
"request": "requests/week2.json",
"expect": {
"equals": {
"total": 357,
"errors": 21,
"error_rate": 0.0588,
"p95_ms": 2598
}
}
},
{
"name": "10월 26일 하루",
"request": "requests/monday.json",
"expect": {
"equals": {
"total": 70,
"errors": 16
}
}
}
]
}
+68
View File
@@ -0,0 +1,68 @@
{
"webhook": "my-log-report",
"cases": [
{
"name": "두 주 · 다시 묻는 비율이 가장 높은 주제",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"repeat_topics.0.topic": "프린터",
"repeat_topics.0.answers": 81,
"repeat_topics.0.repeats": 8,
"repeat_topics.0.repeat_rate": 0.0988
}
}
},
{
"name": "두 주 · 수로는 비밀번호가 가장 많지만 비율은 2위",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"repeat_topics.1.topic": "비밀번호",
"repeat_topics.1.repeats": 9,
"repeat_topics.1.repeat_rate": 0.0647
}
}
},
{
"name": "두 주 · 다시 물은 주제는 6개",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"repeat_topics.5.topic": "설치",
"repeat_topics.5.repeat_rate": 0.0328
},
"not_contains": {
"repeat_topics": [
"와이파이"
]
}
}
},
{
"name": "첫 주 · 설치는 다시 묻지 않음",
"request": "requests/week1.json",
"expect": {
"equals": {
"repeat_topics.0.topic": "프린터"
},
"not_contains": {
"repeat_topics": [
"설치"
]
}
}
},
{
"name": "앞의 지표는 그대로",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"total": 666,
"failures.0.count": 16,
"anomalies.0.hour": "2026-10-26T09"
}
}
}
]
}
+40
View File
@@ -0,0 +1,40 @@
{
"webhook": "my-log-summary",
"cases": [
{
"name": "요약 · 숫자는 통계에 있는 것만",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"numbers_ok": true,
"top_topic": "와이파이",
"worst_hour": "2026-10-26T09"
}
}
},
{
"name": "요약 · 주제와 시간대를 말함",
"request": "requests/two-weeks.json",
"expect": {
"contains": {
"summary": [
"와이파이"
]
}
}
},
{
"name": "요약 · 날짜",
"request": "requests/two-weeks.json",
"expect": {
"contains": {
"summary": [
"10월 26일",
"10-26",
"26일"
]
}
}
}
]
}
+67
View File
@@ -0,0 +1,67 @@
{
"webhook": "my-log-report",
"cases": [
{
"name": "첫 주 · 오류 0 → 이상 없음",
"request": "requests/week1.json",
"expect": {
"equals": {
"error_rate": 0,
"anomalies": []
}
}
},
{
"name": "둘째 주 · 기준 0.0588 × 3",
"request": "requests/week2.json",
"expect": {
"equals": {
"error_rate": 0.0588,
"anomalies.0.hour": "2026-10-26T09",
"anomalies.1.hour": "2026-10-29T15"
}
}
},
{
"name": "월요일만 · 기준 0.2286 × 3",
"request": "requests/monday.json",
"expect": {
"equals": {
"error_rate": 0.2286,
"anomalies.0.hour": "2026-10-26T09",
"anomalies.0.errors": 16
},
"not_contains": {
"anomalies": [
"2026-10-29T15"
]
}
}
},
{
"name": "목요일만 · 15시만",
"body": {
"from": "2026-10-29",
"to": "2026-10-29"
},
"expect": {
"equals": {
"error_rate": 0.0515,
"anomalies.0.hour": "2026-10-29T15",
"anomalies.0.total": 7
}
}
},
{
"name": "두 주 · 기준 0.0315 × 3",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"error_rate": 0.0315,
"anomalies.0.hour": "2026-10-26T09",
"anomalies.1.hour": "2026-10-29T15"
}
}
}
]
}
+67
View File
@@ -0,0 +1,67 @@
{
"webhook": "my-log-report",
"cases": [
{
"name": "예제 1 · 가장 많은 실패",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"failures.0.node": "Search FAQ",
"failures.0.message": "timeout of 1000ms exceeded",
"failures.0.count": 16
}
}
},
{
"name": "예제 1 · 두 번째 실패",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"failures.1.node": "Answer",
"failures.1.count": 5
}
}
},
{
"name": "예제 1 · 답하지 못한 주제",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"unanswered_topics.0.topic": "와이파이",
"unanswered_topics.0.count": 34
}
}
},
{
"name": "예제 2 · 이상 시간대 1",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"anomalies.0.hour": "2026-10-26T09",
"anomalies.0.total": 16,
"anomalies.0.errors": 16
}
}
},
{
"name": "예제 2 · 이상 시간대 2",
"request": "requests/two-weeks.json",
"expect": {
"equals": {
"anomalies.1.hour": "2026-10-29T15",
"anomalies.1.total": 7,
"anomalies.1.errors": 5
}
}
},
{
"name": "예제 2 · 첫 주에는 없음",
"request": "requests/week1.json",
"expect": {
"equals": {
"anomalies": []
}
}
}
]
}
+83
View File
@@ -0,0 +1,83 @@
{
"webhook": "my-weekly",
"cases": [
{
"name": "주간 보고 · 숫자",
"request": "requests/weekly.json",
"expect": {
"equals": {
"total": 357,
"error_rate": 0.0588,
"slo_ok": false,
"numbers_ok": true
}
}
},
{
"name": "주간 보고 · 절",
"request": "requests/weekly.json",
"expect": {
"contains": {
"markdown": [
"## 숫자"
]
}
}
},
{
"name": "주간 보고 · 문제 절",
"request": "requests/weekly.json",
"expect": {
"contains": {
"markdown": [
"## 문제"
]
}
}
},
{
"name": "주간 보고 · 다음 할 일",
"request": "requests/weekly.json",
"expect": {
"contains": {
"markdown": [
"## 다음 할 일"
]
}
}
},
{
"name": "주간 보고 · 비교 숫자",
"request": "requests/weekly.json",
"expect": {
"contains": {
"markdown": [
"| 요청 | 309 | 357 |"
]
}
}
},
{
"name": "주간 보고 · 이상 시간대",
"request": "requests/weekly.json",
"expect": {
"contains": {
"markdown": [
"2026-10-26 09시"
]
}
}
},
{
"name": "주간 보고 · 와이파이",
"request": "requests/weekly.json",
"expect": {
"contains": {
"markdown": [
"FAQ에 '와이파이' 항목 추가"
]
}
}
}
]
}
+98
View File
@@ -0,0 +1,98 @@
{
"webhook": "my-slo-alert",
"before": [
{
"url": "http://localhost:8800/alerts-clear",
"body": {}
}
],
"cases": [
{
"name": "둘째 주 · SLO 못 지킴 → 알림",
"request": "requests/week2.json",
"expect": {
"equals": {
"ok": false,
"breaches": [
"error_rate",
"unanswered_rate"
],
"alert": "sent"
},
"contains": {
"message": [
"error_rate 0.0588 > 0.01"
]
}
}
},
{
"name": "알림 확인 (high · slo)",
"body": {},
"url": "http://localhost:8800/alerts/latest",
"expect": {
"equals": {
"workflow": "slo",
"severity": "high",
"reason": "slo"
},
"contains": {
"message": [
"unanswered_rate"
]
}
}
},
{
"name": "10분 안에 다시 확인 → 보내지 않음",
"request": "requests/week2.json",
"expect": {
"equals": {
"ok": false,
"alert": "suppressed"
}
}
},
{
"name": "slo 알림은 1개",
"body": {
"workflow": "slo"
},
"url": "http://localhost:8800/alerts/list",
"expect": {
"equals": {
"count": 1
}
}
},
{
"name": "기준 안이면 알림 없음",
"body": {
"from": "2026-10-19",
"to": "2026-10-23",
"slo": {
"unanswered_rate": 0.06
}
},
"expect": {
"equals": {
"ok": true,
"breaches": [],
"alert": "none"
}
}
},
{
"name": "그래도 알림은 1개",
"body": {
"workflow": "slo"
},
"url": "http://localhost:8800/alerts/list",
"expect": {
"equals": {
"count": 1
}
}
}
]
}
+77
View File
@@ -0,0 +1,77 @@
{
"webhook": "my-log-report",
"cases": [
{
"name": "고치기 전 · 느린 FAQ · 1초에 끊김",
"body": {
"tag": "before",
"source": "live"
},
"expect": {
"equals": {
"total": 10,
"errors": 10
},
"range": {
"steps.faq_ms.p50": [
900,
1600
]
}
}
},
{
"name": "고친 뒤 · 느린 FAQ · 기다려서 답함",
"body": {
"tag": "after",
"source": "live"
},
"expect": {
"equals": {
"total": 10,
"errors": 0
},
"range": {
"steps.faq_ms.p50": [
1150,
3500
]
}
}
},
{
"name": "고친 뒤 · 평소 FAQ · 기다릴 일이 없음",
"body": {
"tag": "normal",
"source": "live"
},
"expect": {
"equals": {
"total": 10,
"errors": 0
},
"range": {
"steps.faq_ms.p50": [
0,
400
]
}
}
},
{
"name": "고친 뒤 · 답 단계는 FAQ 속도와 상관없음",
"body": {
"tag": "normal",
"source": "live"
},
"expect": {
"range": {
"steps.answer_ms.p50": [
300,
6000
]
}
}
}
]
}
+75
View File
@@ -0,0 +1,75 @@
{
"webhook": "my-log-report",
"cases": [
{
"name": "둘째 주 · SLO 못 지킴",
"request": "requests/week2.json",
"expect": {
"equals": {
"slo.ok": false,
"unanswered_rate": 0.0476
},
"contains": {
"slo": [
"\"error_rate\"",
"\"unanswered_rate\""
]
},
"not_contains": {
"slo": [
"\"p95_ms\"]"
]
}
}
},
{
"name": "첫 주 · 답 못 함만",
"body": {
"from": "2026-10-19",
"to": "2026-10-23"
},
"expect": {
"equals": {
"slo.ok": false,
"slo.breaches": [
"unanswered_rate"
]
}
}
},
{
"name": "기준을 바꾸면 · 첫 주",
"body": {
"from": "2026-10-19",
"to": "2026-10-23",
"slo": {
"unanswered_rate": 0.06
}
},
"expect": {
"equals": {
"slo.ok": true
}
}
},
{
"name": "고친 뒤 · 오류 · 답 못 함 기준은 지킴",
"body": {
"tag": "after",
"source": "live"
},
"expect": {
"equals": {
"error_rate": 0,
"unanswered_rate": 0
},
"not_contains": {
"slo.breaches": [
"error_rate",
"unanswered_rate"
]
}
}
}
]
}
+57
View File
@@ -0,0 +1,57 @@
{
"webhook": "my-log-report",
"cases": [
{
"name": "고치기 전 · 10건 모두 실패",
"body": {
"tag": "before",
"source": "live"
},
"expect": {
"equals": {
"total": 10,
"errors": 10
}
}
},
{
"name": "고치기 전 · FAQ timeout",
"body": {
"tag": "before",
"source": "live"
},
"expect": {
"equals": {
"failures.0.node": "Search FAQ",
"failures.0.count": 10
}
}
},
{
"name": "고친 뒤 · 오류 없음",
"body": {
"tag": "after",
"source": "live"
},
"expect": {
"equals": {
"total": 10,
"errors": 0,
"by_route.자동 답변": 10
}
}
},
{
"name": "고친 뒤 · 답하지 못한 주제 없음",
"body": {
"tag": "after",
"source": "live"
},
"expect": {
"equals": {
"unanswered_topics": []
}
}
}
]
}
+169
View File
@@ -0,0 +1,169 @@
{
"webhook": "my-helpdesk",
"before": [
{
"url": "http://localhost:8800/admin/fault",
"body": {
"faq": "slow",
"slow_seconds": 1.2
}
}
],
"after": [
{
"url": "http://localhost:8800/admin/fault",
"body": {
"faq": "ok",
"tickets": "ok"
}
}
],
"cases": [
{
"name": "after · 회의실 와이파이가 안 ",
"body": {
"question": "회의실 와이파이가 안 잡혀요",
"user": "이준호",
"tag": "after"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
},
"contains": {
"answer": [
"CORP-WIFI",
"사번"
]
}
}
},
{
"name": "after · 사내 Wi-Fi 비밀번",
"body": {
"question": "사내 Wi-Fi 비밀번호가 뭐예요?",
"user": "박서연",
"tag": "after"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "after · 와이파이가 자주 끊겨요",
"body": {
"question": "와이파이가 자주 끊겨요",
"user": "최유진",
"tag": "after"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "after · 노트북이 와이파이에 연",
"body": {
"question": "노트북이 와이파이에 연결이 안 돼요",
"user": "한지훈",
"tag": "after"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "after · 손님용 wifi도 있나",
"body": {
"question": "손님용 wifi도 있나요?",
"user": "김민지",
"tag": "after"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "after · VPN이 자꾸 끊겨요",
"body": {
"question": "VPN이 자꾸 끊겨요",
"user": "정우성",
"tag": "after"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "after · 비밀번호를 잊어버렸어요",
"body": {
"question": "비밀번호를 잊어버렸어요",
"user": "오세훈",
"tag": "after"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "after · 프린터 출력이 안 돼요",
"body": {
"question": "프린터 출력이 안 돼요",
"user": "윤하늘",
"tag": "after"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "after · 메일함 용량이 꽉 찼대",
"body": {
"question": "메일함 용량이 꽉 찼대요",
"user": "강민수",
"tag": "after"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "after · 새 프로그램 설치는 어",
"body": {
"question": "새 프로그램 설치는 어떻게 신청하나요?",
"user": "서지아",
"tag": "after"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
}
]
}
+141
View File
@@ -0,0 +1,141 @@
{
"webhook": "my-helpdesk",
"before": [
{
"url": "http://localhost:8800/logs-reset",
"body": {}
},
{
"url": "http://localhost:8800/faq-reset",
"body": {}
},
{
"url": "http://localhost:8800/admin/fault",
"body": {
"faq": "slow",
"slow_seconds": 1.2
}
}
],
"after": [
{
"url": "http://localhost:8800/admin/fault",
"body": {
"faq": "ok",
"tickets": "ok"
}
}
],
"cases": [
{
"name": "before · 회의실 와이파이가 안 ",
"body": {
"question": "회의실 와이파이가 안 잡혀요",
"user": "이준호",
"tag": "before"
},
"expect": {
"status": 200
}
},
{
"name": "before · 사내 Wi-Fi 비밀번",
"body": {
"question": "사내 Wi-Fi 비밀번호가 뭐예요?",
"user": "박서연",
"tag": "before"
},
"expect": {
"status": 200
}
},
{
"name": "before · 와이파이가 자주 끊겨요",
"body": {
"question": "와이파이가 자주 끊겨요",
"user": "최유진",
"tag": "before"
},
"expect": {
"status": 200
}
},
{
"name": "before · 노트북이 와이파이에 연",
"body": {
"question": "노트북이 와이파이에 연결이 안 돼요",
"user": "한지훈",
"tag": "before"
},
"expect": {
"status": 200
}
},
{
"name": "before · 손님용 wifi도 있나",
"body": {
"question": "손님용 wifi도 있나요?",
"user": "김민지",
"tag": "before"
},
"expect": {
"status": 200
}
},
{
"name": "before · VPN이 자꾸 끊겨요",
"body": {
"question": "VPN이 자꾸 끊겨요",
"user": "정우성",
"tag": "before"
},
"expect": {
"status": 200
}
},
{
"name": "before · 비밀번호를 잊어버렸어요",
"body": {
"question": "비밀번호를 잊어버렸어요",
"user": "오세훈",
"tag": "before"
},
"expect": {
"status": 200
}
},
{
"name": "before · 프린터 출력이 안 돼요",
"body": {
"question": "프린터 출력이 안 돼요",
"user": "윤하늘",
"tag": "before"
},
"expect": {
"status": 200
}
},
{
"name": "before · 메일함 용량이 꽉 찼대",
"body": {
"question": "메일함 용량이 꽉 찼대요",
"user": "강민수",
"tag": "before"
},
"expect": {
"status": 200
}
},
{
"name": "before · 새 프로그램 설치는 어",
"body": {
"question": "새 프로그램 설치는 어떻게 신청하나요?",
"user": "서지아",
"tag": "before"
},
"expect": {
"status": 200
}
}
]
}
+153
View File
@@ -0,0 +1,153 @@
{
"webhook": "my-helpdesk",
"before": [
{
"url": "http://localhost:8800/admin/fault",
"body": {
"faq": "ok"
}
}
],
"cases": [
{
"name": "normal · 회의실 와이파이가 안 ",
"body": {
"question": "회의실 와이파이가 안 잡혀요",
"user": "이준호",
"tag": "normal"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "normal · 사내 Wi-Fi 비밀번",
"body": {
"question": "사내 Wi-Fi 비밀번호가 뭐예요?",
"user": "박서연",
"tag": "normal"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "normal · 와이파이가 자주 끊겨요",
"body": {
"question": "와이파이가 자주 끊겨요",
"user": "최유진",
"tag": "normal"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "normal · 노트북이 와이파이에 연",
"body": {
"question": "노트북이 와이파이에 연결이 안 돼요",
"user": "한지훈",
"tag": "normal"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "normal · 손님용 wifi도 있나",
"body": {
"question": "손님용 wifi도 있나요?",
"user": "김민지",
"tag": "normal"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "normal · VPN이 자꾸 끊겨요",
"body": {
"question": "VPN이 자꾸 끊겨요",
"user": "정우성",
"tag": "normal"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "normal · 비밀번호를 잊어버렸어요",
"body": {
"question": "비밀번호를 잊어버렸어요",
"user": "오세훈",
"tag": "normal"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "normal · 프린터 출력이 안 돼요",
"body": {
"question": "프린터 출력이 안 돼요",
"user": "윤하늘",
"tag": "normal"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "normal · 메일함 용량이 꽉 찼대",
"body": {
"question": "메일함 용량이 꽉 찼대요",
"user": "강민수",
"tag": "normal"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
},
{
"name": "normal · 새 프로그램 설치는 어",
"body": {
"question": "새 프로그램 설치는 어떻게 신청하나요?",
"user": "서지아",
"tag": "normal"
},
"expect": {
"equals": {
"route": "자동 답변",
"status": "success"
}
}
}
]
}