Files

11297 lines
569 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 71일차 Lab 테스트 결과 · 실제로 만든 시나리오와 `test -v` 결과
> **정답 자료** · 71일차 n8n 워크플로우를 **만드는 프롬프트(codex) → push → `call -v` · `test -v` 결과**를 학생이 가는 순서대로 한 문서에 모았습니다. 수업이 끝난 뒤 공개합니다.
- 실행: 수업 전날(2026-10-22), 강사 노트북의 65일차 n8n 2.42.6 + 71일차 판 데이터 API(`/docs` 규정 8개), OpenAI `gpt-4.1-mini` · `text-embedding-3-large`, 케이스 파일마다 **한 번씩** (Lab 02 과제만 `--repeat 3`)
- 명령: `~/aio-01d4-stu/Last3Mon/71`에서 `uv run tools/flow.py test <케이스 파일> -v`, 색인 · 검색 한 번은 `call ... -v`
- 아래 단계마다 **실행한 명령**과 **화면에 나온 출력 전부**(`-v`)를 그대로 붙였습니다. 같은 출력이 `NN-<이름>.txt`에, 같은 실행의 보고서가 `NN-<이름>.json`(케이스마다 `request` · `response` · `problems` · `seconds`)에 있습니다 (`call`만 한 00 · 06 · 11 · 15 · 17은 보고서 없음).
- LLM 문장과 시간은 실행마다 조금씩 다릅니다. **점수**는 2026-10-18 수업 준비 때와 같았고, 하나만 달랐습니다: 22단계 질문 다시 쓰기 뒤 answer@1이 **23/24** (수업 준비 때 24/24). 까닭은 22절에 적었습니다.
## `-v`가 보여 주는 것
```text
✘ 고객 정보가 밖으로 샌 것 같아요 · 1.3s · hits.0.text has none of ['1시간'] ← 케이스 이름 · 시간 · 틀린 곳
→ request POST /webhook/my-search ← 보낸 요청 JSON
{
"question": "고객 정보가 밖으로 샌 것 같아요"
}
← response HTTP 200 ← 받은 응답 JSON
{
"question": "고객 정보가 밖으로 샌 것 같아요",
"query": "고객 정보 외부 유출 방지 정책",
"hits": [ … 1등 "2. 이용과 보관" · 2등 "3. 유출 대응" … ]
}
```
`-v` 없이 돌리면 첫 줄만 나옵니다. 아래 응답을 보면 **문서(`privacy`)는 맞았는데 섹션 순서가 바뀌었다**는 것과 다시 쓴 검색어(`query`)가 무엇이었는지 바로 보입니다. `call ... -v`도 같은 모양으로 요청 · 응답을 보여 줍니다.
## 이 문서 하나로 따라가기
단계마다 **① codex에 넣는 프롬프트 → ② codex가 `my-work/*.json`을 쓰고 `check` → ③ 내가 `push` → ④ 내가 `test -v`** 순서입니다. 아래 단계 절에 ①의 프롬프트, ③ · ④의 명령, ④의 출력 전부가 차례로 있습니다. Lab 03 예제는 워크플로우를 만들지 않고 **색인 설정만 바꿔 재므로** 프롬프트가 없습니다.
```mermaid
flowchart LR
P["① 프롬프트<br/>터미널 ① codex"] --> C["② codex<br/>my-work/*.json · check"] --> U["③ push<br/>터미널 ②"] --> T["④ test -v<br/>요청 · 응답 JSON"]
T -->|✘| F["실패 줄 · 보고서 경로를<br/>codex에 그대로"] --> C
```
```bash
# 터미널 ① (codex) · 터미널 ② (확인) 둘 다
cd ~/aio-01d4-stu/Last3Mon/71
codex # 터미널 ①에서만. AGENTS.md(작업 규칙 · 계약 · 노드)를 codex가 스스로 읽음
```
| 단계 | 만드는 것 | codex 프롬프트 | 학생 파일 | 이 기록에서 push한 정답 |
| --- | --- | --- | --- | --- |
| 00 | 색인 + 검색 | 00절 | `my-work/index.json` · `search.json` | `reference/lab01-example2-index.json` · `-search.json` |
| 03 | + 섹션 제목 · `top_k` | 03절 | `my-work/index.json` · `search.json` 고침 | [`71-lab01-challenge-index.json`](71-lab01-challenge-index.json) · [`-search.json`](71-lab01-challenge-search.json) |
| 05 | 규정 Q&A (발췌 · 번호 · 기준값) | 05절 | `my-work/policy-qa.json` | `reference/lab02-example2-qa.json` |
| 08 | + 답 검사 4가지 | 08절 | `my-work/policy-qa.json` 고침 | [`71-lab02-challenge-qa.json`](71-lab02-challenge-qa.json) |
| 19 | 어려운 질문 8개 (케이스 파일) | (직접 씀) | `cases/my-cases.json` | [`71-lab03-challenge-cases.json`](71-lab03-challenge-cases.json) |
| 20 | 검색 앞 질문 다시 쓰기 | 20절 | `my-work/search.json` 고침 | [`71-lab03-challenge-search.json`](71-lab03-challenge-search.json) |
- **프롬프트는 정답본(`LAB-0x-A-*.md`)의 요청문 예**를 그대로 썼습니다.
- **이 기록의 워크플로우는 수업 준비 때 만든 정답 파일**입니다. 위 프롬프트를 codex에 보내 다시 만들어 재지는 않았습니다 (68일차부터 수업 준비는 정답 워크플로우만 실행). codex가 만든 파일은 노드 이름 · 문장이 다를 수 있지만, **테스트가 보는 칸**이 같으면 같은 점수가 나와야 합니다.
- 학생은 `push my-work/<파일>.json`, 이 기록은 같은 웹훅의 정답 파일을 push했습니다. 그래서 `test` 명령과 결과 모양은 같습니다.
- **push마다 n8n이 재시작되어 메모리 저장소가 비워집니다.** 케이스 파일의 `before`(첫 줄 `✔ before: POST /webhook/my-index`)가 섹션 설정으로 다시 색인하고 케이스를 돌립니다. Lab 03 예제는 내가 다른 설정으로 색인한 것을 재야 하므로 `--no-before`를 붙입니다.
## 시나리오 한눈에
```mermaid
flowchart LR
L1["Lab 01<br/>01 lab01 6/6<br/>02 과제 전 2/4<br/>03 섹션 4/4"] --> L2["Lab 02<br/>05 lab02 6/6<br/>07 과제 전 2/8<br/>08 답 검사 24/24 (×3)"]
L2 --> L3["Lab 03 예제<br/>섹션 doc@1 24 · answer@1 22 · answer@3 24<br/>200자 answer@1 20 · 400자 22<br/>기준값 10/10"]
L3 --> C["Lab 03 과제<br/>19 다시 쓰기 없이 6/8<br/>20 다시 쓰기 7/8"]
C --> F["다시 쓰기 뒤 24문항<br/>doc@1 24 · answer@1 23 · answer@3 24<br/>회귀 6/6 · 4/4 · 8/8"]
```
| 단계 | 먼저 올린 것 (`push`) · 색인 | 테스트 | 결과 | 파일 |
| --- | --- | --- | --- | --- |
| 00 | 색인 · 검색 `reference/lab01-example2-*.json` | `call my-index` · `call my-search` | 둘 다 200, 청크 25 | `00-lab01-index-search` |
| 01 | (같음) | `cases/lab01.json` | 6/6 | `01-lab01` |
| 02 | (같음, 과제 하기 전) | `cases/lab01-challenge.json` | **2/4** | `02-lab01-challenge-before` |
| 03 | 과제 정답 [`71-lab01-challenge-index.json`](71-lab01-challenge-index.json) · [`-search.json`](71-lab01-challenge-search.json) | `cases/lab01-challenge.json` | 4/4 | `03-lab01-challenge` |
| 04 | (같음) | `cases/lab01.json` | 6/6 | `04-lab01-after-challenge` |
| 05 | 규정 Q&A `reference/lab02-example2-qa.json` | `cases/lab02.json` | 6/6 | `05-lab02` |
| 06 | (같음) | `call my-policy-qa` 규정 밖 질문 | 200, `담당자 연결` | `06-lab02-off-topic` |
| 07 | (같음, 과제 하기 전) | `cases/lab02-challenge.json` | **2/8** | `07-lab02-challenge-before` |
| 08 | 과제 정답 [`71-lab02-challenge-qa.json`](71-lab02-challenge-qa.json) | `cases/lab02-challenge.json --repeat 3` | 24/24 | `08-lab02-challenge` |
| 09 | (같음) | `cases/lab02.json` | 6/6 | `09-lab02-after-challenge` |
| 10 | (같음) | `cases/lab03-threshold.json` | 10/10 | `10-lab03-threshold` |
| 11 | 색인 섹션 (`call my-index`) | — | 청크 25 | `11-lab03-index-section` |
| 12 | (같음) | `cases/retrieval-doc.json --no-before` | doc@1 24/24 | `12-retrieval-doc-section` |
| 13 | (같음) | `cases/retrieval-answer.json --no-before` | answer@1 **22/24** | `13-retrieval-answer-section` |
| 14 | (같음) | `cases/retrieval-answer3.json --no-before` | answer@3 24/24 | `14-retrieval-answer3-section` |
| 15 | 색인 200자 | — | 청크 20 | `15-lab03-index-200` |
| 16 | (같음) | `cases/retrieval-answer.json --no-before` | answer@1 **20/24** | `16-retrieval-answer-200` |
| 17 | 색인 400자 | — | 청크 12 | `17-lab03-index-400` |
| 18 | (같음) | `cases/retrieval-answer.json --no-before` | answer@1 **22/24** | `18-retrieval-answer-400` |
| 19 | (Lab 01 과제 정답 검색, 과제 하기 전) | 어려운 질문 [`71-lab03-challenge-cases.json`](71-lab03-challenge-cases.json) | **6/8** | `19-challenge-cases-before` |
| 20 | 다시 쓰기 [`71-lab03-challenge-search.json`](71-lab03-challenge-search.json) | 어려운 질문 | 7/8 | `20-challenge-cases-rewrite` |
| 21 | (같음) | `cases/retrieval-doc.json` | doc@1 24/24 | `21-retrieval-doc-rewrite` |
| 22 | (같음) | `cases/retrieval-answer.json` | answer@1 **23/24** (준비 때 24) | `22-retrieval-answer-rewrite` |
| 23 | (같음) | `cases/retrieval-answer3.json` | answer@3 24/24 | `23-retrieval-answer3-rewrite` |
| 24 | (같음) | `cases/lab01.json` | 6/6 | `24-lab01-final` |
| 25 | (같음) | `cases/lab01-challenge.json` | 4/4 | `25-lab01-challenge-final` |
| 26 | (같음) | `cases/lab02-challenge.json` | 8/8 | `26-lab02-challenge-final` |
설정 비교 (Lab 03 예제 표, 이 기록의 값):
| 설정 | 청크 | doc@1 | answer@1 | answer@3 |
| --- | --- | --- | --- | --- |
| 섹션 | 25 | 24/24 (12) | 22/24 (13) | 24/24 (14) |
| 200자 | 20 | — | 20/24 (16) | — |
| 400자 | 12 | — | 22/24 (18) | — |
| 섹션 + 질문 다시 쓰기 | 25 | 24/24 (21) | 23/24 (22) | 24/24 (23) |
- 학생 Lab 03 예제 2는 answer@1만 재므로 이 기록도 200자 · 400자는 answer@1만 쟀습니다. 수업 준비 때 doc@1 · answer@3까지 잰 값은 200자 24 · 24, 400자 22 · 24입니다 (LAB-03-A).
---
## Lab 01 · 정답표, 색인, 검색
예제 1(정답표)은 codex 없이 종이에 씁니다 (질문 · 문서 · 섹션 · 답 문구, 답 없는 질문 포함). 정답표 예는 LAB-01-A에 있습니다.
### 00 · 예제 2 · 색인 + 검색 한 번씩 → 둘 다 200
codex에 입력하는 프롬프트 (터미널 ①, 학생이 만들 파일 `my-work/index.json · my-work/search.json` · 이 기록에서 push한 같은 역할의 정답 `reference/lab01-example2-index.json` · `-search.json`):
```text
두 워크플로우를 만들어 줘. 계약은 AGENTS.md 3절, 노드는 5절.
1. my-work/index.json (웹훅 my-index): GET http://data-api:8800/docs → 문서마다 GET /docs/<name>
→ Code에서 본문을 "## " 섹션마다 청크로 (청크 글 앞에 문서 제목), source(name)·title·chunk 번호를 같이.
본문 chunking 이 숫자면 그 글자 수로 자른다 (기본 section).
→ 메모리 Vector Store(insert, memoryKey my_policy_docs, clearStore true) + OpenAI Embeddings text-embedding-3-large + Default Data Loader(metadata source, title, chunk).
→ {indexed_chunks, chunking}.
2. my-work/search.json (웹훅 my-search): question 없으면 400. 같은 저장소에서 load, topK = 본문 top_k 없으면 3, 메타데이터 포함, Always Output Data.
→ Code: {question, hits:[{rank, source, title, score(소수 셋째 자리), text}], top_score, indexed}.
기대 결과 cases/lab01.json.
```
실행한 명령:
```bash
uv run tools/flow.py push reference/lab01-example2-index.json reference/lab01-example2-search.json
uv run tools/flow.py call my-index requests/index-section.json -v
uv run tools/flow.py call my-search requests/q-password-length.json -v
```
출력 (그대로):
```text
$ uv run tools/flow.py call my-index requests/index-section.json -v
HTTP 200 · 3.8s
→ request POST /webhook/my-index
{
"chunking": "section"
}
← response HTTP 200
{
"indexed_chunks": 25,
"chunking": "section"
}
$ uv run tools/flow.py call my-search requests/q-password-length.json -v
HTTP 200 · 0.6s
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"score": 0.748,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"score": 0.54,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"score": 0.484,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.748,
"indexed": true
}
```
- 색인은 규정 8개를 `## ` 섹션마다 잘라 청크 25개. push 직후라 임베딩 25개를 만드는 데 3.8초.
- 검색 1등은 `password-policy`의 "1. 비밀번호 만들기"(0.748), 2등 "2. 변경 주기"(0.54). `hits`에 아직 섹션 칸이 없습니다 (과제에서 더함).
### 01 · 예제 2 · `lab01` 6/6
실행한 명령:
```bash
uv run tools/flow.py test cases/lab01.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 0.5s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-search · 6 case(s) × 1
✔ 색인 · 청크 수 · 0.5s
→ request POST /webhook/my-index
{
"chunking": "section"
}
← response HTTP 200
{
"indexed_chunks": 25,
"chunking": "section"
}
✔ 비밀번호 길이 → 비밀번호 규정 · 0.3s
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"score": 0.748,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"score": 0.54,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"score": 0.484,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.748,
"indexed": true
}
✔ 퇴사 노트북 → 장비 규정 · 0.9s
→ request POST /webhook/my-search
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"
}
← response HTTP 200
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"score": 0.464,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"score": 0.45,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"score": 0.369,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
}
],
"top_score": 0.464,
"indexed": true
}
✔ 첨부 파일 → 메일 규정 · 0.3s
→ request POST /webhook/my-search
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요"
}
← response HTTP 200
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"score": 0.616,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"score": 0.455,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"score": 0.335,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.616,
"indexed": true
}
✔ 결과 3개 · 0.4s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"score": 0.478,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"score": 0.357,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"score": 0.249,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.478,
"indexed": true
}
✔ 질문 없음 · 0.0s
→ request POST /webhook/my-search
{
"question": ""
}
← response HTTP 400
{
"error": "question is required"
}
Passed 6/6
report: runs/lab01-20261022-200827.json
```
- `before`가 다시 색인(청크 25)하고 6문항: 청크 수, 질문 3개의 1등 문서, 결과 3개, `질문 없음` 400 (0.0초).
- "퇴사 노트북"은 질문에 없는 낱말("퇴사")로도 장비 규정을 찾습니다 (임베딩은 뜻이 가까우면 찾음).
### 02 · 과제 하기 전 (예제 색인 · 검색 그대로) → `lab01-challenge` 2/4
실행한 명령:
```bash
uv run tools/flow.py test cases/lab01-challenge.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 0.5s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-search · 4 case(s) × 1
✘ 섹션 · 비밀번호 길이 · 0.4s · hits.0.section has none of ['비밀번호 만들기']
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"score": 0.748,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"score": 0.54,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"score": 0.484,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.748,
"indexed": true
}
✘ 섹션 · 변경 주기 · 0.2s · hits.0.section has none of ['변경 주기']
→ request POST /webhook/my-search
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"question": "암호를 얼마나 자주 바꿔야 해?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"score": 0.576,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"score": 0.512,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"score": 0.456,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.576,
"indexed": true
}
✔ top_k 5 · 0.3s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"top_k": 5
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"score": 0.479,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"score": 0.357,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"score": 0.249,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 4,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"score": 0.246,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 5,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"score": 0.242,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
}
],
"top_score": 0.479,
"indexed": true
}
✔ top_k 1 · 0.2s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"top_k": 1
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"score": 0.479,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
}
],
"top_score": 0.479,
"indexed": true
}
Passed 2/4
report: runs/lab01-challenge-20261022-200829.json
```
- 섹션 두 케이스는 `hits.0.section`이 없어 실패. 응답을 보면 `text`에는 `## 1. 비밀번호 만들기`가 들어 있지만 **칸으로 빠져 있지 않습니다**.
- `top_k` 케이스 2개는 예제도 이미 본문 `top_k`를 받아 통과합니다.
### 03 · 과제 · 섹션 제목까지 출처 → `lab01-challenge` 4/4
codex에 입력하는 프롬프트 (터미널 ①, 학생이 만들 파일 `my-work/index.json · my-work/search.json (고침)` · 이 기록에서 push한 같은 역할의 정답 [`71-lab01-challenge-index.json`](71-lab01-challenge-index.json) · [`-search.json`](71-lab01-challenge-search.json)):
```text
my-work/index.json 의 Make chunks 에서 청크마다 section(그 청크의 "## " 제목 글자)을 정하고, Loader 메타데이터에 section 을 더해 줘.
my-work/search.json 의 hits 에 section 을 더해 줘 (없으면 빈 글자). top_k 는 본문에서 받는다 (기본 3).
cases/lab01-challenge.json, cases/lab01.json 둘 다 통과.
```
실행한 명령:
```bash
uv run tools/flow.py push answers/71-lab01-challenge-index.json answers/71-lab01-challenge-search.json
uv run tools/flow.py test cases/lab01-challenge.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 1.7s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-search · 4 case(s) × 1
✔ 섹션 · 비밀번호 길이 · 0.4s
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.748,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.54,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.484,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.748,
"indexed": true
}
✔ 섹션 · 변경 주기 · 0.2s
→ request POST /webhook/my-search
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"question": "암호를 얼마나 자주 바꿔야 해?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.576,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.512,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.456,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.576,
"indexed": true
}
✔ top_k 5 · 0.3s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"top_k": 5
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.478,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.357,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.249,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 4,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.246,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 5,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.241,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
}
],
"top_score": 0.478,
"indexed": true
}
✔ top_k 1 · 0.2s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"top_k": 1
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.478,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
}
],
"top_score": 0.478,
"indexed": true
}
Passed 4/4
report: runs/lab01-challenge-20261022-200850.json
```
- `hits`마다 `section`(예: `1. 비밀번호 만들기`)이 붙습니다. 색인할 때 메타데이터로 넣어야 검색 결과에서 꺼낼 수 있습니다.
- Lab 02 · 03은 이 정답 색인 · 검색 위에서 이어 갑니다.
### 04 · 과제 정답으로 원래 테스트 → `lab01` 6/6
실행한 명령:
```bash
uv run tools/flow.py test cases/lab01.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 1.6s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-search · 6 case(s) × 1
✔ 색인 · 청크 수 · 0.5s
→ request POST /webhook/my-index
{
"chunking": "section"
}
← response HTTP 200
{
"indexed_chunks": 25,
"chunking": "section"
}
✔ 비밀번호 길이 → 비밀번호 규정 · 0.2s
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.748,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.54,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.484,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.748,
"indexed": true
}
✔ 퇴사 노트북 → 장비 규정 · 0.3s
→ request POST /webhook/my-search
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"
}
← response HTTP 200
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.464,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.45,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.369,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
}
],
"top_score": 0.464,
"indexed": true
}
✔ 첨부 파일 → 메일 규정 · 0.3s
→ request POST /webhook/my-search
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요"
}
← response HTTP 200
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.616,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.455,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.335,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.616,
"indexed": true
}
✔ 결과 3개 · 0.3s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.478,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.357,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.249,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.478,
"indexed": true
}
✔ 질문 없음 · 0.0s
→ request POST /webhook/my-search
{
"question": ""
}
← response HTTP 400
{
"error": "question is required"
}
Passed 6/6
report: runs/lab01-20261022-200853.json
```
- 칸을 더해도 원래 계약은 그대로. 고친 뒤 **원래 테스트도 다시** 돌리는 습관.
## Lab 02 · 규정으로만 답하기, 모르면 넘기기, 답 검사
### 05 · 예제 1 + 2 · 규정 Q&A → `lab02` 6/6
codex에 입력하는 프롬프트 (터미널 ①, 학생이 만들 파일 `my-work/policy-qa.json` · 이 기록에서 push한 같은 역할의 정답 `reference/lab02-example2-qa.json`):
```text
my-work/policy-qa.json 을 만들어 줘. 계약은 AGENTS.md 3절 규정 Q&A. question 없으면 400.
1. 같은 메모리 저장소(my_policy_docs)에서 load, topK 3, 메타데이터 포함, Always Output Data.
2. Code "Build context": 청크를 [1] [2] [3] 번호 붙인 발췌로, hits(source, title, score), top_score.
min_score = 본문 min_score 없으면 0.33, relevant = top_score >= min_score.
3. relevant 가 아니면 LLM을 부르지 않고 route "담당자 연결", answer "규정에서 답을 찾지 못했습니다. IT 문의 창구로 연결해 드릴게요.", cited [].
4. relevant 면 AI Agent(gpt-4.1-mini, Tool 없음): 발췌로만, 한국어 3문장 이내, 사실마다 [번호], 없으면 정확히 "규정에서 답을 찾지 못했습니다."
5. Code "Build answer": [번호] → [문서 제목], cited = 인용한 번호의 source, route "자동 답변".
기대 결과 cases/lab02.json.
```
실행한 명령:
```bash
uv run tools/flow.py push reference/lab02-example2-qa.json
uv run tools/flow.py test cases/lab02.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 1.4s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-policy-qa · 6 case(s) × 1
✔ 비밀번호 주기 · 답과 출처 · 3.0s
→ request POST /webhook/my-policy-qa
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "암호는 90일마다 변경해야 하며, 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다. 또한 최근에 사용한 비밀번호 5개는 다시 사용할 수 없습니다[비밀번호·계정 보안 규정].",
"sources": [
"password-policy"
],
"cited": [
"password-policy"
],
"top_score": 0.576
}
✔ 퇴사 노트북 · 1.8s
→ request POST /webhook/my-policy-qa
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "회사를 그만두면 업무용 노트북은 퇴사 후 5영업일 이내에 IT 담당자에게 반납해야 합니다. 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮겨야 합니다[업무용 장비 지급·반납 규정].",
"sources": [
"device-issue-return"
],
"cited": [
"device-issue-return"
],
"top_score": 0.461
}
✔ 생성형 AI · 1.9s
→ request POST /webhook/my-policy-qa
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "고객 정보는 생성형 AI 서비스에 입력하지 말아야 합니다. 회사가 승인한 생성형 AI 서비스만 업무에 사용해야 하며, 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는 것이 규정입니다[소프트웨어 사용 규정].",
"sources": [
"software-usage",
"privacy"
],
"cited": [
"software-usage"
],
"top_score": 0.51
}
✔ 출처는 제목으로 · 2.1s
→ request POST /webhook/my-policy-qa
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "메일 첨부 파일은 25MB까지 보낼 수 있으며, 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보내야 합니다. 따라서 첨부 파일이 너무 크면 사내 드라이브에 올린 후 링크를 보내세요[메일·문서 보안 규정].",
"sources": [
"email-and-documents",
"security-incident"
],
"cited": [
"email-and-documents"
],
"top_score": 0.616
}
✔ 점심 메뉴 · 담당자 연결 · 0.3s
→ request POST /webhook/my-policy-qa
{
"question": "오늘 점심 메뉴 추천해줘"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 답을 찾지 못했습니다. IT 문의 창구로 연결해 드릴게요.",
"sources": [],
"cited": [],
"top_score": 0.202
}
✔ 질문 없음 · 0.0s
→ request POST /webhook/my-policy-qa
{
"question": ""
}
← response HTTP 400
{
"error": "question is required"
}
Passed 6/6
report: runs/lab02-20261022-200916.json
```
- 답은 발췌로만, 사실마다 `[문서 제목]`. `cited`는 LLM이 아니라 **코드가** 번호를 보고 만듭니다.
- `점심 메뉴`는 `top_score`가 기준값 0.33보다 낮아 LLM을 부르지 않고 `담당자 연결` (0.3초). LLM을 부르는 질문은 1.8~3.0초.
### 06 · 예제 2 · 규정 밖 질문 한 번 → `담당자 연결`
실행한 명령:
```bash
uv run tools/flow.py call my-policy-qa requests/q-off-topic.json -v
```
출력 (그대로):
```text
$ uv run tools/flow.py call my-policy-qa requests/q-off-topic.json -v
HTTP 200 · 0.3s
→ request POST /webhook/my-policy-qa
{
"question": "오늘 점심 메뉴 추천해줘"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 답을 찾지 못했습니다. IT 문의 창구로 연결해 드릴게요.",
"sources": [],
"cited": [],
"top_score": 0.202
}
```
- "오늘 점심 메뉴 추천해줘" → `top_score` 0.202, LLM 없이 0.3초. `sources` · `cited` 모두 빈 목록.
- 05의 `before`가 만든 색인이 그대로 있어 바로 부를 수 있습니다 (push 직후라면 `call my-index`부터).
### 07 · 과제 하기 전 (예제 Q&A 그대로) → `lab02-challenge` 2/8
실행한 명령:
```bash
uv run tools/flow.py test cases/lab02-challenge.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 0.6s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-policy-qa · 8 case(s) × 1
✘ 점수는 높은데 규정에 없음 (VPN 속도) · 1.6s · route = 자동 답변 (expected 담당자 연결)
→ request POST /webhook/my-policy-qa
{
"question": "VPN 접속 속도가 느리면 어떻게 해요?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "규정에서는 VPN 접속 속도가 느릴 때의 대처 방법에 대해 언급하고 있지 않습니다. 따라서 규정에서 답을 찾지 못했습니다.",
"sources": [
"remote-work-vpn"
],
"cited": [],
"top_score": 0.463
}
✘ 점수는 높은데 규정에 없음 (노트북 사양) · 1.1s · route = 자동 답변 (expected 담당자 연결)
→ request POST /webhook/my-policy-qa
{
"question": "노트북 사양은 어떻게 되나요?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "규정 발췌에는 노트북 사양에 대한 내용이 포함되어 있지 않습니다. 따라서 노트북 사양에 관한 정보는 제공되지 않았습니다. [업무용 장비 지급·반납 규정][메일·문서 보안 규정][업무용 장비 지급·반납 규정]",
"sources": [
"device-issue-return",
"email-and-documents"
],
"cited": [
"device-issue-return",
"email-and-documents"
],
"top_score": 0.379
}
✘ 점수는 높은데 규정에 없음 (비밀번호 잊음) · 1.6s · route = 자동 답변 (expected 담당자 연결)
→ request POST /webhook/my-policy-qa
{
"question": "비밀번호를 잊어버리면 어디서 바꿔요?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "규정에서 답을 찾지 못했습니다.",
"sources": [
"password-policy"
],
"cited": [],
"top_score": 0.551
}
✘ 점수는 높은데 규정에 없음 (보안 교육) · 1.2s · route = 자동 답변 (expected 담당자 연결)
→ request POST /webhook/my-policy-qa
{
"question": "보안 교육은 1년에 몇 번 받아야 하나요?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "규정에서 답을 찾지 못했습니다.",
"sources": [
"security-incident",
"remote-work-vpn",
"password-policy"
],
"cited": [],
"top_score": 0.352
}
✔ 점수가 낮아 걸러짐 (연차) · 0.3s
→ request POST /webhook/my-policy-qa
{
"question": "연차 휴가는 며칠이에요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 답을 찾지 못했습니다. IT 문의 창구로 연결해 드릴게요.",
"sources": [],
"cited": [],
"top_score": 0.259
}
✔ 틀린 전제 (30일) · 1.3s
→ request POST /webhook/my-policy-qa
{
"question": "비밀번호는 30일마다 바꾸면 되죠?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "비밀번호는 30일마다 바꾸는 것이 아니라 90일마다 바꿔야 합니다. 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다[비밀번호·계정 보안 규정].",
"sources": [
"password-policy"
],
"cited": [
"password-policy"
],
"top_score": 0.685
}
✘ 근거 있는 답은 그대로 · 1.5s · failed = null (expected [])
→ request POST /webhook/my-policy-qa
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "암호는 90일마다 변경해야 하며, 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다. 또한 최근에 사용한 비밀번호 5개는 다시 사용할 수 없습니다[비밀번호·계정 보안 규정].",
"sources": [
"password-policy"
],
"cited": [
"password-policy"
],
"top_score": 0.576
}
✘ 검사 기록 · 7.3s · checks has none of ['grounded']
→ request POST /webhook/my-policy-qa
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심해야 합니다. 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알리세요. 컴퓨터를 끄거나 파일을 지우지 마십시오. 원인 분석에 필요합니다[보안 사고 대응 절차].",
"sources": [
"security-incident",
"remote-work-vpn"
],
"cited": [
"security-incident"
],
"top_score": 0.478
}
Passed 2/8
report: runs/lab02-challenge-20261022-200933.json
```
- "VPN 속도" · "노트북 사양" · "비밀번호 잊음" · "보안 교육"은 `top_score`가 기준값보다 높아 LLM까지 갑니다. LLM이 "찾지 못했습니다"라고 말해도 `route`는 **`자동 답변`**으로 나갑니다.
- `checks` · `failed` 칸이 없어 검사 기록 케이스 2개도 실패 → 기준값만으로는 "점수는 높은데 답이 없는 질문"을 거르지 못합니다.
### 08 · 과제 · 답 검사 4가지 → `lab02-challenge` 24/24 (8개 × 3번)
codex에 입력하는 프롬프트 (터미널 ①, 학생이 만들 파일 `my-work/policy-qa.json (고침)` · 이 기록에서 push한 같은 역할의 정답 [`71-lab02-challenge-qa.json`](71-lab02-challenge-qa.json)):
```text
my-work/policy-qa.json 의 Build answer 에 검사를 더해 줘. 검사마다 {name, passed} 를 checks 에, 실패 이름을 failed 에.
- found_in_policies: "찾지 못했", "포함되어 있지 않", "명시되어 있지 않", "언급이 없", "나와 있지 않" 이 없어야
- cites_excerpt: 인용 번호가 하나 이상
- grounded: 답 글(번호 뺀)의 두 글자 묶음 중 30% 이상이 발췌에 있어야
- numbers_from_policies: 답에 나온 숫자가 모두 발췌에 있어야
failed 가 있으면 route "담당자 연결", answer "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.", draft 에 원래 답.
cases/lab02-challenge.json, cases/lab02.json 둘 다 통과.
```
실행한 명령:
```bash
uv run tools/flow.py push answers/71-lab02-challenge-qa.json
uv run tools/flow.py test cases/lab02-challenge.json -v --repeat 3
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 1.5s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-policy-qa · 8 case(s) × 3
✔ 점수는 높은데 규정에 없음 (VPN 속도) #1 · 1.9s
→ request POST /webhook/my-policy-qa
{
"question": "VPN 접속 속도가 느리면 어떻게 해요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정에서는 VPN 접속 속도가 느릴 때의 대처 방법에 대해 언급하고 있지 않습니다. 따라서 답변을 드리기 어렵습니다. 규정에서 답을 찾지 못했습니다.",
"sources": [
"remote-work-vpn"
],
"cited": [],
"top_score": 0.463,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수는 높은데 규정에 없음 (VPN 속도) #2 · 1.4s
→ request POST /webhook/my-policy-qa
{
"question": "VPN 접속 속도가 느리면 어떻게 해요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정에서는 VPN 접속 속도가 느릴 때의 대처 방법에 대해 언급하고 있지 않습니다. 따라서 답변을 드릴 수 없습니다. 규정에서 답을 찾지 못했습니다.",
"sources": [
"remote-work-vpn"
],
"cited": [],
"top_score": 0.463,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수는 높은데 규정에 없음 (VPN 속도) #3 · 1.5s
→ request POST /webhook/my-policy-qa
{
"question": "VPN 접속 속도가 느리면 어떻게 해요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정에서는 VPN 접속 속도가 느릴 때의 대처 방법에 대해 명시하고 있지 않습니다. 따라서 규정에서 답을 찾지 못했습니다.",
"sources": [
"remote-work-vpn"
],
"cited": [],
"top_score": 0.463,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수는 높은데 규정에 없음 (노트북 사양) #1 · 1.2s
→ request POST /webhook/my-policy-qa
{
"question": "노트북 사양은 어떻게 되나요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정 발췌에는 노트북 사양에 대한 내용이 포함되어 있지 않습니다. 따라서 노트북 사양에 대해서는 규정에서 답을 찾지 못했습니다.",
"sources": [
"device-issue-return",
"email-and-documents"
],
"cited": [],
"top_score": 0.379,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수는 높은데 규정에 없음 (노트북 사양) #2 · 1.3s
→ request POST /webhook/my-policy-qa
{
"question": "노트북 사양은 어떻게 되나요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정에는 노트북 사양에 대한 내용이 포함되어 있지 않습니다. 따라서 노트북 사양에 대해서는 규정에서 답을 찾지 못했습니다.",
"sources": [
"device-issue-return",
"email-and-documents"
],
"cited": [],
"top_score": 0.379,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수는 높은데 규정에 없음 (노트북 사양) #3 · 1.4s
→ request POST /webhook/my-policy-qa
{
"question": "노트북 사양은 어떻게 되나요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정 발췌에는 노트북 사양에 대한 내용이 포함되어 있지 않습니다. 따라서 노트북 사양에 대해서는 규정에서 답을 찾지 못했습니다.",
"sources": [
"device-issue-return",
"email-and-documents"
],
"cited": [],
"top_score": 0.379,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수는 높은데 규정에 없음 (비밀번호 잊음) #1 · 1.7s
→ request POST /webhook/my-policy-qa
{
"question": "비밀번호를 잊어버리면 어디서 바꿔요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정에서 답을 찾지 못했습니다.",
"sources": [
"password-policy"
],
"cited": [],
"top_score": 0.551,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수는 높은데 규정에 없음 (비밀번호 잊음) #2 · 1.1s
→ request POST /webhook/my-policy-qa
{
"question": "비밀번호를 잊어버리면 어디서 바꿔요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정에서 답을 찾지 못했습니다.",
"sources": [
"password-policy"
],
"cited": [],
"top_score": 0.551,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수는 높은데 규정에 없음 (비밀번호 잊음) #3 · 1.2s
→ request POST /webhook/my-policy-qa
{
"question": "비밀번호를 잊어버리면 어디서 바꿔요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정에서 답을 찾지 못했습니다.",
"sources": [
"password-policy"
],
"cited": [],
"top_score": 0.551,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수는 높은데 규정에 없음 (보안 교육) #1 · 1.1s
→ request POST /webhook/my-policy-qa
{
"question": "보안 교육은 1년에 몇 번 받아야 하나요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정에서 답을 찾지 못했습니다.",
"sources": [
"security-incident",
"remote-work-vpn",
"password-policy"
],
"cited": [],
"top_score": 0.353,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수는 높은데 규정에 없음 (보안 교육) #2 · 1.3s
→ request POST /webhook/my-policy-qa
{
"question": "보안 교육은 1년에 몇 번 받아야 하나요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정에서 답을 찾지 못했습니다.",
"sources": [
"security-incident",
"remote-work-vpn",
"password-policy"
],
"cited": [],
"top_score": 0.353,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수는 높은데 규정에 없음 (보안 교육) #3 · 1.2s
→ request POST /webhook/my-policy-qa
{
"question": "보안 교육은 1년에 몇 번 받아야 하나요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정에서 답을 찾지 못했습니다.",
"sources": [
"security-incident",
"remote-work-vpn",
"password-policy"
],
"cited": [],
"top_score": 0.353,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수가 낮아 걸러짐 (연차) #1 · 0.3s
→ request POST /webhook/my-policy-qa
{
"question": "연차 휴가는 며칠이에요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 답을 찾지 못했습니다. IT 문의 창구로 연결해 드릴게요.",
"sources": [],
"cited": [],
"top_score": 0.259
}
✔ 점수가 낮아 걸러짐 (연차) #2 · 0.3s
→ request POST /webhook/my-policy-qa
{
"question": "연차 휴가는 며칠이에요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 답을 찾지 못했습니다. IT 문의 창구로 연결해 드릴게요.",
"sources": [],
"cited": [],
"top_score": 0.259
}
✔ 점수가 낮아 걸러짐 (연차) #3 · 0.4s
→ request POST /webhook/my-policy-qa
{
"question": "연차 휴가는 며칠이에요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 답을 찾지 못했습니다. IT 문의 창구로 연결해 드릴게요.",
"sources": [],
"cited": [],
"top_score": 0.259
}
✔ 틀린 전제 (30일) #1 · 1.8s
→ request POST /webhook/my-policy-qa
{
"question": "비밀번호는 30일마다 바꾸면 되죠?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "비밀번호는 30일마다 바꾸는 것이 아니라 90일마다 바꿔야 합니다. 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다[비밀번호·계정 보안 규정].",
"draft": "비밀번호는 30일마다 바꾸는 것이 아니라 90일마다 바꿔야 합니다. 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다[비밀번호·계정 보안 규정].",
"sources": [
"password-policy"
],
"cited": [
"password-policy"
],
"top_score": 0.685,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 틀린 전제 (30일) #2 · 1.5s
→ request POST /webhook/my-policy-qa
{
"question": "비밀번호는 30일마다 바꾸면 되죠?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "비밀번호는 30일마다 바꾸는 것이 아니라 90일마다 바꿔야 합니다. 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다[비밀번호·계정 보안 규정].",
"draft": "비밀번호는 30일마다 바꾸는 것이 아니라 90일마다 바꿔야 합니다. 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다[비밀번호·계정 보안 규정].",
"sources": [
"password-policy"
],
"cited": [
"password-policy"
],
"top_score": 0.685,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 틀린 전제 (30일) #3 · 1.8s
→ request POST /webhook/my-policy-qa
{
"question": "비밀번호는 30일마다 바꾸면 되죠?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "비밀번호는 30일마다 바꾸는 것이 아니라 90일마다 바꿔야 합니다. 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다[비밀번호·계정 보안 규정].",
"draft": "비밀번호는 30일마다 바꾸는 것이 아니라 90일마다 바꿔야 합니다. 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다[비밀번호·계정 보안 규정].",
"sources": [
"password-policy"
],
"cited": [
"password-policy"
],
"top_score": 0.685,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 근거 있는 답은 그대로 #1 · 1.3s
→ request POST /webhook/my-policy-qa
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "암호는 90일마다 변경해야 하며, 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다. 또한 최근에 사용한 비밀번호 5개는 다시 사용할 수 없습니다[비밀번호·계정 보안 규정].",
"draft": "암호는 90일마다 변경해야 하며, 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다. 또한 최근에 사용한 비밀번호 5개는 다시 사용할 수 없습니다[비밀번호·계정 보안 규정].",
"sources": [
"password-policy"
],
"cited": [
"password-policy"
],
"top_score": 0.576,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 근거 있는 답은 그대로 #2 · 1.3s
→ request POST /webhook/my-policy-qa
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "암호는 90일마다 변경해야 하며, 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다. 또한 최근에 사용한 비밀번호 5개는 다시 사용할 수 없습니다[비밀번호·계정 보안 규정].",
"draft": "암호는 90일마다 변경해야 하며, 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다. 또한 최근에 사용한 비밀번호 5개는 다시 사용할 수 없습니다[비밀번호·계정 보안 규정].",
"sources": [
"password-policy"
],
"cited": [
"password-policy"
],
"top_score": 0.576,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 근거 있는 답은 그대로 #3 · 1.5s
→ request POST /webhook/my-policy-qa
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "암호는 90일마다 변경해야 하며, 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다. 또한 최근에 사용한 비밀번호 5개는 다시 사용할 수 없습니다[비밀번호·계정 보안 규정].",
"draft": "암호는 90일마다 변경해야 하며, 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다. 또한 최근에 사용한 비밀번호 5개는 다시 사용할 수 없습니다[비밀번호·계정 보안 규정].",
"sources": [
"password-policy"
],
"cited": [
"password-policy"
],
"top_score": 0.576,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 검사 기록 #1 · 1.8s
→ request POST /webhook/my-policy-qa
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심해야 합니다. 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알리세요. 컴퓨터를 끄거나 파일을 지우지 마십시오. 원인 분석에 필요합니다[보안 사고 대응 절차].",
"draft": "컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심해야 합니다. 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알리세요. 컴퓨터를 끄거나 파일을 지우지 마십시오. 원인 분석에 필요합니다[보안 사고 대응 절차].",
"sources": [
"security-incident",
"remote-work-vpn"
],
"cited": [
"security-incident"
],
"top_score": 0.478,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 검사 기록 #2 · 1.6s
→ request POST /webhook/my-policy-qa
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심해야 합니다. 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알리세요. 컴퓨터를 끄거나 파일을 지우지 마십시오. 원인 분석에 필요합니다[보안 사고 대응 절차].",
"draft": "컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심해야 합니다. 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알리세요. 컴퓨터를 끄거나 파일을 지우지 마십시오. 원인 분석에 필요합니다[보안 사고 대응 절차].",
"sources": [
"security-incident",
"remote-work-vpn"
],
"cited": [
"security-incident"
],
"top_score": 0.478,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 검사 기록 #3 · 1.5s
→ request POST /webhook/my-policy-qa
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심해야 합니다. 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알리세요. 컴퓨터를 끄거나 파일을 지우지 마십시오. 원인 분석에 필요합니다[보안 사고 대응 절차].",
"draft": "컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심해야 합니다. 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알리세요. 컴퓨터를 끄거나 파일을 지우지 마십시오. 원인 분석에 필요합니다[보안 사고 대응 절차].",
"sources": [
"security-incident",
"remote-work-vpn"
],
"cited": [
"security-incident"
],
"top_score": 0.478,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
Passed 24/24
report: runs/lab02-challenge-20261022-201018.json
```
- 예: "보안 교육" → `failed: [found_in_policies, cites_excerpt, grounded]`, `route: 담당자 연결`, `draft`에 LLM의 원래 답("규정에서 답을 찾지 못했습니다.").
- LLM 답은 매번 다르므로 3번 돌렸습니다. 3번 모두 같은 결과.
### 09 · 과제 정답으로 원래 테스트 → `lab02` 6/6
실행한 명령:
```bash
uv run tools/flow.py test cases/lab02.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 0.5s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-policy-qa · 6 case(s) × 1
✔ 비밀번호 주기 · 답과 출처 · 1.6s
→ request POST /webhook/my-policy-qa
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "암호는 90일마다 변경해야 하며, 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다. 또한 최근에 사용한 비밀번호 5개는 다시 사용할 수 없습니다[비밀번호·계정 보안 규정].",
"draft": "암호는 90일마다 변경해야 하며, 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다. 또한 최근에 사용한 비밀번호 5개는 다시 사용할 수 없습니다[비밀번호·계정 보안 규정].",
"sources": [
"password-policy"
],
"cited": [
"password-policy"
],
"top_score": 0.576,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 퇴사 노트북 · 1.6s
→ request POST /webhook/my-policy-qa
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "회사를 그만두면 업무용 노트북은 퇴사 후 5영업일 이내에 IT 담당자에게 반납해야 합니다. 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮겨야 합니다[업무용 장비 지급·반납 규정].",
"draft": "회사를 그만두면 업무용 노트북은 퇴사 후 5영업일 이내에 IT 담당자에게 반납해야 합니다. 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮겨야 합니다[업무용 장비 지급·반납 규정].",
"sources": [
"device-issue-return"
],
"cited": [
"device-issue-return"
],
"top_score": 0.464,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 생성형 AI · 1.3s
→ request POST /webhook/my-policy-qa
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "고객 정보는 생성형 AI 서비스에 입력하지 말아야 합니다. 회사가 승인한 생성형 AI 서비스만 업무에 사용해야 하며, 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는 것이 규정입니다[소프트웨어 사용 규정].",
"draft": "고객 정보는 생성형 AI 서비스에 입력하지 말아야 합니다. 회사가 승인한 생성형 AI 서비스만 업무에 사용해야 하며, 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는 것이 규정입니다[소프트웨어 사용 규정].",
"sources": [
"software-usage",
"privacy"
],
"cited": [
"software-usage"
],
"top_score": 0.512,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 출처는 제목으로 · 1.4s
→ request POST /webhook/my-policy-qa
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "메일 첨부 파일은 25MB까지 보낼 수 있으며, 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보내야 합니다[메일·문서 보안 규정].",
"draft": "메일 첨부 파일은 25MB까지 보낼 수 있으며, 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보내야 합니다[메일·문서 보안 규정].",
"sources": [
"email-and-documents",
"security-incident"
],
"cited": [
"email-and-documents"
],
"top_score": 0.616,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 점심 메뉴 · 담당자 연결 · 0.4s
→ request POST /webhook/my-policy-qa
{
"question": "오늘 점심 메뉴 추천해줘"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 답을 찾지 못했습니다. IT 문의 창구로 연결해 드릴게요.",
"sources": [],
"cited": [],
"top_score": 0.202
}
✔ 질문 없음 · 0.0s
→ request POST /webhook/my-policy-qa
{
"question": ""
}
← response HTTP 400
{
"error": "question is required"
}
Passed 6/6
report: runs/lab02-20261022-201025.json
```
- 근거 있는 답은 검사를 모두 통과해 그대로 `자동 답변`.
### 10 · 관련도 기준값 확인 → `lab03-threshold` 10/10
실행한 명령:
```bash
uv run tools/flow.py test cases/lab03-threshold.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 0.5s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-policy-qa · 10 case(s) × 1
✔ 규정 질문 · 암호를 얼마나 자주 바꿔야 해? · 1.5s
→ request POST /webhook/my-policy-qa
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "암호는 90일마다 변경해야 하며, 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다. 또한 최근에 사용한 비밀번호 5개는 다시 사용할 수 없습니다[비밀번호·계정 보안 규정].",
"draft": "암호는 90일마다 변경해야 하며, 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다. 또한 최근에 사용한 비밀번호 5개는 다시 사용할 수 없습니다[비밀번호·계정 보안 규정].",
"sources": [
"password-policy"
],
"cited": [
"password-policy"
],
"top_score": 0.575,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 규정 질문 · 회사를 그만두면 노트북은 언제까지 돌려줘야 하나요? · 1.4s
→ request POST /webhook/my-policy-qa
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "회사를 그만두면 업무용 노트북은 퇴사 후 5영업일 이내에 IT 담당자에게 반납해야 합니다. 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮겨야 합니다[업무용 장비 지급·반납 규정].",
"draft": "회사를 그만두면 업무용 노트북은 퇴사 후 5영업일 이내에 IT 담당자에게 반납해야 합니다. 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮겨야 합니다[업무용 장비 지급·반납 규정].",
"sources": [
"device-issue-return"
],
"cited": [
"device-issue-return"
],
"top_score": 0.464,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 규정 질문 · 첨부 파일이 너무 커서 메일이 안 보내져요 · 1.7s
→ request POST /webhook/my-policy-qa
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "메일 첨부 파일은 25MB까지 보낼 수 있으며, 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보내야 합니다[메일·문서 보안 규정]. 따라서 첨부 파일이 너무 커서 메일이 안 보내진다면, 파일을 사내 드라이브에 올리고 링크를 공유하세요[메일·문서 보안 규정].",
"draft": "메일 첨부 파일은 25MB까지 보낼 수 있으며, 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보내야 합니다[메일·문서 보안 규정]. 따라서 첨부 파일이 너무 커서 메일이 안 보내진다면, 파일을 사내 드라이브에 올리고 링크를 공유하세요[메일·문서 보안 규정].",
"sources": [
"email-and-documents",
"security-incident"
],
"cited": [
"email-and-documents"
],
"top_score": 0.616,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 규정 질문 · 생성형 AI에 고객 자료를 넣어도 되나요? · 1.8s
→ request POST /webhook/my-policy-qa
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "고객 정보는 생성형 AI 서비스에 입력하지 말아야 합니다. 회사가 승인한 생성형 AI 서비스만 업무에 사용해야 하며, 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는 것이 규정입니다[소프트웨어 사용 규정].",
"draft": "고객 정보는 생성형 AI 서비스에 입력하지 말아야 합니다. 회사가 승인한 생성형 AI 서비스만 업무에 사용해야 하며, 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는 것이 규정입니다[소프트웨어 사용 규정].",
"sources": [
"software-usage",
"privacy"
],
"cited": [
"software-usage"
],
"top_score": 0.51,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 규정 질문 · 컴퓨터가 바이러스에 걸린 것 같아요 · 1.4s
→ request POST /webhook/my-policy-qa
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심해야 합니다. 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알리세요. 컴퓨터를 끄거나 파일을 지우지 마십시오. 원인 분석에 필요합니다[보안 사고 대응 절차].",
"draft": "컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심해야 합니다. 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알리세요. 컴퓨터를 끄거나 파일을 지우지 마십시오. 원인 분석에 필요합니다[보안 사고 대응 절차].",
"sources": [
"security-incident",
"remote-work-vpn"
],
"cited": [
"security-incident"
],
"top_score": 0.478,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 규정 밖 · 오늘 점심 메뉴 추천해줘 · 0.3s
→ request POST /webhook/my-policy-qa
{
"question": "오늘 점심 메뉴 추천해줘"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 답을 찾지 못했습니다. IT 문의 창구로 연결해 드릴게요.",
"sources": [],
"cited": [],
"top_score": 0.202
}
✔ 규정 밖 · 연차 휴가는 며칠이에요? · 0.3s
→ request POST /webhook/my-policy-qa
{
"question": "연차 휴가는 며칠이에요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 답을 찾지 못했습니다. IT 문의 창구로 연결해 드릴게요.",
"sources": [],
"cited": [],
"top_score": 0.259
}
✔ 규정 밖 · 주말에 볼 영화 추천해 주세요 · 0.3s
→ request POST /webhook/my-policy-qa
{
"question": "주말에 볼 영화 추천해 주세요"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 답을 찾지 못했습니다. IT 문의 창구로 연결해 드릴게요.",
"sources": [],
"cited": [],
"top_score": 0.211
}
✔ 규정 밖 · 회사 근처 맛집 알려 줘 · 0.4s
→ request POST /webhook/my-policy-qa
{
"question": "회사 근처 맛집 알려 줘"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 답을 찾지 못했습니다. IT 문의 창구로 연결해 드릴게요.",
"sources": [],
"cited": [],
"top_score": 0.232
}
✔ 규정 밖 · 올해 연봉 인상률은요? · 0.5s
→ request POST /webhook/my-policy-qa
{
"question": "올해 연봉 인상률은요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 답을 찾지 못했습니다. IT 문의 창구로 연결해 드릴게요.",
"sources": [],
"cited": [],
"top_score": 0.261
}
Passed 10/10
report: runs/lab03-threshold-20261022-201035.json
```
- 규정 질문 5개는 기준값 위, 규정 밖 5개(점심 · 연차 · 영화 · 맛집 · 연봉)는 아래. 학생 Lab 03 예제 2 끝에서 돌리는 테스트를 여기서 함께 쟀습니다 (Lab 02 과제 정답으로).
## Lab 03 · 검색 품질을 숫자로 재고, 한 가지씩 고치기
### 11 · 예제 1 · 섹션으로 색인
실행한 명령:
```bash
uv run tools/flow.py call my-index requests/index-section.json -v
```
출력 (그대로):
```text
$ uv run tools/flow.py call my-index requests/index-section.json -v
HTTP 200 · 1.7s
→ request POST /webhook/my-index
{
"chunking": "section"
}
← response HTTP 200
{
"indexed_chunks": 25,
"chunking": "section"
}
```
- Lab 01 과제 정답 색인 · 검색 그대로. 아래 12~14는 `--no-before`로 **이 색인을 그대로** 잽니다.
### 12 · 예제 1 · doc@1 (1등이 맞는 문서) → 24/24
실행한 명령:
```bash
uv run tools/flow.py test cases/retrieval-doc.json -v --no-before
```
출력 (그대로):
```text
POST http://localhost:5678/webhook/my-search · 24 case(s) × 1
✔ 비밀번호는 몇 자 이상이어야 하나요? · 0.2s
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.748,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.54,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.484,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.748,
"indexed": true
}
✔ 암호를 얼마나 자주 바꿔야 해? · 0.3s
→ request POST /webhook/my-search
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"question": "암호를 얼마나 자주 바꿔야 해?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.576,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.512,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.456,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.576,
"indexed": true
}
✔ 로그인을 여러 번 틀리면 어떻게 돼요? · 0.3s
→ request POST /webhook/my-search
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?"
}
← response HTTP 200
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.563,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.419,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.41,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.563,
"indexed": true
}
✔ 카페 와이파이로 회사 시스템에 접속해도 되나요? · 0.2s
→ request POST /webhook/my-search
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?"
}
← response HTTP 200
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.591,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.388,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.349,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
}
],
"top_score": 0.591,
"indexed": true
}
✔ VPN 인증서는 언제 다시 받아야 해요? · 0.3s
→ request POST /webhook/my-search
{
"question": "VPN 인증서는 언제 다시 받아야 해요?"
}
← response HTTP 200
{
"question": "VPN 인증서는 언제 다시 받아야 해요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "2. VPN 인증서",
"score": 0.631,
"text": "원격근무·VPN 이용 규정\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.394,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.372,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
}
],
"top_score": 0.631,
"indexed": true
}
✔ 회사를 그만두면 노트북은 언제까지 돌려줘야 하나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"
}
← response HTTP 200
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.464,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.45,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.369,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
}
],
"top_score": 0.464,
"indexed": true
}
✔ 노트북을 잃어버렸어요. 어떻게 해야 하나요? · 0.2s
→ request POST /webhook/my-search
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?"
}
← response HTTP 200
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.484,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.386,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.325,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
}
],
"top_score": 0.484,
"indexed": true
}
✔ 개인 휴대폰으로 업무 메일 봐도 되나요? · 0.4s
→ request POST /webhook/my-search
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?"
}
← response HTTP 200
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.648,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.392,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.385,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.648,
"indexed": true
}
✔ 새 프로그램 설치 승인은 며칠 걸려요? · 0.3s
→ request POST /webhook/my-search
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?"
}
← response HTTP 200
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.466,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.308,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.303,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.466,
"indexed": true
}
✔ 생성형 AI에 고객 자료를 넣어도 되나요? · 0.2s
→ request POST /webhook/my-search
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?"
}
← response HTTP 200
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.51,
"text": "소프트웨어 사용 규정\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.367,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.336,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
}
],
"top_score": 0.51,
"indexed": true
}
✔ 첨부 파일이 너무 커서 메일이 안 보내져요 · 0.3s
→ request POST /webhook/my-search
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요"
}
← response HTTP 200
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.616,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.455,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.335,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.616,
"indexed": true
}
✔ 고객 주민등록번호를 받아도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "고객 주민등록번호를 받아도 되나요?"
}
← response HTTP 200
{
"question": "고객 주민등록번호를 받아도 되나요?",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.494,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.373,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.304,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
}
],
"top_score": 0.494,
"indexed": true
}
✔ 고객 정보가 밖으로 샌 것 같아요 · 0.3s
→ request POST /webhook/my-search
{
"question": "고객 정보가 밖으로 샌 것 같아요"
}
← response HTTP 200
{
"question": "고객 정보가 밖으로 샌 것 같아요",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.395,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.375,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.367,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.395,
"indexed": true
}
✔ 회의실을 하루 종일 잡아도 되나요? · 0.2s
→ request POST /webhook/my-search
{
"question": "회의실을 하루 종일 잡아도 되나요?"
}
← response HTTP 200
{
"question": "회의실을 하루 종일 잡아도 되나요?",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.576,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다."
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "2. 장비",
"score": 0.508,
"text": "회의실 이용 규정\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다."
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.471,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
}
],
"top_score": 0.576,
"indexed": true
}
✔ 수상한 메일의 링크를 눌렀어요 · 0.2s
→ request POST /webhook/my-search
{
"question": "수상한 메일의 링크를 눌렀어요"
}
← response HTTP 200
{
"question": "수상한 메일의 링크를 눌렀어요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.524,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.381,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 3,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.321,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
}
],
"top_score": 0.524,
"indexed": true
}
✔ 컴퓨터가 바이러스에 걸린 것 같아요 · 0.3s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.478,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.357,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.249,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.478,
"indexed": true
}
✔ OTP 앱 깔린 휴대폰을 새로 바꿨어요 · 0.2s
→ request POST /webhook/my-search
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요"
}
← response HTTP 200
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.526,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.376,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.33,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.526,
"indexed": true
}
✔ 출력한 고객 명단은 어떻게 버려요? · 0.3s
→ request POST /webhook/my-search
{
"question": "출력한 고객 명단은 어떻게 버려요?"
}
← response HTTP 200
{
"question": "출력한 고객 명단은 어떻게 버려요?",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.443,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.306,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.292,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
}
],
"top_score": 0.443,
"indexed": true
}
✔ 개인정보 파일을 거래처에 메일로 보내도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?"
}
← response HTTP 200
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.497,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.447,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.402,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
}
],
"top_score": 0.497,
"indexed": true
}
✔ 자리 비울 때 화면은 몇 분 뒤 잠기게 해요? · 0.3s
→ request POST /webhook/my-search
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?"
}
← response HTTP 200
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.354,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.322,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.265,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
}
],
"top_score": 0.354,
"indexed": true
}
✔ 화상회의 장비는 언제까지 요청해야 하나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?"
}
← response HTTP 200
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "2. 장비",
"score": 0.439,
"text": "회의실 이용 규정\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.315,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.31,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다."
}
],
"top_score": 0.439,
"indexed": true
}
✔ 노트북 배터리가 금방 닳아요 · 0.4s
→ request POST /webhook/my-search
{
"question": "노트북 배터리가 금방 닳아요"
}
← response HTTP 200
{
"question": "노트북 배터리가 금방 닳아요",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.372,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.285,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.282,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
}
],
"top_score": 0.372,
"indexed": true
}
✔ 공짜 프로그램은 그냥 써도 되죠? · 0.3s
→ request POST /webhook/my-search
{
"question": "공짜 프로그램은 그냥 써도 되죠?"
}
← response HTTP 200
{
"question": "공짜 프로그램은 그냥 써도 되죠?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.267,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "2. 금지 사항",
"score": 0.264,
"text": "소프트웨어 사용 규정\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.253,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
}
],
"top_score": 0.267,
"indexed": true
}
✔ 감염된 것 같은데 컴퓨터를 꺼도 되나요? · 0.2s
→ request POST /webhook/my-search
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?"
}
← response HTTP 200
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.507,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.311,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.306,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.507,
"indexed": true
}
Passed 24/24
report: runs/retrieval-doc-20261022-201044.json
```
- 24문항 모두 1등 청크의 문서가 맞습니다.
### 13 · 예제 1 · answer@1 (1등 청크에 답 문구) → 22/24
실행한 명령:
```bash
uv run tools/flow.py test cases/retrieval-answer.json -v --no-before
```
출력 (그대로):
```text
POST http://localhost:5678/webhook/my-search · 24 case(s) × 1
✔ 비밀번호는 몇 자 이상이어야 하나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.748,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.54,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.484,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.748,
"indexed": true
}
✔ 암호를 얼마나 자주 바꿔야 해? · 0.3s
→ request POST /webhook/my-search
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"question": "암호를 얼마나 자주 바꿔야 해?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.576,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.512,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.456,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.576,
"indexed": true
}
✔ 로그인을 여러 번 틀리면 어떻게 돼요? · 0.3s
→ request POST /webhook/my-search
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?"
}
← response HTTP 200
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.563,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.419,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.41,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.563,
"indexed": true
}
✔ 카페 와이파이로 회사 시스템에 접속해도 되나요? · 0.2s
→ request POST /webhook/my-search
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?"
}
← response HTTP 200
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.591,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.388,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.349,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
}
],
"top_score": 0.591,
"indexed": true
}
✔ VPN 인증서는 언제 다시 받아야 해요? · 0.3s
→ request POST /webhook/my-search
{
"question": "VPN 인증서는 언제 다시 받아야 해요?"
}
← response HTTP 200
{
"question": "VPN 인증서는 언제 다시 받아야 해요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "2. VPN 인증서",
"score": 0.631,
"text": "원격근무·VPN 이용 규정\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.394,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.372,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
}
],
"top_score": 0.631,
"indexed": true
}
✘ 회사를 그만두면 노트북은 언제까지 돌려줘야 하나요? · 0.3s · hits.0.text has none of ['5영업일']
→ request POST /webhook/my-search
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"
}
← response HTTP 200
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.464,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.45,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.369,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
}
],
"top_score": 0.464,
"indexed": true
}
✔ 노트북을 잃어버렸어요. 어떻게 해야 하나요? · 0.2s
→ request POST /webhook/my-search
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?"
}
← response HTTP 200
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.484,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.386,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.325,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
}
],
"top_score": 0.484,
"indexed": true
}
✔ 개인 휴대폰으로 업무 메일 봐도 되나요? · 0.4s
→ request POST /webhook/my-search
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?"
}
← response HTTP 200
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.648,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.392,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.385,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.648,
"indexed": true
}
✔ 새 프로그램 설치 승인은 며칠 걸려요? · 0.3s
→ request POST /webhook/my-search
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?"
}
← response HTTP 200
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.466,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.308,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.303,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.466,
"indexed": true
}
✔ 생성형 AI에 고객 자료를 넣어도 되나요? · 0.2s
→ request POST /webhook/my-search
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?"
}
← response HTTP 200
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.51,
"text": "소프트웨어 사용 규정\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.367,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.336,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
}
],
"top_score": 0.51,
"indexed": true
}
✔ 첨부 파일이 너무 커서 메일이 안 보내져요 · 0.3s
→ request POST /webhook/my-search
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요"
}
← response HTTP 200
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.616,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.455,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.335,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.616,
"indexed": true
}
✔ 고객 주민등록번호를 받아도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "고객 주민등록번호를 받아도 되나요?"
}
← response HTTP 200
{
"question": "고객 주민등록번호를 받아도 되나요?",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.494,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.373,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.304,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
}
],
"top_score": 0.494,
"indexed": true
}
✘ 고객 정보가 밖으로 샌 것 같아요 · 0.3s · hits.0.text has none of ['1시간']
→ request POST /webhook/my-search
{
"question": "고객 정보가 밖으로 샌 것 같아요"
}
← response HTTP 200
{
"question": "고객 정보가 밖으로 샌 것 같아요",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.395,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.375,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.367,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.395,
"indexed": true
}
✔ 회의실을 하루 종일 잡아도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "회의실을 하루 종일 잡아도 되나요?"
}
← response HTTP 200
{
"question": "회의실을 하루 종일 잡아도 되나요?",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.576,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다."
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "2. 장비",
"score": 0.508,
"text": "회의실 이용 규정\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다."
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.471,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
}
],
"top_score": 0.576,
"indexed": true
}
✔ 수상한 메일의 링크를 눌렀어요 · 0.3s
→ request POST /webhook/my-search
{
"question": "수상한 메일의 링크를 눌렀어요"
}
← response HTTP 200
{
"question": "수상한 메일의 링크를 눌렀어요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.524,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.381,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 3,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.321,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
}
],
"top_score": 0.524,
"indexed": true
}
✔ 컴퓨터가 바이러스에 걸린 것 같아요 · 0.3s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.478,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.357,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.249,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.478,
"indexed": true
}
✔ OTP 앱 깔린 휴대폰을 새로 바꿨어요 · 0.3s
→ request POST /webhook/my-search
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요"
}
← response HTTP 200
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.526,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.376,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.33,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.526,
"indexed": true
}
✔ 출력한 고객 명단은 어떻게 버려요? · 0.4s
→ request POST /webhook/my-search
{
"question": "출력한 고객 명단은 어떻게 버려요?"
}
← response HTTP 200
{
"question": "출력한 고객 명단은 어떻게 버려요?",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.443,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.306,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.292,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
}
],
"top_score": 0.443,
"indexed": true
}
✔ 개인정보 파일을 거래처에 메일로 보내도 되나요? · 0.2s
→ request POST /webhook/my-search
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?"
}
← response HTTP 200
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.497,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.447,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.402,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
}
],
"top_score": 0.497,
"indexed": true
}
✔ 자리 비울 때 화면은 몇 분 뒤 잠기게 해요? · 0.3s
→ request POST /webhook/my-search
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?"
}
← response HTTP 200
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.354,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.322,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.265,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
}
],
"top_score": 0.354,
"indexed": true
}
✔ 화상회의 장비는 언제까지 요청해야 하나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?"
}
← response HTTP 200
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "2. 장비",
"score": 0.439,
"text": "회의실 이용 규정\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.315,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.31,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다."
}
],
"top_score": 0.439,
"indexed": true
}
✔ 노트북 배터리가 금방 닳아요 · 0.3s
→ request POST /webhook/my-search
{
"question": "노트북 배터리가 금방 닳아요"
}
← response HTTP 200
{
"question": "노트북 배터리가 금방 닳아요",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.372,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.285,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.282,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
}
],
"top_score": 0.372,
"indexed": true
}
✔ 공짜 프로그램은 그냥 써도 되죠? · 0.3s
→ request POST /webhook/my-search
{
"question": "공짜 프로그램은 그냥 써도 되죠?"
}
← response HTTP 200
{
"question": "공짜 프로그램은 그냥 써도 되죠?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.267,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "2. 금지 사항",
"score": 0.264,
"text": "소프트웨어 사용 규정\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.253,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
}
],
"top_score": 0.267,
"indexed": true
}
✔ 감염된 것 같은데 컴퓨터를 꺼도 되나요? · 0.5s
→ request POST /webhook/my-search
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?"
}
← response HTTP 200
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.507,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.311,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.306,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.507,
"indexed": true
}
Passed 22/24
report: runs/retrieval-answer-20261022-201052.json
```
- 틀린 두 질문: "회사를 그만두면 노트북은…"(5영업일), "고객 정보가 밖으로 샌 것 같아요"(1시간). 둘 다 **문서는 맞고** 같은 문서의 다른 섹션이 1등 (수업 준비 때와 같은 두 질문).
### 14 · 예제 1 · answer@3 (3등 안에 답 문구) → 24/24
실행한 명령:
```bash
uv run tools/flow.py test cases/retrieval-answer3.json -v --no-before
```
출력 (그대로):
```text
POST http://localhost:5678/webhook/my-search · 24 case(s) × 1
✔ 비밀번호는 몇 자 이상이어야 하나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.748,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.54,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.484,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.748,
"indexed": true
}
✔ 암호를 얼마나 자주 바꿔야 해? · 0.3s
→ request POST /webhook/my-search
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"question": "암호를 얼마나 자주 바꿔야 해?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.576,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.512,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.456,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.576,
"indexed": true
}
✔ 로그인을 여러 번 틀리면 어떻게 돼요? · 0.3s
→ request POST /webhook/my-search
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?"
}
← response HTTP 200
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.563,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.419,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.41,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.563,
"indexed": true
}
✔ 카페 와이파이로 회사 시스템에 접속해도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?"
}
← response HTTP 200
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.591,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.388,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.349,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
}
],
"top_score": 0.591,
"indexed": true
}
✔ VPN 인증서는 언제 다시 받아야 해요? · 0.3s
→ request POST /webhook/my-search
{
"question": "VPN 인증서는 언제 다시 받아야 해요?"
}
← response HTTP 200
{
"question": "VPN 인증서는 언제 다시 받아야 해요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "2. VPN 인증서",
"score": 0.631,
"text": "원격근무·VPN 이용 규정\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.394,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.372,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
}
],
"top_score": 0.631,
"indexed": true
}
✔ 회사를 그만두면 노트북은 언제까지 돌려줘야 하나요? · 0.4s
→ request POST /webhook/my-search
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"
}
← response HTTP 200
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.464,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.45,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.369,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
}
],
"top_score": 0.464,
"indexed": true
}
✔ 노트북을 잃어버렸어요. 어떻게 해야 하나요? · 0.5s
→ request POST /webhook/my-search
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?"
}
← response HTTP 200
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.484,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.386,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.325,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
}
],
"top_score": 0.484,
"indexed": true
}
✔ 개인 휴대폰으로 업무 메일 봐도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?"
}
← response HTTP 200
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.648,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.392,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.385,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.648,
"indexed": true
}
✔ 새 프로그램 설치 승인은 며칠 걸려요? · 0.3s
→ request POST /webhook/my-search
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?"
}
← response HTTP 200
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.466,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.308,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.303,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.466,
"indexed": true
}
✔ 생성형 AI에 고객 자료를 넣어도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?"
}
← response HTTP 200
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.51,
"text": "소프트웨어 사용 규정\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.367,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.336,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
}
],
"top_score": 0.51,
"indexed": true
}
✔ 첨부 파일이 너무 커서 메일이 안 보내져요 · 0.2s
→ request POST /webhook/my-search
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요"
}
← response HTTP 200
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.616,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.455,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.335,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.616,
"indexed": true
}
✔ 고객 주민등록번호를 받아도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "고객 주민등록번호를 받아도 되나요?"
}
← response HTTP 200
{
"question": "고객 주민등록번호를 받아도 되나요?",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.494,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.373,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.304,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
}
],
"top_score": 0.494,
"indexed": true
}
✔ 고객 정보가 밖으로 샌 것 같아요 · 0.3s
→ request POST /webhook/my-search
{
"question": "고객 정보가 밖으로 샌 것 같아요"
}
← response HTTP 200
{
"question": "고객 정보가 밖으로 샌 것 같아요",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.395,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.375,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.367,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.395,
"indexed": true
}
✔ 회의실을 하루 종일 잡아도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "회의실을 하루 종일 잡아도 되나요?"
}
← response HTTP 200
{
"question": "회의실을 하루 종일 잡아도 되나요?",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.576,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다."
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "2. 장비",
"score": 0.508,
"text": "회의실 이용 규정\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다."
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.471,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
}
],
"top_score": 0.576,
"indexed": true
}
✔ 수상한 메일의 링크를 눌렀어요 · 0.2s
→ request POST /webhook/my-search
{
"question": "수상한 메일의 링크를 눌렀어요"
}
← response HTTP 200
{
"question": "수상한 메일의 링크를 눌렀어요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.524,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.381,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 3,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.321,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
}
],
"top_score": 0.524,
"indexed": true
}
✔ 컴퓨터가 바이러스에 걸린 것 같아요 · 0.3s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.478,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.357,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.249,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.478,
"indexed": true
}
✔ OTP 앱 깔린 휴대폰을 새로 바꿨어요 · 0.3s
→ request POST /webhook/my-search
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요"
}
← response HTTP 200
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.526,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.376,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.33,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.526,
"indexed": true
}
✔ 출력한 고객 명단은 어떻게 버려요? · 0.9s
→ request POST /webhook/my-search
{
"question": "출력한 고객 명단은 어떻게 버려요?"
}
← response HTTP 200
{
"question": "출력한 고객 명단은 어떻게 버려요?",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.443,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.306,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.292,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
}
],
"top_score": 0.443,
"indexed": true
}
✔ 개인정보 파일을 거래처에 메일로 보내도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?"
}
← response HTTP 200
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.497,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.447,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.402,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
}
],
"top_score": 0.497,
"indexed": true
}
✔ 자리 비울 때 화면은 몇 분 뒤 잠기게 해요? · 0.4s
→ request POST /webhook/my-search
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?"
}
← response HTTP 200
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.354,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.322,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.265,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
}
],
"top_score": 0.354,
"indexed": true
}
✔ 화상회의 장비는 언제까지 요청해야 하나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?"
}
← response HTTP 200
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "2. 장비",
"score": 0.439,
"text": "회의실 이용 규정\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.315,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.31,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다."
}
],
"top_score": 0.439,
"indexed": true
}
✔ 노트북 배터리가 금방 닳아요 · 0.2s
→ request POST /webhook/my-search
{
"question": "노트북 배터리가 금방 닳아요"
}
← response HTTP 200
{
"question": "노트북 배터리가 금방 닳아요",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.372,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.285,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.282,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
}
],
"top_score": 0.372,
"indexed": true
}
✔ 공짜 프로그램은 그냥 써도 되죠? · 0.3s
→ request POST /webhook/my-search
{
"question": "공짜 프로그램은 그냥 써도 되죠?"
}
← response HTTP 200
{
"question": "공짜 프로그램은 그냥 써도 되죠?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.267,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "2. 금지 사항",
"score": 0.264,
"text": "소프트웨어 사용 규정\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.253,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
}
],
"top_score": 0.267,
"indexed": true
}
✔ 감염된 것 같은데 컴퓨터를 꺼도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?"
}
← response HTTP 200
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.507,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.311,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.306,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.507,
"indexed": true
}
Passed 24/24
report: runs/retrieval-answer3-20261022-201100.json
```
- Q&A는 청크 3개를 LLM에 주므로 13의 두 질문도 답할 수 있습니다.
### 15 · 예제 2 · 200자로 다시 색인 → 청크 20
실행한 명령:
```bash
uv run tools/flow.py call my-index requests/index-200.json -v
```
출력 (그대로):
```text
$ uv run tools/flow.py call my-index requests/index-200.json -v
HTTP 200 · 0.5s
→ request POST /webhook/my-index
{
"chunking": 200
}
← response HTTP 200
{
"indexed_chunks": 20,
"chunking": 200
}
```
- **한 번에 하나만** 바꿉니다 (청크 크기만).
### 16 · 예제 2 · 200자 answer@1 → 20/24
실행한 명령:
```bash
uv run tools/flow.py test cases/retrieval-answer.json -v --no-before
```
출력 (그대로):
```text
POST http://localhost:5678/webhook/my-search · 24 case(s) × 1
✔ 비밀번호는 몇 자 이상이어야 하나요? · 0.4s
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.689,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개"
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.487,
"text": "비밀번호·계정 보안 규정\n 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증"
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.417,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.689,
"indexed": true
}
✔ 암호를 얼마나 자주 바꿔야 해? · 0.3s
→ request POST /webhook/my-search
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"question": "암호를 얼마나 자주 바꿔야 해?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.58,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개"
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.481,
"text": "비밀번호·계정 보안 규정\n 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증"
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.461,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.58,
"indexed": true
}
✔ 로그인을 여러 번 틀리면 어떻게 돼요? · 0.3s
→ request POST /webhook/my-search
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?"
}
← response HTTP 200
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.469,
"text": "비밀번호·계정 보안 규정\n 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증"
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.407,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.385,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개"
}
],
"top_score": 0.469,
"indexed": true
}
✔ 카페 와이파이로 회사 시스템에 접속해도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?"
}
← response HTTP 200
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.55,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다.\n\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만"
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "",
"score": 0.379,
"text": "원격근무·VPN 이용 규정\n업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.367,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.55,
"indexed": true
}
✘ VPN 인증서는 언제 다시 받아야 해요? · 0.4s · hits.0.text has none of ['30일 전']
→ request POST /webhook/my-search
{
"question": "VPN 인증서는 언제 다시 받아야 해요?"
}
← response HTTP 200
{
"question": "VPN 인증서는 언제 다시 받아야 해요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.545,
"text": "원격근무·VPN 이용 규정\n포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다.\n\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.505,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다.\n\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만"
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "",
"score": 0.43,
"text": "원격근무·VPN 이용 규정\n업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.545,
"indexed": true
}
✘ 회사를 그만두면 노트북은 언제까지 돌려줘야 하나요? · 0.3s · hits.0.text has none of ['5영업일']
→ request POST /webhook/my-search
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"
}
← response HTTP 200
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.502,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다.\n\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나"
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.416,
"text": "업무용 장비 지급·반납 규정\n자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다.\n\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의"
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.306,
"text": "원격근무·VPN 이용 규정\n포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다.\n\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.502,
"indexed": true
}
✔ 노트북을 잃어버렸어요. 어떻게 해야 하나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?"
}
← response HTTP 200
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.477,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다.\n\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나"
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.332,
"text": "업무용 장비 지급·반납 규정\n자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다.\n\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의"
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.308,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다"
}
],
"top_score": 0.477,
"indexed": true
}
✔ 개인 휴대폰으로 업무 메일 봐도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?"
}
← response HTTP 200
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "",
"score": 0.674,
"text": "업무용 장비 지급·반납 규정\n메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.507,
"text": "업무용 장비 지급·반납 규정\n자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다.\n\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의"
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.413,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.674,
"indexed": true
}
✔ 새 프로그램 설치 승인은 며칠 걸려요? · 0.2s
→ request POST /webhook/my-search
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?"
}
← response HTTP 200
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.427,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다.\n\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징"
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "",
"score": 0.393,
"text": "소프트웨어 사용 규정\n는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.351,
"text": "원격근무·VPN 이용 규정\n포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다.\n\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.427,
"indexed": true
}
✔ 생성형 AI에 고객 자료를 넣어도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?"
}
← response HTTP 200
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.484,
"text": "소프트웨어 사용 규정\n금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다.\n\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.369,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다.\n\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다.\n\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에"
},
{
"rank": 3,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.285,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다.\n\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암"
}
],
"top_score": 0.484,
"indexed": true
}
✔ 첨부 파일이 너무 커서 메일이 안 보내져요 · 0.2s
→ request POST /webhook/my-search
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요"
}
← response HTTP 200
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.562,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다.\n\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암"
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "3. 문서 등급과 보관",
"score": 0.352,
"text": "메일·문서 보안 규정\n를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다.\n\n## 3. 문서 등급과 보관\n- 대외비 문서에는 문서 첫 장에 '대외비'라고 표시한다.\n- 업무 문서는 3년 동안 보관한 뒤 정리한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "",
"score": 0.326,
"text": "업무용 장비 지급·반납 규정\n메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
}
],
"top_score": 0.562,
"indexed": true
}
✔ 고객 주민등록번호를 받아도 되나요? · 0.2s
→ request POST /webhook/my-search
{
"question": "고객 주민등록번호를 받아도 되나요?"
}
← response HTTP 200
{
"question": "고객 주민등록번호를 받아도 되나요?",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.488,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다.\n\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다.\n\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에"
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.305,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개"
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.29,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.488,
"indexed": true
}
✔ 고객 정보가 밖으로 샌 것 같아요 · 0.3s
→ request POST /webhook/my-search
{
"question": "고객 정보가 밖으로 샌 것 같아요"
}
← response HTTP 200
{
"question": "고객 정보가 밖으로 샌 것 같아요",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.445,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다.\n\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다.\n\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에"
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "",
"score": 0.405,
"text": "개인정보 처리 지침\n 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.386,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.445,
"indexed": true
}
✔ 회의실을 하루 종일 잡아도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "회의실을 하루 종일 잡아도 되나요?"
}
← response HTTP 200
{
"question": "회의실을 하루 종일 잡아도 되나요?",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.582,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다.\n\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다.\n\n## 3. 사용 후\n- 회의"
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.481,
"text": "회의실 이용 규정\n- 프로젝터는 B회의실과 대회의실에 있다.\n\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.275,
"text": "원격근무·VPN 이용 규정\n포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다.\n\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.582,
"indexed": true
}
✔ 수상한 메일의 링크를 눌렀어요 · 0.2s
→ request POST /webhook/my-search
{
"question": "수상한 메일의 링크를 눌렀어요"
}
← response HTTP 200
{
"question": "수상한 메일의 링크를 눌렀어요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.476,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다"
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "",
"score": 0.372,
"text": "업무용 장비 지급·반납 규정\n메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 3,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.37,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다.\n\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암"
}
],
"top_score": 0.476,
"indexed": true
}
✔ 컴퓨터가 바이러스에 걸린 것 같아요 · 0.2s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "",
"score": 0.485,
"text": "보안 사고 대응 절차\n가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.478,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다"
},
{
"rank": 3,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.262,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다.\n\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징"
}
],
"top_score": 0.485,
"indexed": true
}
✔ OTP 앱 깔린 휴대폰을 새로 바꿨어요 · 0.3s
→ request POST /webhook/my-search
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요"
}
← response HTTP 200
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.557,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.418,
"text": "비밀번호·계정 보안 규정\n 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증"
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.334,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개"
}
],
"top_score": 0.557,
"indexed": true
}
✔ 출력한 고객 명단은 어떻게 버려요? · 0.3s
→ request POST /webhook/my-search
{
"question": "출력한 고객 명단은 어떻게 버려요?"
}
← response HTTP 200
{
"question": "출력한 고객 명단은 어떻게 버려요?",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.387,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다.\n\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다.\n\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에"
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.279,
"text": "업무용 장비 지급·반납 규정\n자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다.\n\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의"
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "",
"score": 0.278,
"text": "원격근무·VPN 이용 규정\n업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.387,
"indexed": true
}
✘ 개인정보 파일을 거래처에 메일로 보내도 되나요? · 0.8s · hits.0.text has none of ['암호']
→ request POST /webhook/my-search
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?"
}
← response HTTP 200
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.465,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다.\n\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암"
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.464,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다.\n\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다.\n\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에"
},
{
"rank": 3,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "3. 문서 등급과 보관",
"score": 0.454,
"text": "메일·문서 보안 규정\n를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다.\n\n## 3. 문서 등급과 보관\n- 대외비 문서에는 문서 첫 장에 '대외비'라고 표시한다.\n- 업무 문서는 3년 동안 보관한 뒤 정리한다."
}
],
"top_score": 0.465,
"indexed": true
}
✔ 자리 비울 때 화면은 몇 분 뒤 잠기게 해요? · 0.3s
→ request POST /webhook/my-search
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?"
}
← response HTTP 200
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.303,
"text": "원격근무·VPN 이용 규정\n포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다.\n\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.252,
"text": "비밀번호·계정 보안 규정\n 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증"
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.247,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다.\n\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다.\n\n## 3. 사용 후\n- 회의"
}
],
"top_score": 0.303,
"indexed": true
}
✔ 화상회의 장비는 언제까지 요청해야 하나요? · 0.2s
→ request POST /webhook/my-search
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?"
}
← response HTTP 200
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.407,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다.\n\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다.\n\n## 3. 사용 후\n- 회의"
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.297,
"text": "업무용 장비 지급·반납 규정\n자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다.\n\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의"
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.296,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다.\n\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나"
}
],
"top_score": 0.407,
"indexed": true
}
✔ 노트북 배터리가 금방 닳아요 · 0.2s
→ request POST /webhook/my-search
{
"question": "노트북 배터리가 금방 닳아요"
}
← response HTTP 200
{
"question": "노트북 배터리가 금방 닳아요",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.363,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다.\n\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나"
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "",
"score": 0.308,
"text": "보안 사고 대응 절차\n가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.267,
"text": "업무용 장비 지급·반납 규정\n자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다.\n\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의"
}
],
"top_score": 0.363,
"indexed": true
}
✘ 공짜 프로그램은 그냥 써도 되죠? · 0.3s · hits.0.text has none of ['라이선스']
→ request POST /webhook/my-search
{
"question": "공짜 프로그램은 그냥 써도 되죠?"
}
← response HTTP 200
{
"question": "공짜 프로그램은 그냥 써도 되죠?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.29,
"text": "소프트웨어 사용 규정\n금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다.\n\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.28,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다.\n\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징"
},
{
"rank": 3,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "",
"score": 0.271,
"text": "소프트웨어 사용 규정\n는 사람이 확인한 뒤에 사용한다."
}
],
"top_score": 0.29,
"indexed": true
}
✔ 감염된 것 같은데 컴퓨터를 꺼도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?"
}
← response HTTP 200
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "",
"score": 0.52,
"text": "보안 사고 대응 절차\n가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.435,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다"
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.292,
"text": "원격근무·VPN 이용 규정\n포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다.\n\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.52,
"indexed": true
}
Passed 20/24
report: runs/retrieval-answer-20261022-201107.json
```
- 섹션보다 2개 더 틀림 (VPN 인증서 "30일 전", 메일 "암호", 공짜 프로그램 "라이선스" 등). 글자 수로 자르면 답 문구가 다음 청크로 넘어갑니다.
### 17 · 예제 2 · 400자로 다시 색인 → 청크 12
실행한 명령:
```bash
uv run tools/flow.py call my-index requests/index-400.json -v
```
출력 (그대로):
```text
$ uv run tools/flow.py call my-index requests/index-400.json -v
HTTP 200 · 0.5s
→ request POST /webhook/my-index
{
"chunking": 400
}
← response HTTP 200
{
"indexed_chunks": 12,
"chunking": 400
}
```
- 문서가 짧아 청크가 오히려 줄었습니다 (문서 8개 → 청크 12개).
### 18 · 예제 2 · 400자 answer@1 → 22/24
실행한 명령:
```bash
uv run tools/flow.py test cases/retrieval-answer.json -v --no-before
```
출력 (그대로):
```text
POST http://localhost:5678/webhook/my-search · 24 case(s) × 1
✔ 비밀번호는 몇 자 이상이어야 하나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.635,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에"
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.417,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.313,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
}
],
"top_score": 0.635,
"indexed": true
}
✔ 암호를 얼마나 자주 바꿔야 해? · 0.3s
→ request POST /webhook/my-search
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"question": "암호를 얼마나 자주 바꿔야 해?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.535,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에"
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.461,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.412,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
}
],
"top_score": 0.535,
"indexed": true
}
✔ 로그인을 여러 번 틀리면 어떻게 돼요? · 0.3s
→ request POST /webhook/my-search
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?"
}
← response HTTP 200
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.421,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에"
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.407,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.358,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
}
],
"top_score": 0.421,
"indexed": true
}
✔ 카페 와이파이로 회사 시스템에 접속해도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?"
}
← response HTTP 200
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.507,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다.\n\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다.\n\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "",
"score": 0.379,
"text": "원격근무·VPN 이용 규정\n업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.367,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.507,
"indexed": true
}
✔ VPN 인증서는 언제 다시 받아야 해요? · 0.3s
→ request POST /webhook/my-search
{
"question": "VPN 인증서는 언제 다시 받아야 해요?"
}
← response HTTP 200
{
"question": "VPN 인증서는 언제 다시 받아야 해요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.459,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다.\n\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다.\n\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "",
"score": 0.43,
"text": "원격근무·VPN 이용 규정\n업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.351,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.459,
"indexed": true
}
✔ 회사를 그만두면 노트북은 언제까지 돌려줘야 하나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"
}
← response HTTP 200
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.474,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다.\n\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다.\n\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.296,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다.\n\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다.\n\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "",
"score": 0.294,
"text": "업무용 장비 지급·반납 규정\n메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
}
],
"top_score": 0.474,
"indexed": true
}
✔ 노트북을 잃어버렸어요. 어떻게 해야 하나요? · 0.2s
→ request POST /webhook/my-search
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?"
}
← response HTTP 200
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.44,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다.\n\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다.\n\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.307,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.273,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에"
}
],
"top_score": 0.44,
"indexed": true
}
✔ 개인 휴대폰으로 업무 메일 봐도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?"
}
← response HTTP 200
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "",
"score": 0.674,
"text": "업무용 장비 지급·반납 규정\n메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.415,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다.\n\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다.\n\n## 3. 문서 등급과 보관\n- 대외비 문서에는 문서 첫 장에 '대외비'라고 표시한다.\n- 업무 문서는 3년 동안 보관한 뒤 정리한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.414,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다.\n\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다.\n\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
}
],
"top_score": 0.674,
"indexed": true
}
✔ 새 프로그램 설치 승인은 며칠 걸려요? · 0.2s
→ request POST /webhook/my-search
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?"
}
← response HTTP 200
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.394,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다.\n\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다.\n\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "",
"score": 0.393,
"text": "소프트웨어 사용 규정\n는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.307,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.394,
"indexed": true
}
✔ 생성형 AI에 고객 자료를 넣어도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?"
}
← response HTTP 200
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.389,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다.\n\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다.\n\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.37,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다.\n\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다.\n\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.262,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에"
}
],
"top_score": 0.389,
"indexed": true
}
✔ 첨부 파일이 너무 커서 메일이 안 보내져요 · 0.3s
→ request POST /webhook/my-search
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요"
}
← response HTTP 200
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.473,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다.\n\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다.\n\n## 3. 문서 등급과 보관\n- 대외비 문서에는 문서 첫 장에 '대외비'라고 표시한다.\n- 업무 문서는 3년 동안 보관한 뒤 정리한다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "",
"score": 0.326,
"text": "업무용 장비 지급·반납 규정\n메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.303,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
}
],
"top_score": 0.473,
"indexed": true
}
✔ 고객 주민등록번호를 받아도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "고객 주민등록번호를 받아도 되나요?"
}
← response HTTP 200
{
"question": "고객 주민등록번호를 받아도 되나요?",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.485,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다.\n\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다.\n\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.303,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에"
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.29,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.485,
"indexed": true
}
✔ 고객 정보가 밖으로 샌 것 같아요 · 0.3s
→ request POST /webhook/my-search
{
"question": "고객 정보가 밖으로 샌 것 같아요"
}
← response HTTP 200
{
"question": "고객 정보가 밖으로 샌 것 같아요",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.442,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다.\n\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다.\n\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.386,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.357,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에"
}
],
"top_score": 0.442,
"indexed": true
}
✔ 회의실을 하루 종일 잡아도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "회의실을 하루 종일 잡아도 되나요?"
}
← response HTTP 200
{
"question": "회의실을 하루 종일 잡아도 되나요?",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.575,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다.\n\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다.\n\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.266,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다.\n\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다.\n\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "",
"score": 0.262,
"text": "원격근무·VPN 이용 규정\n업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.575,
"indexed": true
}
✔ 수상한 메일의 링크를 눌렀어요 · 0.3s
→ request POST /webhook/my-search
{
"question": "수상한 메일의 링크를 눌렀어요"
}
← response HTTP 200
{
"question": "수상한 메일의 링크를 눌렀어요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.44,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "",
"score": 0.372,
"text": "업무용 장비 지급·반납 규정\n메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 3,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.326,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다.\n\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다.\n\n## 3. 문서 등급과 보관\n- 대외비 문서에는 문서 첫 장에 '대외비'라고 표시한다.\n- 업무 문서는 3년 동안 보관한 뒤 정리한다."
}
],
"top_score": 0.44,
"indexed": true
}
✔ 컴퓨터가 바이러스에 걸린 것 같아요 · 0.2s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.466,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.278,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다.\n\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다.\n\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.256,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에"
}
],
"top_score": 0.466,
"indexed": true
}
✔ OTP 앱 깔린 휴대폰을 새로 바꿨어요 · 0.3s
→ request POST /webhook/my-search
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요"
}
← response HTTP 200
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "",
"score": 0.557,
"text": "비밀번호·계정 보안 규정\n단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.379,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에"
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "",
"score": 0.323,
"text": "업무용 장비 지급·반납 규정\n메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
}
],
"top_score": 0.557,
"indexed": true
}
✔ 출력한 고객 명단은 어떻게 버려요? · 0.3s
→ request POST /webhook/my-search
{
"question": "출력한 고객 명단은 어떻게 버려요?"
}
← response HTTP 200
{
"question": "출력한 고객 명단은 어떻게 버려요?",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.385,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다.\n\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다.\n\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "",
"score": 0.278,
"text": "원격근무·VPN 이용 규정\n업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.262,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
}
],
"top_score": 0.385,
"indexed": true
}
✘ 개인정보 파일을 거래처에 메일로 보내도 되나요? · 0.3s · hits.0.text has none of ['암호']
→ request POST /webhook/my-search
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?"
}
← response HTTP 200
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.47,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다.\n\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다.\n\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.448,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다.\n\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다.\n\n## 3. 문서 등급과 보관\n- 대외비 문서에는 문서 첫 장에 '대외비'라고 표시한다.\n- 업무 문서는 3년 동안 보관한 뒤 정리한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "",
"score": 0.41,
"text": "업무용 장비 지급·반납 규정\n메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
}
],
"top_score": 0.47,
"indexed": true
}
✘ 자리 비울 때 화면은 몇 분 뒤 잠기게 해요? · 0.3s · hits.0.text has none of ['5분']
→ request POST /webhook/my-search
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?"
}
← response HTTP 200
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.241,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다.\n\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다.\n\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.236,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다.\n\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다.\n\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.232,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에"
}
],
"top_score": 0.241,
"indexed": true
}
✔ 화상회의 장비는 언제까지 요청해야 하나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?"
}
← response HTTP 200
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.403,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다.\n\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다.\n\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "",
"score": 0.272,
"text": "업무용 장비 지급·반납 규정\n메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.263,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다.\n\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다.\n\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
}
],
"top_score": 0.403,
"indexed": true
}
✔ 노트북 배터리가 금방 닳아요 · 0.3s
→ request POST /webhook/my-search
{
"question": "노트북 배터리가 금방 닳아요"
}
← response HTTP 200
{
"question": "노트북 배터리가 금방 닳아요",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.33,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다.\n\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다.\n\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다.\n\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.271,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.223,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다.\n\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다.\n\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다.\n\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에"
}
],
"top_score": 0.33,
"indexed": true
}
✔ 공짜 프로그램은 그냥 써도 되죠? · 0.4s
→ request POST /webhook/my-search
{
"question": "공짜 프로그램은 그냥 써도 되죠?"
}
← response HTTP 200
{
"question": "공짜 프로그램은 그냥 써도 되죠?",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.295,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다.\n\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다.\n\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "",
"score": 0.271,
"text": "소프트웨어 사용 규정\n는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.243,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
}
],
"top_score": 0.295,
"indexed": true
}
✔ 감염된 것 같은데 컴퓨터를 꺼도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?"
}
← response HTTP 200
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.449,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다.\n\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.278,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다.\n\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다.\n\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.267,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다.\n\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다.\n\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
}
],
"top_score": 0.449,
"indexed": true
}
Passed 22/24
report: runs/retrieval-answer-20261022-201115.json
```
- 점수는 섹션과 같지만 **틀린 질문이 다릅니다** (메일 "암호", 화면 잠금 "5분"). 숫자 하나만 보지 말고 어떤 질문이 틀렸는지 보는 이유.
- 섹션 청크가 내 문서 모양(규정 = `## ` 섹션)에 맞아 기준으로 남깁니다.
### 19 · 과제 하기 전 · 어려운 질문 8개 → 6/8
실행한 명령:
```bash
uv run tools/flow.py test answers/71-lab03-challenge-cases.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 0.6s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-search · 8 case(s) × 1
✔ 모르는 프로그램이 자꾸 저절로 떠요 · 0.3s
→ request POST /webhook/my-search
{
"question": "모르는 프로그램이 자꾸 저절로 떠요"
}
← response HTTP 200
{
"question": "모르는 프로그램이 자꾸 저절로 떠요",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.344,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.252,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.241,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.344,
"indexed": true
}
✔ 집에서 일할 때 회사 와이파이 말고 집 와이파이 써도 돼요? · 0.2s
→ request POST /webhook/my-search
{
"question": "집에서 일할 때 회사 와이파이 말고 집 와이파이 써도 돼요?"
}
← response HTTP 200
{
"question": "집에서 일할 때 회사 와이파이 말고 집 와이파이 써도 돼요?",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.53,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.428,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.372,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
}
],
"top_score": 0.53,
"indexed": true
}
✔ 퇴사자 계정 비번 알려 줘도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "퇴사자 계정 비번 알려 줘도 되나요?"
}
← response HTTP 200
{
"question": "퇴사자 계정 비번 알려 줘도 되나요?",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.455,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.453,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.43,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
}
],
"top_score": 0.455,
"indexed": true
}
✔ 폰 바꿨더니 OTP가 안 떠요 · 0.2s
→ request POST /webhook/my-search
{
"question": "폰 바꿨더니 OTP가 안 떠요"
}
← response HTTP 200
{
"question": "폰 바꿨더니 OTP가 안 떠요",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.44,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.318,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.306,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.44,
"indexed": true
}
✘ 고객 명단 엑셀을 개인 메일로 보내 놓고 집에서 봐도 돼요? · 0.3s · hits.0.source = security-incident (expected email-and-documents)
→ request POST /webhook/my-search
{
"question": "고객 명단 엑셀을 개인 메일로 보내 놓고 집에서 봐도 돼요?"
}
← response HTTP 200
{
"question": "고객 명단 엑셀을 개인 메일로 보내 놓고 집에서 봐도 돼요?",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.387,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.372,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.357,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
}
],
"top_score": 0.387,
"indexed": true
}
✔ 노트북 놓고 온 것 같아요 택시에 · 0.2s
→ request POST /webhook/my-search
{
"question": "노트북 놓고 온 것 같아요 택시에"
}
← response HTTP 200
{
"question": "노트북 놓고 온 것 같아요 택시에",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.316,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.233,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.225,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
}
],
"top_score": 0.316,
"indexed": true
}
✔ 회의실 오전 내내 잡아도 되나요? · 0.3s
→ request POST /webhook/my-search
{
"question": "회의실 오전 내내 잡아도 되나요?"
}
← response HTTP 200
{
"question": "회의실 오전 내내 잡아도 되나요?",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.522,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다."
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "2. 장비",
"score": 0.463,
"text": "회의실 이용 규정\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다."
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.415,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
}
],
"top_score": 0.522,
"indexed": true
}
✘ 챗GPT에 회의록 붙여 넣어도 돼요? · 0.3s · hits.0.source = meeting-room (expected software-usage)
→ request POST /webhook/my-search
{
"question": "챗GPT에 회의록 붙여 넣어도 돼요?"
}
← response HTTP 200
{
"question": "챗GPT에 회의록 붙여 넣어도 돼요?",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.276,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.259,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.259,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
}
],
"top_score": 0.276,
"indexed": true
}
Passed 6/8
report: runs/71-lab03-challenge-cases-20261022-201118.json
```
- `before`가 섹션으로 다시 색인합니다. 틀린 두 질문: "고객 명단 엑셀을 개인 메일로…" → `security-incident`, "챗GPT에 회의록…" → `meeting-room`.
- 직원 말("개인 메일", "챗GPT")과 규정 낱말("외부로 보내다", "생성형 AI 서비스")이 다릅니다.
- 학생은 이 케이스 파일을 `cases/my-cases.json`에 **직접** 씁니다 (정답표부터, 원문에서 문서를 확인).
### 20 · 과제 · 질문 다시 쓰기 → 어려운 질문 7/8
codex에 입력하는 프롬프트 (터미널 ①, 학생이 만들 파일 `my-work/search.json (고침)` · 이 기록에서 push한 같은 역할의 정답 [`71-lab03-challenge-search.json`](71-lab03-challenge-search.json)):
```text
my-work/search.json 을 고쳐 줘. 검색 전에 AI Agent "Rewrite query"(gpt-4.1-mini, Tool 없음)를 둔다.
지시: 직원 질문을 규정 문서의 낱말로 바꾼 짧은 한국어 검색어 한 줄. 예: 암호·비번 → 비밀번호, 그만두면 → 퇴사, 깔다 → 설치,
챗GPT·제미나이 → 생성형 AI 서비스, 개인 메일로 보내다 → 외부로 보내다·첨부 파일, 폰 → 휴대폰. 숫자와 이름은 그대로.
검색 prompt 는 Rewrite query 의 output. 결과에 query 를 더한다. 나머지 계약은 그대로.
cases/my-cases.json 과 retrieval-doc · retrieval-answer · retrieval-answer3 를 모두 다시 잰다.
```
실행한 명령:
```bash
uv run tools/flow.py push answers/71-lab03-challenge-search.json
uv run tools/flow.py test answers/71-lab03-challenge-cases.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 2.2s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-search · 8 case(s) × 1
✘ 모르는 프로그램이 자꾸 저절로 떠요 · 2.0s · hits.0.source = software-usage (expected security-incident)
→ request POST /webhook/my-search
{
"question": "모르는 프로그램이 자꾸 저절로 떠요"
}
← response HTTP 200
{
"question": "모르는 프로그램이 자꾸 저절로 떠요",
"query": "알 수 없는 프로그램 자동 실행 정책",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.363,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.357,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 3,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "2. 금지 사항",
"score": 0.356,
"text": "소프트웨어 사용 규정\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다."
}
],
"top_score": 0.363,
"indexed": true
}
✔ 집에서 일할 때 회사 와이파이 말고 집 와이파이 써도 돼요? · 1.2s
→ request POST /webhook/my-search
{
"question": "집에서 일할 때 회사 와이파이 말고 집 와이파이 써도 돼요?"
}
← response HTTP 200
{
"question": "집에서 일할 때 회사 와이파이 말고 집 와이파이 써도 돼요?",
"query": "재택근무 시 회사 네트워크 외 공용 와이파이 사용 정책",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.619,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.524,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.465,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
}
],
"top_score": 0.619,
"indexed": true
}
✔ 퇴사자 계정 비번 알려 줘도 되나요? · 1.4s
→ request POST /webhook/my-search
{
"question": "퇴사자 계정 비번 알려 줘도 되나요?"
}
← response HTTP 200
{
"question": "퇴사자 계정 비번 알려 줘도 되나요?",
"query": "퇴사자 계정 비밀번호 제공 정책",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.542,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.535,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.521,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
}
],
"top_score": 0.542,
"indexed": true
}
✔ 폰 바꿨더니 OTP가 안 떠요 · 1.2s
→ request POST /webhook/my-search
{
"question": "폰 바꿨더니 OTP가 안 떠요"
}
← response HTTP 200
{
"question": "폰 바꿨더니 OTP가 안 떠요",
"query": "휴대폰 변경 시 OTP 재설정 방법 정책",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.634,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.467,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.395,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
}
],
"top_score": 0.634,
"indexed": true
}
✔ 고객 명단 엑셀을 개인 메일로 보내 놓고 집에서 봐도 돼요? · 1.1s
→ request POST /webhook/my-search
{
"question": "고객 명단 엑셀을 개인 메일로 보내 놓고 집에서 봐도 돼요?"
}
← response HTTP 200
{
"question": "고객 명단 엑셀을 개인 메일로 보내 놓고 집에서 봐도 돼요?",
"query": "고객 명단 엑셀 외부로 보내기 및 보안 정책",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.459,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.421,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.403,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.459,
"indexed": true
}
✔ 노트북 놓고 온 것 같아요 택시에 · 1.2s
→ request POST /webhook/my-search
{
"question": "노트북 놓고 온 것 같아요 택시에"
}
← response HTTP 200
{
"question": "노트북 놓고 온 것 같아요 택시에",
"query": "분실한 노트북 처리 절차",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.421,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.386,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.367,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
}
],
"top_score": 0.421,
"indexed": true
}
✔ 회의실 오전 내내 잡아도 되나요? · 1.3s
→ request POST /webhook/my-search
{
"question": "회의실 오전 내내 잡아도 되나요?"
}
← response HTTP 200
{
"question": "회의실 오전 내내 잡아도 되나요?",
"query": "회의실 예약 정책 및 이용 시간 제한",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.718,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다."
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "2. 장비",
"score": 0.604,
"text": "회의실 이용 규정\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다."
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.579,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
}
],
"top_score": 0.718,
"indexed": true
}
✔ 챗GPT에 회의록 붙여 넣어도 돼요? · 1.2s
→ request POST /webhook/my-search
{
"question": "챗GPT에 회의록 붙여 넣어도 돼요?"
}
← response HTTP 200
{
"question": "챗GPT에 회의록 붙여 넣어도 돼요?",
"query": "생성형 AI 서비스에 회의록 데이터 입력 정책",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.536,
"text": "소프트웨어 사용 규정\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.386,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.374,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
}
],
"top_score": 0.536,
"indexed": true
}
Passed 7/8
report: runs/71-lab03-challenge-cases-20261022-201146.json
```
- 19에서 틀린 두 질문은 고쳐졌고 **하나가 새로 틀렸습니다**: "모르는 프로그램이 자꾸 저절로 떠요" → 검색어가 프로그램 쪽으로 가서 `software-usage` (수업 준비 때와 같음).
- 검색 시간이 0.2~0.3초 → 1.1~2.0초 (LLM 한 번 더). 응답에 다시 쓴 `query`가 보입니다.
### 21 · 다시 쓰기 뒤 doc@1 → 24/24
실행한 명령:
```bash
uv run tools/flow.py test cases/retrieval-doc.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 1.5s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-search · 24 case(s) × 1
✔ 비밀번호는 몇 자 이상이어야 하나요? · 1.0s
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"query": "비밀번호 최소 길이 정책",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.711,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.598,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.533,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.711,
"indexed": true
}
✔ 암호를 얼마나 자주 바꿔야 해? · 1.1s
→ request POST /webhook/my-search
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"question": "암호를 얼마나 자주 바꿔야 해?",
"query": "비밀번호 변경 주기 정책",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.715,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.628,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.558,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.715,
"indexed": true
}
✔ 로그인을 여러 번 틀리면 어떻게 돼요? · 1.1s
→ request POST /webhook/my-search
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?"
}
← response HTTP 200
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?",
"query": "로그인 실패 횟수 제한 및 계정 잠금 정책",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.691,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.485,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.449,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.691,
"indexed": true
}
✔ 카페 와이파이로 회사 시스템에 접속해도 되나요? · 1.1s
→ request POST /webhook/my-search
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?"
}
← response HTTP 200
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?",
"query": "공용 와이파이 사용 시 회사 시스템 접속 정책",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.648,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.5,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.477,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.648,
"indexed": true
}
✔ VPN 인증서는 언제 다시 받아야 해요? · 1.0s
→ request POST /webhook/my-search
{
"question": "VPN 인증서는 언제 다시 받아야 해요?"
}
← response HTTP 200
{
"question": "VPN 인증서는 언제 다시 받아야 해요?",
"query": "VPN 인증서 갱신 정책",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "2. VPN 인증서",
"score": 0.65,
"text": "원격근무·VPN 이용 규정\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.467,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.449,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
}
],
"top_score": 0.65,
"indexed": true
}
✔ 회사를 그만두면 노트북은 언제까지 돌려줘야 하나요? · 1.2s
→ request POST /webhook/my-search
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"
}
← response HTTP 200
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?",
"query": "퇴사 시 노트북 반납 기한 정책",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.565,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.552,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.451,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
}
],
"top_score": 0.565,
"indexed": true
}
✔ 노트북을 잃어버렸어요. 어떻게 해야 하나요? · 1.2s
→ request POST /webhook/my-search
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?"
}
← response HTTP 200
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?",
"query": "노트북 분실 시 보안 조치 및 신고 절차",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.609,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.473,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.468,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.609,
"indexed": true
}
✔ 개인 휴대폰으로 업무 메일 봐도 되나요? · 1.2s
→ request POST /webhook/my-search
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?"
}
← response HTTP 200
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?",
"query": "개인 휴대폰 업무용 이메일 접근 정책",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.625,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.493,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 3,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.464,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
}
],
"top_score": 0.625,
"indexed": true
}
✔ 새 프로그램 설치 승인은 며칠 걸려요? · 1.1s
→ request POST /webhook/my-search
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?"
}
← response HTTP 200
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?",
"query": "신규 프로그램 설치 승인 절차 기간",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.484,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "2. 금지 사항",
"score": 0.332,
"text": "소프트웨어 사용 규정\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "2. VPN 인증서",
"score": 0.331,
"text": "원격근무·VPN 이용 규정\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다."
}
],
"top_score": 0.484,
"indexed": true
}
✔ 생성형 AI에 고객 자료를 넣어도 되나요? · 1.3s
→ request POST /webhook/my-search
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?"
}
← response HTTP 200
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?",
"query": "생성형 AI 서비스에 고객 자료 입력 관련 보안 정책",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.561,
"text": "소프트웨어 사용 규정\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.462,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.419,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.561,
"indexed": true
}
✔ 첨부 파일이 너무 커서 메일이 안 보내져요 · 1.3s
→ request POST /webhook/my-search
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요"
}
← response HTTP 200
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요",
"query": "첨부 파일 용량 제한 및 외부 전송 정책",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.691,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.529,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
},
{
"rank": 3,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "3. 문서 등급과 보관",
"score": 0.417,
"text": "메일·문서 보안 규정\n## 3. 문서 등급과 보관\n- 대외비 문서에는 문서 첫 장에 '대외비'라고 표시한다.\n- 업무 문서는 3년 동안 보관한 뒤 정리한다."
}
],
"top_score": 0.691,
"indexed": true
}
✔ 고객 주민등록번호를 받아도 되나요? · 1.2s
→ request POST /webhook/my-search
{
"question": "고객 주민등록번호를 받아도 되나요?"
}
← response HTTP 200
{
"question": "고객 주민등록번호를 받아도 되나요?",
"query": "고객 주민등록번호 수집 및 관리 정책",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.59,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.478,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.387,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
}
],
"top_score": 0.59,
"indexed": true
}
✔ 고객 정보가 밖으로 샌 것 같아요 · 1.2s
→ request POST /webhook/my-search
{
"question": "고객 정보가 밖으로 샌 것 같아요"
}
← response HTTP 200
{
"question": "고객 정보가 밖으로 샌 것 같아요",
"query": "고객 정보 외부 유출 대응 방침",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.584,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.515,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.457,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.584,
"indexed": true
}
✔ 회의실을 하루 종일 잡아도 되나요? · 1.1s
→ request POST /webhook/my-search
{
"question": "회의실을 하루 종일 잡아도 되나요?"
}
← response HTTP 200
{
"question": "회의실을 하루 종일 잡아도 되나요?",
"query": "회의실 예약 정책",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.661,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다."
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "2. 장비",
"score": 0.593,
"text": "회의실 이용 규정\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다."
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.557,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
}
],
"top_score": 0.661,
"indexed": true
}
✔ 수상한 메일의 링크를 눌렀어요 · 1.3s
→ request POST /webhook/my-search
{
"question": "수상한 메일의 링크를 눌렀어요"
}
← response HTTP 200
{
"question": "수상한 메일의 링크를 눌렀어요",
"query": "수상한 메일 링크 클릭 시 보안 대응 절차",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.678,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.455,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.427,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.678,
"indexed": true
}
✔ 컴퓨터가 바이러스에 걸린 것 같아요 · 1.2s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"query": "컴퓨터 바이러스 감염 대응 정책",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.532,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.456,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.412,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
}
],
"top_score": 0.532,
"indexed": true
}
✔ OTP 앱 깔린 휴대폰을 새로 바꿨어요 · 1.1s
→ request POST /webhook/my-search
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요"
}
← response HTTP 200
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요",
"query": "OTP 앱 설치된 휴대폰 교체 시 보안 정책",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.603,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.406,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.386,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
}
],
"top_score": 0.603,
"indexed": true
}
✔ 출력한 고객 명단은 어떻게 버려요? · 1.2s
→ request POST /webhook/my-search
{
"question": "출력한 고객 명단은 어떻게 버려요?"
}
← response HTTP 200
{
"question": "출력한 고객 명단은 어떻게 버려요?",
"query": "고객 명단 출력물 폐기 절차",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.445,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.312,
"text": "소프트웨어 사용 규정\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.303,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
}
],
"top_score": 0.445,
"indexed": true
}
✔ 개인정보 파일을 거래처에 메일로 보내도 되나요? · 1.6s
→ request POST /webhook/my-search
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?"
}
← response HTTP 200
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?",
"query": "개인정보 파일 외부로 이메일 첨부 파일 전송 정책",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.635,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.481,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.438,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
}
],
"top_score": 0.635,
"indexed": true
}
✔ 자리 비울 때 화면은 몇 분 뒤 잠기게 해요? · 1.4s
→ request POST /webhook/my-search
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?"
}
← response HTTP 200
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?",
"query": "자리 비움 화면 잠금 시간 정책",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.467,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.447,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.378,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
}
],
"top_score": 0.467,
"indexed": true
}
✔ 화상회의 장비는 언제까지 요청해야 하나요? · 1.2s
→ request POST /webhook/my-search
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?"
}
← response HTTP 200
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?",
"query": "화상회의 장비 요청 기한 정책",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "2. 장비",
"score": 0.456,
"text": "회의실 이용 규정\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다."
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.392,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.387,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
}
],
"top_score": 0.456,
"indexed": true
}
✔ 노트북 배터리가 금방 닳아요 · 1.0s
→ request POST /webhook/my-search
{
"question": "노트북 배터리가 금방 닳아요"
}
← response HTTP 200
{
"question": "노트북 배터리가 금방 닳아요",
"query": "노트북 배터리 관리 정책",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.416,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.364,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.328,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
}
],
"top_score": 0.416,
"indexed": true
}
✔ 공짜 프로그램은 그냥 써도 되죠? · 1.0s
→ request POST /webhook/my-search
{
"question": "공짜 프로그램은 그냥 써도 되죠?"
}
← response HTTP 200
{
"question": "공짜 프로그램은 그냥 써도 되죠?",
"query": "무료 소프트웨어 사용 정책",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.571,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "2. 금지 사항",
"score": 0.471,
"text": "소프트웨어 사용 규정\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다."
},
{
"rank": 3,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.443,
"text": "소프트웨어 사용 규정\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
}
],
"top_score": 0.571,
"indexed": true
}
✔ 감염된 것 같은데 컴퓨터를 꺼도 되나요? · 1.1s
→ request POST /webhook/my-search
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?"
}
← response HTTP 200
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?",
"query": "감염 컴퓨터 전원 차단 정책",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.502,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.407,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.389,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.502,
"indexed": true
}
Passed 24/24
report: runs/retrieval-doc-20261022-201216.json
```
- 실패에서 찾은 낱말을 지시문에 넣었으므로 **원래 24문항으로 함께 재어** 과하게 맞추지 않았는지 확인합니다.
### 22 · 다시 쓰기 뒤 answer@1 → 23/24 (수업 준비 때 24/24)
실행한 명령:
```bash
uv run tools/flow.py test cases/retrieval-answer.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 0.5s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-search · 24 case(s) × 1
✔ 비밀번호는 몇 자 이상이어야 하나요? · 1.5s
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"query": "비밀번호 최소 길이 기준",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.675,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.55,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.499,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.675,
"indexed": true
}
✔ 암호를 얼마나 자주 바꿔야 해? · 1.1s
→ request POST /webhook/my-search
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"question": "암호를 얼마나 자주 바꿔야 해?",
"query": "비밀번호 변경 주기 정책",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.715,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.628,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.558,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.715,
"indexed": true
}
✔ 로그인을 여러 번 틀리면 어떻게 돼요? · 1.3s
→ request POST /webhook/my-search
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?"
}
← response HTTP 200
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?",
"query": "로그인 실패 횟수 제한 및 계정 잠금 정책",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.691,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.485,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.449,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.691,
"indexed": true
}
✔ 카페 와이파이로 회사 시스템에 접속해도 되나요? · 1.1s
→ request POST /webhook/my-search
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?"
}
← response HTTP 200
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?",
"query": "공용 와이파이 회사 시스템 접속 정책",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.571,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.44,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.428,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.571,
"indexed": true
}
✔ VPN 인증서는 언제 다시 받아야 해요? · 1.1s
→ request POST /webhook/my-search
{
"question": "VPN 인증서는 언제 다시 받아야 해요?"
}
← response HTTP 200
{
"question": "VPN 인증서는 언제 다시 받아야 해요?",
"query": "VPN 인증서 갱신 정책",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "2. VPN 인증서",
"score": 0.65,
"text": "원격근무·VPN 이용 규정\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.467,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.449,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
}
],
"top_score": 0.65,
"indexed": true
}
✔ 회사를 그만두면 노트북은 언제까지 돌려줘야 하나요? · 1.2s
→ request POST /webhook/my-search
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"
}
← response HTTP 200
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?",
"query": "퇴사 시 노트북 반납 기한 정책",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.565,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.552,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.451,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
}
],
"top_score": 0.565,
"indexed": true
}
✔ 노트북을 잃어버렸어요. 어떻게 해야 하나요? · 1.1s
→ request POST /webhook/my-search
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?"
}
← response HTTP 200
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?",
"query": "노트북 분실 시 보안 조치 및 신고 절차",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.609,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.473,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.468,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.609,
"indexed": true
}
✔ 개인 휴대폰으로 업무 메일 봐도 되나요? · 1.1s
→ request POST /webhook/my-search
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?"
}
← response HTTP 200
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?",
"query": "개인 휴대폰 업무용 이메일 접속 정책",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.631,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.509,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.484,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.631,
"indexed": true
}
✔ 새 프로그램 설치 승인은 며칠 걸려요? · 1.5s
→ request POST /webhook/my-search
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?"
}
← response HTTP 200
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?",
"query": "프로그램 설치 승인 절차 기간",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.517,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "2. 금지 사항",
"score": 0.359,
"text": "소프트웨어 사용 규정\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "2. VPN 인증서",
"score": 0.353,
"text": "원격근무·VPN 이용 규정\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다."
}
],
"top_score": 0.517,
"indexed": true
}
✔ 생성형 AI에 고객 자료를 넣어도 되나요? · 1.2s
→ request POST /webhook/my-search
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?"
}
← response HTTP 200
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?",
"query": "생성형 AI 서비스에 고객 자료 외부로 전송 정책",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.564,
"text": "소프트웨어 사용 규정\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.437,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.412,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
}
],
"top_score": 0.564,
"indexed": true
}
✔ 첨부 파일이 너무 커서 메일이 안 보내져요 · 1.1s
→ request POST /webhook/my-search
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요"
}
← response HTTP 200
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요",
"query": "첨부 파일 용량 제한 및 외부 전송 정책",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.691,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.529,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
},
{
"rank": 3,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "3. 문서 등급과 보관",
"score": 0.417,
"text": "메일·문서 보안 규정\n## 3. 문서 등급과 보관\n- 대외비 문서에는 문서 첫 장에 '대외비'라고 표시한다.\n- 업무 문서는 3년 동안 보관한 뒤 정리한다."
}
],
"top_score": 0.691,
"indexed": true
}
✔ 고객 주민등록번호를 받아도 되나요? · 1.0s
→ request POST /webhook/my-search
{
"question": "고객 주민등록번호를 받아도 되나요?"
}
← response HTTP 200
{
"question": "고객 주민등록번호를 받아도 되나요?",
"query": "고객 주민등록번호 수집 및 관리 정책",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.59,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.478,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.387,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
}
],
"top_score": 0.59,
"indexed": true
}
✘ 고객 정보가 밖으로 샌 것 같아요 · 1.3s · hits.0.text has none of ['1시간']
→ request POST /webhook/my-search
{
"question": "고객 정보가 밖으로 샌 것 같아요"
}
← response HTTP 200
{
"question": "고객 정보가 밖으로 샌 것 같아요",
"query": "고객 정보 외부 유출 방지 정책",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.547,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.51,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.466,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
}
],
"top_score": 0.547,
"indexed": true
}
✔ 회의실을 하루 종일 잡아도 되나요? · 1.0s
→ request POST /webhook/my-search
{
"question": "회의실을 하루 종일 잡아도 되나요?"
}
← response HTTP 200
{
"question": "회의실을 하루 종일 잡아도 되나요?",
"query": "회의실 예약 정책",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.661,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다."
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "2. 장비",
"score": 0.593,
"text": "회의실 이용 규정\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다."
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.557,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
}
],
"top_score": 0.661,
"indexed": true
}
✔ 수상한 메일의 링크를 눌렀어요 · 1.1s
→ request POST /webhook/my-search
{
"question": "수상한 메일의 링크를 눌렀어요"
}
← response HTTP 200
{
"question": "수상한 메일의 링크를 눌렀어요",
"query": "수상한 메일 링크 클릭 보안 대응 절차",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.664,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.457,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.435,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.664,
"indexed": true
}
✔ 컴퓨터가 바이러스에 걸린 것 같아요 · 1.0s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"query": "컴퓨터 바이러스 감염 대응 정책",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.532,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.456,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.412,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
}
],
"top_score": 0.532,
"indexed": true
}
✔ OTP 앱 깔린 휴대폰을 새로 바꿨어요 · 1.0s
→ request POST /webhook/my-search
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요"
}
← response HTTP 200
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요",
"query": "OTP 앱 설치된 휴대폰 교체 시 데이터 이전 정책",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.513,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.376,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.334,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
}
],
"top_score": 0.513,
"indexed": true
}
✔ 출력한 고객 명단은 어떻게 버려요? · 1.2s
→ request POST /webhook/my-search
{
"question": "출력한 고객 명단은 어떻게 버려요?"
}
← response HTTP 200
{
"question": "출력한 고객 명단은 어떻게 버려요?",
"query": "고객 명단 출력물 폐기 절차",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.445,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.312,
"text": "소프트웨어 사용 규정\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.303,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
}
],
"top_score": 0.445,
"indexed": true
}
✔ 개인정보 파일을 거래처에 메일로 보내도 되나요? · 1.2s
→ request POST /webhook/my-search
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?"
}
← response HTTP 200
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?",
"query": "개인정보 파일 외부로 보내기 정책",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.522,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.49,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.448,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
}
],
"top_score": 0.522,
"indexed": true
}
✔ 자리 비울 때 화면은 몇 분 뒤 잠기게 해요? · 1.2s
→ request POST /webhook/my-search
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?"
}
← response HTTP 200
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?",
"query": "자리 비움 화면 자동 잠금 시간 정책",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.463,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.405,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.357,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
}
],
"top_score": 0.463,
"indexed": true
}
✔ 화상회의 장비는 언제까지 요청해야 하나요? · 1.1s
→ request POST /webhook/my-search
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?"
}
← response HTTP 200
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?",
"query": "화상회의 장비 요청 기한 정책",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "2. 장비",
"score": 0.456,
"text": "회의실 이용 규정\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다."
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.392,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.387,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
}
],
"top_score": 0.456,
"indexed": true
}
✔ 노트북 배터리가 금방 닳아요 · 1.2s
→ request POST /webhook/my-search
{
"question": "노트북 배터리가 금방 닳아요"
}
← response HTTP 200
{
"question": "노트북 배터리가 금방 닳아요",
"query": "노트북 배터리 관리 정책",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.416,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.364,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.328,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
}
],
"top_score": 0.416,
"indexed": true
}
✔ 공짜 프로그램은 그냥 써도 되죠? · 1.0s
→ request POST /webhook/my-search
{
"question": "공짜 프로그램은 그냥 써도 되죠?"
}
← response HTTP 200
{
"question": "공짜 프로그램은 그냥 써도 되죠?",
"query": "무료 소프트웨어 사용 정책",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.571,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "2. 금지 사항",
"score": 0.471,
"text": "소프트웨어 사용 규정\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다."
},
{
"rank": 3,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.443,
"text": "소프트웨어 사용 규정\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
}
],
"top_score": 0.571,
"indexed": true
}
✔ 감염된 것 같은데 컴퓨터를 꺼도 되나요? · 1.1s
→ request POST /webhook/my-search
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?"
}
← response HTTP 200
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?",
"query": "감염 컴퓨터 전원 차단 정책",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.502,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.407,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.389,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.502,
"indexed": true
}
Passed 23/24
report: runs/retrieval-answer-20261022-201244.json
```
- "회사를 그만두면 노트북은…"은 다시 쓰기로 고쳐졌습니다. "고객 정보가 밖으로 샌 것 같아요"는 이번에 틀렸습니다.
- 까닭: 다시 쓴 검색어가 **실행마다 다릅니다**. 이번은 "고객 정보 외부 유출 **방지 정책**" → 1등 "2. 이용과 보관"(0.547), 2등 "3. 유출 대응"(0.51). 수업 준비 때는 "고객 정보 외부 유출 **대응 방안**" → 1등 "3. 유출 대응"(0.559).
- 문서(`privacy`)는 맞고 답 섹션은 2등이라 answer@3은 그대로 24/24 (23). **LLM을 검색 앞에 두면 검색도 매번 조금씩 달라진다** → 다시 쓰기를 넣었다면 `--repeat 3`으로 재는 것이 좋습니다.
### 23 · 다시 쓰기 뒤 answer@3 → 24/24
실행한 명령:
```bash
uv run tools/flow.py test cases/retrieval-answer3.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 0.5s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-search · 24 case(s) × 1
✔ 비밀번호는 몇 자 이상이어야 하나요? · 1.1s
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"query": "비밀번호 최소 길이 정책",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.711,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.598,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.533,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.711,
"indexed": true
}
✔ 암호를 얼마나 자주 바꿔야 해? · 1.1s
→ request POST /webhook/my-search
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"question": "암호를 얼마나 자주 바꿔야 해?",
"query": "비밀번호 변경 주기 정책",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.715,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.628,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.558,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.715,
"indexed": true
}
✔ 로그인을 여러 번 틀리면 어떻게 돼요? · 1.1s
→ request POST /webhook/my-search
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?"
}
← response HTTP 200
{
"question": "로그인을 여러 번 틀리면 어떻게 돼요?",
"query": "로그인 실패 횟수 제한 및 계정 잠금 정책",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.691,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.485,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.449,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.691,
"indexed": true
}
✔ 카페 와이파이로 회사 시스템에 접속해도 되나요? · 1.0s
→ request POST /webhook/my-search
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?"
}
← response HTTP 200
{
"question": "카페 와이파이로 회사 시스템에 접속해도 되나요?",
"query": "공용 와이파이 회사 시스템 접속 정책",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.571,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.44,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.428,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.571,
"indexed": true
}
✔ VPN 인증서는 언제 다시 받아야 해요? · 1.0s
→ request POST /webhook/my-search
{
"question": "VPN 인증서는 언제 다시 받아야 해요?"
}
← response HTTP 200
{
"question": "VPN 인증서는 언제 다시 받아야 해요?",
"query": "VPN 인증서 갱신 정책",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "2. VPN 인증서",
"score": 0.65,
"text": "원격근무·VPN 이용 규정\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.467,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.449,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
}
],
"top_score": 0.65,
"indexed": true
}
✔ 회사를 그만두면 노트북은 언제까지 돌려줘야 하나요? · 1.1s
→ request POST /webhook/my-search
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"
}
← response HTTP 200
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?",
"query": "퇴사 시 노트북 반납 기한 정책",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.567,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.553,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.45,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
}
],
"top_score": 0.567,
"indexed": true
}
✔ 노트북을 잃어버렸어요. 어떻게 해야 하나요? · 1.1s
→ request POST /webhook/my-search
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?"
}
← response HTTP 200
{
"question": "노트북을 잃어버렸어요. 어떻게 해야 하나요?",
"query": "노트북 분실 시 보안 조치 및 신고 절차",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.609,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.473,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 3,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.468,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
}
],
"top_score": 0.609,
"indexed": true
}
✔ 개인 휴대폰으로 업무 메일 봐도 되나요? · 1.3s
→ request POST /webhook/my-search
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?"
}
← response HTTP 200
{
"question": "개인 휴대폰으로 업무 메일 봐도 되나요?",
"query": "개인 휴대폰 업무용 이메일 접속 보안 정책",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.603,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.552,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.497,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.603,
"indexed": true
}
✔ 새 프로그램 설치 승인은 며칠 걸려요? · 1.1s
→ request POST /webhook/my-search
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?"
}
← response HTTP 200
{
"question": "새 프로그램 설치 승인은 며칠 걸려요?",
"query": "신규 프로그램 설치 승인 절차 기간",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.484,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "2. 금지 사항",
"score": 0.332,
"text": "소프트웨어 사용 규정\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "2. VPN 인증서",
"score": 0.331,
"text": "원격근무·VPN 이용 규정\n## 2. VPN 인증서\n- VPN 인증서의 유효 기간은 1년이다.\n- 만료 30일 전부터 IT 포털의 '인증서 재발급' 메뉴에서 새 인증서를 신청한다.\n- 인증서가 만료되면 VPN에 접속할 수 없으므로, 만료 전에 재발급한다."
}
],
"top_score": 0.484,
"indexed": true
}
✔ 생성형 AI에 고객 자료를 넣어도 되나요? · 1.2s
→ request POST /webhook/my-search
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?"
}
← response HTTP 200
{
"question": "생성형 AI에 고객 자료를 넣어도 되나요?",
"query": "생성형 AI 서비스에 고객 자료 입력 관련 보안 정책",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.561,
"text": "소프트웨어 사용 규정\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.462,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.419,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.561,
"indexed": true
}
✔ 첨부 파일이 너무 커서 메일이 안 보내져요 · 1.3s
→ request POST /webhook/my-search
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요"
}
← response HTTP 200
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요",
"query": "첨부 파일 용량 제한 및 외부 전송 정책",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.691,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.53,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
},
{
"rank": 3,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "3. 문서 등급과 보관",
"score": 0.417,
"text": "메일·문서 보안 규정\n## 3. 문서 등급과 보관\n- 대외비 문서에는 문서 첫 장에 '대외비'라고 표시한다.\n- 업무 문서는 3년 동안 보관한 뒤 정리한다."
}
],
"top_score": 0.691,
"indexed": true
}
✔ 고객 주민등록번호를 받아도 되나요? · 1.2s
→ request POST /webhook/my-search
{
"question": "고객 주민등록번호를 받아도 되나요?"
}
← response HTTP 200
{
"question": "고객 주민등록번호를 받아도 되나요?",
"query": "고객 주민등록번호 수집 및 관리 정책",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.59,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.478,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.387,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
}
],
"top_score": 0.59,
"indexed": true
}
✔ 고객 정보가 밖으로 샌 것 같아요 · 1.1s
→ request POST /webhook/my-search
{
"question": "고객 정보가 밖으로 샌 것 같아요"
}
← response HTTP 200
{
"question": "고객 정보가 밖으로 샌 것 같아요",
"query": "고객 정보 외부 유출 방지 정책",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.547,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 2,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.51,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.466,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
}
],
"top_score": 0.547,
"indexed": true
}
✔ 회의실을 하루 종일 잡아도 되나요? · 1.0s
→ request POST /webhook/my-search
{
"question": "회의실을 하루 종일 잡아도 되나요?"
}
← response HTTP 200
{
"question": "회의실을 하루 종일 잡아도 되나요?",
"query": "회의실 예약 정책",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.661,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다."
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "2. 장비",
"score": 0.593,
"text": "회의실 이용 규정\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다."
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.557,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
}
],
"top_score": 0.661,
"indexed": true
}
✔ 수상한 메일의 링크를 눌렀어요 · 1.3s
→ request POST /webhook/my-search
{
"question": "수상한 메일의 링크를 눌렀어요"
}
← response HTTP 200
{
"question": "수상한 메일의 링크를 눌렀어요",
"query": "수상한 메일 링크 클릭 시 보안 대응 절차",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.678,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.455,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.427,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
}
],
"top_score": 0.678,
"indexed": true
}
✔ 컴퓨터가 바이러스에 걸린 것 같아요 · 1.1s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"query": "컴퓨터 바이러스 감염 대응 정책",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.532,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.456,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.412,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
}
],
"top_score": 0.532,
"indexed": true
}
✔ OTP 앱 깔린 휴대폰을 새로 바꿨어요 · 1.2s
→ request POST /webhook/my-search
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요"
}
← response HTTP 200
{
"question": "OTP 앱 깔린 휴대폰을 새로 바꿨어요",
"query": "OTP 앱 설치된 휴대폰 교체 시 보안 정책",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "4. 다단계 인증",
"score": 0.603,
"text": "비밀번호·계정 보안 규정\n## 4. 다단계 인증\n- 회사 밖에서 사내 시스템에 접속할 때는 OTP 다단계 인증을 반드시 사용한다.\n- OTP 앱이 설치된 휴대폰을 바꾸면 IT 포털에서 OTP를 다시 등록한다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "4. 개인 장비 사용",
"score": 0.408,
"text": "업무용 장비 지급·반납 규정\n## 4. 개인 장비 사용\n- 개인 휴대폰이나 태블릿으로는 업무 메일과 메신저만 쓸 수 있다.\n- 개인 장비로 업무 메일을 보려면 회사의 모바일 관리 앱(MDM)을 먼저 설치한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.386,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
}
],
"top_score": 0.603,
"indexed": true
}
✔ 출력한 고객 명단은 어떻게 버려요? · 1.2s
→ request POST /webhook/my-search
{
"question": "출력한 고객 명단은 어떻게 버려요?"
}
← response HTTP 200
{
"question": "출력한 고객 명단은 어떻게 버려요?",
"query": "고객 명단 출력물 폐기 절차",
"hits": [
{
"rank": 1,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.445,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.312,
"text": "소프트웨어 사용 규정\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
},
{
"rank": 3,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "3. 사용 후",
"score": 0.303,
"text": "회의실 이용 규정\n## 3. 사용 후\n- 회의가 끝나면 화이트보드를 지우고 의자를 정리한다."
}
],
"top_score": 0.445,
"indexed": true
}
✔ 개인정보 파일을 거래처에 메일로 보내도 되나요? · 1.4s
→ request POST /webhook/my-search
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?"
}
← response HTTP 200
{
"question": "개인정보 파일을 거래처에 메일로 보내도 되나요?",
"query": "개인정보 파일 외부로 이메일 첨부 파일 전송 정책",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.635,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.483,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "1. 수집",
"score": 0.438,
"text": "개인정보 처리 지침\n## 1. 수집\n- 업무에 꼭 필요한 개인정보만 수집한다.\n- 주민등록번호는 법에서 정한 경우가 아니면 수집하지 않는다."
}
],
"top_score": 0.635,
"indexed": true
}
✔ 자리 비울 때 화면은 몇 분 뒤 잠기게 해요? · 1.2s
→ request POST /webhook/my-search
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?"
}
← response HTTP 200
{
"question": "자리 비울 때 화면은 몇 분 뒤 잠기게 해요?",
"query": "자리 비움 화면 자동 잠금 시간 정책",
"hits": [
{
"rank": 1,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.463,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.405,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.357,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
}
],
"top_score": 0.463,
"indexed": true
}
✔ 화상회의 장비는 언제까지 요청해야 하나요? · 1.3s
→ request POST /webhook/my-search
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?"
}
← response HTTP 200
{
"question": "화상회의 장비는 언제까지 요청해야 하나요?",
"query": "화상회의 장비 요청 기한 정책",
"hits": [
{
"rank": 1,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "2. 장비",
"score": 0.456,
"text": "회의실 이용 규정\n## 2. 장비\n- 대회의실의 화상회의 장비를 쓰려면 회의 시작 30분 전까지 IT 문의로 요청한다.\n- 프로젝터는 B회의실과 대회의실에 있다."
},
{
"rank": 2,
"source": "meeting-room",
"title": "회의실 이용 규정",
"section": "1. 예약",
"score": 0.392,
"text": "회의실 이용 규정\n## 1. 예약\n- 회의실은 사내 포털에서 예약한다. 한 번에 최대 3시간까지 예약할 수 있다.\n- 예약 시작 후 10분이 지나도록 아무도 사용하지 않으면 예약이 자동으로 취소된다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.389,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
}
],
"top_score": 0.456,
"indexed": true
}
✔ 노트북 배터리가 금방 닳아요 · 1.2s
→ request POST /webhook/my-search
{
"question": "노트북 배터리가 금방 닳아요"
}
← response HTTP 200
{
"question": "노트북 배터리가 금방 닳아요",
"query": "노트북 배터리 관리 정책",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.42,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 2,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.364,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "2. 이용과 보관",
"score": 0.328,
"text": "개인정보 처리 지침\n## 2. 이용과 보관\n- 고객 개인정보가 보이는 화면은 캡처하거나 촬영하지 않는다.\n- 개인정보가 들어 있는 출력물은 다 쓴 뒤 바로 파쇄한다."
}
],
"top_score": 0.42,
"indexed": true
}
✔ 공짜 프로그램은 그냥 써도 되죠? · 1.2s
→ request POST /webhook/my-search
{
"question": "공짜 프로그램은 그냥 써도 되죠?"
}
← response HTTP 200
{
"question": "공짜 프로그램은 그냥 써도 되죠?",
"query": "무료 소프트웨어 사용 정책",
"hits": [
{
"rank": 1,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "1. 설치와 승인",
"score": 0.571,
"text": "소프트웨어 사용 규정\n## 1. 설치와 승인\n- 업무용 컴퓨터에는 승인된 소프트웨어만 설치한다.\n- 새 소프트웨어가 필요하면 IT 포털의 '소프트웨어 신청'에서 요청한다. 승인까지 보통 2영업일이 걸린다.\n- 무료 소프트웨어라도 회사 업무에 쓰려면 상업적 이용이 허용되는지 라이선스를 확인한다."
},
{
"rank": 2,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "2. 금지 사항",
"score": 0.471,
"text": "소프트웨어 사용 규정\n## 2. 금지 사항\n- 불법으로 복제한 소프트웨어는 설치하지 않는다. 적발되면 징계 대상이 된다."
},
{
"rank": 3,
"source": "software-usage",
"title": "소프트웨어 사용 규정",
"section": "3. 생성형 AI 서비스",
"score": 0.443,
"text": "소프트웨어 사용 규정\n## 3. 생성형 AI 서비스\n- 회사가 승인한 생성형 AI 서비스만 업무에 사용한다.\n- 고객 정보, 개인정보, 대외비 문서는 생성형 AI 서비스에 입력하지 않는다.\n- 생성형 AI가 만든 결과는 사람이 확인한 뒤에 사용한다."
}
],
"top_score": 0.571,
"indexed": true
}
✔ 감염된 것 같은데 컴퓨터를 꺼도 되나요? · 1.3s
→ request POST /webhook/my-search
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?"
}
← response HTTP 200
{
"question": "감염된 것 같은데 컴퓨터를 꺼도 되나요?",
"query": "감염 컴퓨터 전원 차단 정책",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.502,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.407,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.389,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.502,
"indexed": true
}
Passed 24/24
report: runs/retrieval-answer3-20261022-201314.json
```
- 3등 안에는 모든 질문의 답 문구가 있습니다.
### 24 · 회귀 → `lab01` 6/6
실행한 명령:
```bash
uv run tools/flow.py test cases/lab01.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 0.6s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-search · 6 case(s) × 1
✔ 색인 · 청크 수 · 0.7s
→ request POST /webhook/my-index
{
"chunking": "section"
}
← response HTTP 200
{
"indexed_chunks": 25,
"chunking": "section"
}
✔ 비밀번호 길이 → 비밀번호 규정 · 1.1s
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"query": "비밀번호 최소 길이 기준",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.675,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.55,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.499,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.675,
"indexed": true
}
✔ 퇴사 노트북 → 장비 규정 · 1.2s
→ request POST /webhook/my-search
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"
}
← response HTTP 200
{
"question": "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?",
"query": "퇴사 시 노트북 반납 기한",
"hits": [
{
"rank": 1,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "3. 반납",
"score": 0.536,
"text": "업무용 장비 지급·반납 규정\n## 3. 반납\n- 퇴사하거나 장비를 교체할 때는 5영업일 이내에 장비를 IT 담당자에게 반납한다.\n- 반납 전에 개인 파일을 지우지 말고, 업무 파일은 사내 드라이브로 옮긴다."
},
{
"rank": 2,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "1. 지급과 교체",
"score": 0.508,
"text": "업무용 장비 지급·반납 규정\n## 1. 지급과 교체\n- 업무용 노트북은 입사일에 지급한다.\n- 노트북 교체 주기는 4년이다. 고장이나 배터리 교체는 IT 문의로 접수한다."
},
{
"rank": 3,
"source": "device-issue-return",
"title": "업무용 장비 지급·반납 규정",
"section": "2. 분실과 도난",
"score": 0.41,
"text": "업무용 장비 지급·반납 규정\n## 2. 분실과 도난\n- 업무용 장비를 잃어버리거나 도난당하면 24시간 이내에 IT 문의와 보안팀에 신고한다.\n- 신고가 접수되면 IT 담당자가 원격으로 장비의 데이터를 잠근다."
}
],
"top_score": 0.536,
"indexed": true
}
✔ 첨부 파일 → 메일 규정 · 1.3s
→ request POST /webhook/my-search
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요"
}
← response HTTP 200
{
"question": "첨부 파일이 너무 커서 메일이 안 보내져요",
"query": "첨부 파일 용량 제한 및 외부 전송 정책",
"hits": [
{
"rank": 1,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "2. 첨부 파일",
"score": 0.691,
"text": "메일·문서 보안 규정\n## 2. 첨부 파일\n- 메일 첨부 파일은 25MB까지 보낼 수 있다.\n- 25MB를 넘는 파일은 사내 드라이브에 올리고 공유 링크를 보낸다.\n- 개인정보가 들어 있는 파일을 외부로 보낼 때는 반드시 암호를 걸고, 암호는 메신저 등 다른 경로로 알려 준다."
},
{
"rank": 2,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "1. 메일함",
"score": 0.529,
"text": "메일·문서 보안 규정\n## 1. 메일함\n- 개인 메일함 용량은 10GB이다. 용량이 90%를 넘으면 안내 메일이 발송된다.\n- 오래된 메일은 보관함으로 옮겨 용량을 확보한다."
},
{
"rank": 3,
"source": "email-and-documents",
"title": "메일·문서 보안 규정",
"section": "3. 문서 등급과 보관",
"score": 0.417,
"text": "메일·문서 보안 규정\n## 3. 문서 등급과 보관\n- 대외비 문서에는 문서 첫 장에 '대외비'라고 표시한다.\n- 업무 문서는 3년 동안 보관한 뒤 정리한다."
}
],
"top_score": 0.691,
"indexed": true
}
✔ 결과 3개 · 1.1s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"query": "컴퓨터 바이러스 감염 대응 정책",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.532,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.456,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.412,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
}
],
"top_score": 0.532,
"indexed": true
}
✔ 질문 없음 · 0.0s
→ request POST /webhook/my-search
{
"question": ""
}
← response HTTP 400
{
"error": "question is required"
}
Passed 6/6
report: runs/lab01-20261022-201320.json
```
- 검색 계약(`hits` · `top_score`)은 그대로이고 `query`만 더해졌습니다.
### 25 · 회귀 → `lab01-challenge` 4/4
실행한 명령:
```bash
uv run tools/flow.py test cases/lab01-challenge.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 0.4s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-search · 4 case(s) × 1
✔ 섹션 · 비밀번호 길이 · 1.0s
→ request POST /webhook/my-search
{
"question": "비밀번호는 몇 자 이상이어야 하나요?"
}
← response HTTP 200
{
"question": "비밀번호는 몇 자 이상이어야 하나요?",
"query": "비밀번호 최소 길이 기준",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.675,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.55,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.499,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.675,
"indexed": true
}
✔ 섹션 · 변경 주기 · 1.2s
→ request POST /webhook/my-search
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"question": "암호를 얼마나 자주 바꿔야 해?",
"query": "비밀번호 변경 주기 정책",
"hits": [
{
"rank": 1,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "2. 변경 주기",
"score": 0.715,
"text": "비밀번호·계정 보안 규정\n## 2. 변경 주기\n- 비밀번호는 90일마다 바꾼다. 만료 7일 전부터 사내 포털에 변경 안내가 표시된다.\n- 최근에 쓴 비밀번호 5개는 다시 쓸 수 없다."
},
{
"rank": 2,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "1. 비밀번호 만들기",
"score": 0.628,
"text": "비밀번호·계정 보안 규정\n## 1. 비밀번호 만들기\n- 비밀번호는 12자 이상으로 만든다.\n- 영문 대문자, 영문 소문자, 숫자, 특수문자 중 3종류 이상을 섞는다.\n- 이름, 생일, 전화번호, 회사 이름처럼 추측하기 쉬운 단어는 쓰지 않는다."
},
{
"rank": 3,
"source": "password-policy",
"title": "비밀번호·계정 보안 규정",
"section": "3. 로그인 실패와 잠금",
"score": 0.558,
"text": "비밀번호·계정 보안 규정\n## 3. 로그인 실패와 잠금\n- 로그인에 5번 연속 실패하면 계정이 30분 동안 잠긴다.\n- 30분이 지나면 자동으로 풀린다. 급한 경우 IT 문의로 잠금 해제를 요청한다."
}
],
"top_score": 0.715,
"indexed": true
}
✔ top_k 5 · 1.1s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"top_k": 5
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"query": "컴퓨터 바이러스 감염 대응 정책",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.531,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
},
{
"rank": 2,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "1. 피싱 메일",
"score": 0.456,
"text": "보안 사고 대응 절차\n## 1. 피싱 메일\n- 보낸 사람이 의심스럽거나 급하게 클릭을 요구하는 메일은 링크를 누르지 않는다.\n- 메일 화면의 '피싱 신고' 버튼으로 신고한다.\n- 이미 링크를 눌렀거나 비밀번호를 입력했다면 즉시 비밀번호를 바꾸고 IT 문의로 알린다."
},
{
"rank": 3,
"source": "privacy",
"title": "개인정보 처리 지침",
"section": "3. 유출 대응",
"score": 0.413,
"text": "개인정보 처리 지침\n## 3. 유출 대응\n- 개인정보가 유출되었거나 유출이 의심되면 1시간 이내에 보안팀에 신고한다.\n- 신고할 때는 유출된 정보의 종류, 대략적인 건수, 발견한 시각을 함께 알린다."
},
{
"rank": 4,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "1. 접속 원칙",
"score": 0.397,
"text": "원격근무·VPN 이용 규정\n## 1. 접속 원칙\n- 회사 밖에서 사내 시스템에 접속할 때는 반드시 회사 VPN을 먼저 연결한다.\n- 카페, 공항 같은 공용 와이파이에서는 VPN 없이 사내 시스템에 접속하지 않는다."
},
{
"rank": 5,
"source": "remote-work-vpn",
"title": "원격근무·VPN 이용 규정",
"section": "3. 재택근무 중 보안",
"score": 0.386,
"text": "원격근무·VPN 이용 규정\n## 3. 재택근무 중 보안\n- 자리를 비울 때는 화면을 잠그고, 5분 동안 사용하지 않으면 자동으로 잠기게 설정한다.\n- 가족과 함께 쓰는 컴퓨터로는 업무를 하지 않는다.\n- VPN 접속 기록은 1년 동안 보관된다."
}
],
"top_score": 0.531,
"indexed": true
}
✔ top_k 1 · 1.2s
→ request POST /webhook/my-search
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"top_k": 1
}
← response HTTP 200
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요",
"query": "컴퓨터 바이러스 감염 대응 정책",
"hits": [
{
"rank": 1,
"source": "security-incident",
"title": "보안 사고 대응 절차",
"section": "2. 악성코드 감염 의심",
"score": 0.531,
"text": "보안 사고 대응 절차\n## 2. 악성코드 감염 의심\n- 컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심한다.\n- 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알린다.\n- 컴퓨터를 끄거나 파일을 지우지 않는다. 원인 분석에 필요하다."
}
],
"top_score": 0.531,
"indexed": true
}
Passed 4/4
report: runs/lab01-challenge-20261022-201325.json
```
- 섹션 칸 · `top_k`도 그대로.
### 26 · 회귀 → `lab02-challenge` 8/8
실행한 명령:
```bash
uv run tools/flow.py test cases/lab02-challenge.json -v
```
출력 (그대로):
```text
✔ before: POST /webhook/my-index · HTTP 200 · 0.7s · {"indexed_chunks": 25, "chunking": "section"}
POST http://localhost:5678/webhook/my-policy-qa · 8 case(s) × 1
✔ 점수는 높은데 규정에 없음 (VPN 속도) · 1.4s
→ request POST /webhook/my-policy-qa
{
"question": "VPN 접속 속도가 느리면 어떻게 해요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정에서는 VPN 접속 속도가 느릴 때의 대처 방법에 대해 언급하고 있지 않습니다. 따라서 답변을 드리기 어렵습니다. 규정에서 답을 찾지 못했습니다.",
"sources": [
"remote-work-vpn"
],
"cited": [],
"top_score": 0.462,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수는 높은데 규정에 없음 (노트북 사양) · 1.1s
→ request POST /webhook/my-policy-qa
{
"question": "노트북 사양은 어떻게 되나요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정 발췌에는 노트북 사양에 대한 내용이 포함되어 있지 않습니다. 따라서 노트북 사양에 대해서는 규정에서 답을 찾지 못했습니다.",
"sources": [
"device-issue-return",
"email-and-documents"
],
"cited": [],
"top_score": 0.379,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수는 높은데 규정에 없음 (비밀번호 잊음) · 1.1s
→ request POST /webhook/my-policy-qa
{
"question": "비밀번호를 잊어버리면 어디서 바꿔요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정에서 답을 찾지 못했습니다.",
"sources": [
"password-policy"
],
"cited": [],
"top_score": 0.55,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수는 높은데 규정에 없음 (보안 교육) · 1.4s
→ request POST /webhook/my-policy-qa
{
"question": "보안 교육은 1년에 몇 번 받아야 하나요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 확실한 답을 찾지 못해 IT 담당자에게 전달했습니다.",
"draft": "규정에서 답을 찾지 못했습니다.",
"sources": [
"security-incident",
"remote-work-vpn",
"password-policy"
],
"cited": [],
"top_score": 0.353,
"checks": [
{
"name": "found_in_policies",
"passed": false
},
{
"name": "cites_excerpt",
"passed": false
},
{
"name": "grounded",
"passed": false
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": [
"found_in_policies",
"cites_excerpt",
"grounded"
]
}
✔ 점수가 낮아 걸러짐 (연차) · 0.3s
→ request POST /webhook/my-policy-qa
{
"question": "연차 휴가는 며칠이에요?"
}
← response HTTP 200
{
"route": "담당자 연결",
"answer": "규정에서 답을 찾지 못했습니다. IT 문의 창구로 연결해 드릴게요.",
"sources": [],
"cited": [],
"top_score": 0.259
}
✔ 틀린 전제 (30일) · 1.4s
→ request POST /webhook/my-policy-qa
{
"question": "비밀번호는 30일마다 바꾸면 되죠?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "비밀번호는 30일마다 바꾸는 것이 아니라 90일마다 바꿔야 합니다. 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다[비밀번호·계정 보안 규정].",
"draft": "비밀번호는 30일마다 바꾸는 것이 아니라 90일마다 바꿔야 합니다. 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다[비밀번호·계정 보안 규정].",
"sources": [
"password-policy"
],
"cited": [
"password-policy"
],
"top_score": 0.684,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 근거 있는 답은 그대로 · 1.5s
→ request POST /webhook/my-policy-qa
{
"question": "암호를 얼마나 자주 바꿔야 해?"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "암호는 90일마다 변경해야 하며, 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다. 또한 최근에 사용한 비밀번호 5개는 다시 사용할 수 없습니다[비밀번호·계정 보안 규정].",
"draft": "암호는 90일마다 변경해야 하며, 만료 7일 전부터 사내 포털에 변경 안내가 표시됩니다. 또한 최근에 사용한 비밀번호 5개는 다시 사용할 수 없습니다[비밀번호·계정 보안 규정].",
"sources": [
"password-policy"
],
"cited": [
"password-policy"
],
"top_score": 0.575,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
✔ 검사 기록 · 1.5s
→ request POST /webhook/my-policy-qa
{
"question": "컴퓨터가 바이러스에 걸린 것 같아요"
}
← response HTTP 200
{
"route": "자동 답변",
"answer": "컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심해야 합니다. 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알리세요. 컴퓨터를 끄거나 파일을 지우지 마십시오, 원인 분석에 필요합니다[보안 사고 대응 절차].",
"draft": "컴퓨터가 갑자기 느려지거나 모르는 프로그램이 실행되면 악성코드 감염을 의심해야 합니다. 감염이 의심되면 먼저 랜선을 뽑고 와이파이를 꺼서 네트워크에서 분리한 뒤 IT 문의로 알리세요. 컴퓨터를 끄거나 파일을 지우지 마십시오, 원인 분석에 필요합니다[보안 사고 대응 절차].",
"sources": [
"security-incident",
"remote-work-vpn"
],
"cited": [
"security-incident"
],
"top_score": 0.479,
"checks": [
{
"name": "found_in_policies",
"passed": true
},
{
"name": "cites_excerpt",
"passed": true
},
{
"name": "grounded",
"passed": true
},
{
"name": "numbers_from_policies",
"passed": true
}
],
"failed": []
}
Passed 8/8
report: runs/lab02-challenge-20261022-201335.json
```
- 규정 Q&A는 자기 안에서 저장소를 읽으므로 `my-search`를 바꿔도 영향이 없지만, 끝까지 돌려 확인했습니다.
## 다시 돌려 보기
```bash
cd ~/aio-01d4-stu/Last3Mon/71
uv run tools/flow.py push reference/lab01-example2-index.json reference/lab01-example2-search.json
uv run tools/flow.py test cases/lab01.json -v
uv run tools/flow.py test cases/lab01-challenge.json -v # 과제 하기 전 2/4
uv run tools/flow.py push answers/71-lab01-challenge-index.json answers/71-lab01-challenge-search.json
uv run tools/flow.py test cases/lab01-challenge.json -v # 4/4
uv run tools/flow.py push reference/lab02-example2-qa.json
uv run tools/flow.py test cases/lab02.json -v
uv run tools/flow.py test cases/lab02-challenge.json -v # 과제 하기 전 2/8
uv run tools/flow.py push answers/71-lab02-challenge-qa.json
uv run tools/flow.py test cases/lab02-challenge.json -v --repeat 3 # 24/24
uv run tools/flow.py call my-index requests/index-200.json -v
uv run tools/flow.py test cases/retrieval-answer.json -v --no-before # 200자 20/24
uv run tools/flow.py test answers/71-lab03-challenge-cases.json -v # 과제 하기 전 6/8
uv run tools/flow.py push answers/71-lab03-challenge-search.json
uv run tools/flow.py test answers/71-lab03-challenge-cases.json -v # 7/8
uv run tools/flow.py test cases/retrieval-answer.json -v # 23~24/24
```
- 과제 정답 · 어려운 질문(위 표의 03 · 08 · 19 · 20)은 이 폴더(`Last3Mon/71/answers/`)에 있습니다 (강사 저장소 `Day/71/answers/`와 같은 파일). 명령은 `Last3Mon/71`에서 `answers/…`로 씁니다.
- push는 같은 웹훅 경로의 다른 워크플로우를 자동으로 내리고, n8n이 재시작되어 메모리 저장소가 비워집니다. `test`는 `before`가 다시 색인하지만 `call`로 볼 때는 `call my-index requests/index-section.json -v`부터.