티스토리 뷰
📌 시리즈 안내 — 7일 완성 온톨로지 마스터 과정
| 일차 | 주제 | 핵심 내용 |
| 1일차 | 온톨로지 기초 | 온톨로지란? 왜 필요한가? 3대 구성요소 |
| 2일차 | 구축 프레임워크 | 5단계 프로세스, 범위 정의, 용어 수집 방법론 |
| 3일차 | 실전 설계 | 설비관리·불량분석 온톨로지 전체 설계 실습 |
| 4일차 | 구현 실습 | 엑셀 온톨로지 완성, JSON-LD 변환, Python 코드 |
| 5일차 (오늘) | AI 연동 | 프롬프트 엔지니어링 × 온톨로지, RAG 연동, Before/After |
| 6일차 | 실전 시나리오 | 불량 자동분석, 사내 AI 챗봇 구축 사례 |
| 7일차 | 30일 로드맵 | 추천 도구, 기술 스택, 주차별 실행 계획 |
💡 4일차 복습:
엑셀 3시트(클래스·관계·인스턴스)로 온톨로지를 구현하고, Python 추론 엔진과 JSON-LD 자동 변환 코드를 만들었습니다. 오늘은 이 온톨로지를 실제 AI에 연결합니다. → 4일차 다시 보기
목차
- 오늘의 목표: AI가 우리 회사 말을 알아듣게 만들기
- 연동 방식 1: 프롬프트 엔지니어링 (코딩 없음)
- 실전 프롬프트 템플릿 — 복사해서 바로 사용
- Before/After 비교 — 온톨로지 유무 차이 체감하기
- 연동 방식 2: RAG + 온톨로지 (중급)
- 연동 방식 3: Knowledge Graph + LLM (고급)
- 3가지 방식 비교 — 우리 회사에 맞는 선택
- 프롬프트 최적화 팁 10가지
- 5일차 핵심 정리 & 6일차 예고
1. 오늘의 목표: AI가 우리 회사 말을 알아듣게 만들기
4일차까지 우리는 온톨로지라는 "지식 지도"를 완성했습니다. 하지만 엑셀이나 JSON 파일만으로는 아무 일도 일어나지 않습니다.
오늘은 드디어 이 온톨로지를 ChatGPT, Claude 같은 AI에 연결합니다.
오늘이 끝나면 여러분은:
✅ ChatGPT/Claude에 온톨로지를 적용하여 "우리 회사 맞춤 AI" 구동
✅ "스핀들 빨간불이야"라고 물으면 구체적 원인과 조치방법 안내받기
✅ 3가지 연동 방식 중 우리 회사에 맞는 것을 선택
✅ 바로 복사해서 쓸 수 있는 프롬프트 템플릿 확보
이 시리즈에서 가장 실감나는 날입니다. 직접 만든 온톨로지로 AI가 달라지는 순간을 경험하세요.
2. 연동 방식 1: 프롬프트 엔지니어링 (코딩 없음)
가장 빠르고 가장 강력한 첫 번째 방법
프롬프트 엔지니어링은 AI에게 보내는 시스템 메시지(System Prompt)에 온톨로지 정보를 직접 포함시키는 방법입니다.
코딩이 전혀 필요 없고, ChatGPT의 Custom GPTs나 Claude의 Projects 기능을 사용하면 10분 만에 설정할 수 있습니다.
원리
일반 AI 사용:
사용자 질문 → AI (일반 지식으로 답변) → 교과서적 답변
온톨로지 적용 AI 사용:
사용자 질문 → AI (온톨로지 + 일반 지식으로 답변) → 우리 회사 맞춤 답변
차이는 단 하나입니다. AI에게 **"너는 우리 회사의 이런 지식을 알고 있어"**라고 미리 알려주는 것입니다.
적용 방법: ChatGPT Custom GPTs
1. ChatGPT → "GPT 만들기" 클릭
2. "구성" 탭 → "지침(Instructions)" 영역에 온톨로지 프롬프트 붙여넣기
3. 이름: "우리 회사 설비관리 AI"
4. 저장 → 바로 사용 가능
적용 방법: Claude Projects
1. Claude → "프로젝트" → "새 프로젝트 만들기"
2. "프로젝트 지침(Project Instructions)"에 온톨로지 프롬프트 붙여넣기
3. 4일차에서 만든 엑셀 파일을 "프로젝트 지식"에 업로드 (선택)
4. 바로 대화 시작
핵심은 어떤 프롬프트를 넣느냐입니다. 다음 섹션에서 바로 복사해서 쓸 수 있는 템플릿을 드립니다.
3. 실전 프롬프트 템플릿 — 복사해서 바로 사용
템플릿 A: 설비 관리 AI 어시스턴트
아래 프롬프트를 그대로 복사하여 ChatGPT Custom GPTs 또는 Claude Projects에 붙여넣으세요. 대괄호 [ ] 안의 내용만 우리 회사에 맞게 수정하면 됩니다.
당신은 [회사명]의 설비관리 전문 AI 어시스턴트입니다.
아래 온톨로지(지식 체계)를 기반으로 설비 관련 질문에 답변합니다.
═══════════════════════════════
[1. 설비 분류 체계]
═══════════════════════════════
설비(Equipment)
├── 가공설비: CNC 선반, CNC 밀링, 프레스, 사출기
├── 검사설비: CMM(3차원측정기), 비전검사기
└── 물류설비: AGV, 컨베이어
═══════════════════════════════
[2. 설비 현황]
═══════════════════════════════
| 설비명 | 유형 | 위치 | 담당자 | 도입일 | 상태 |
|--------|------|------|--------|--------|------|
| CNC 1호기 | CNC 선반 | 1공장 A라인 | 김기술 | 2020-03 | 가동중 |
| CNC 2호기 | CNC 선반 | 1공장 B라인 | 이설비 | 2021-06 | 가동중 |
| CNC 3호기 | CNC 밀링 | 2공장 A라인 | 김기술 | 2019-01 | 점검중 |
| 200톤프레스 | 프레스 | 2공장 B라인 | 박정비 | 2018-05 | 가동중 |
[→ 실제 설비 목록으로 교체하세요]
═══════════════════════════════
[3. 고장 유형 및 원인 관계]
═══════════════════════════════
■ 기계적 고장
● 스핀들 과열 (현장 용어: 스핀들 빨간불, 주축 과열)
→ 원인 점검 순서:
1순위: 윤활유 잔량 확인 (40%) → 조치: 윤활유 보충
2순위: 베어링 상태 확인 (30%) → 조치: 베어링 교체
3순위: 가공 부하 확인 (20%) → 조치: 절삭 조건 재설정
4순위: 냉각 시스템 확인 (10%) → 조치: 냉각수 교체/배관 점검
● 진동 이상 (현장 용어: 떨림, 진동)
→ 원인 점검 순서:
1순위: 볼스크류 마모 (35%) → 조치: 볼스크류 교체
2순위: 베어링 손상 (30%) → 조치: 베어링 교체
3순위: 체결 불량 (20%) → 조치: 볼트 재체결
4순위: 기초 불량 (15%) → 조치: 레벨링 재조정
■ 전기적 고장
● 센서 오류 (현장 용어: 센서 불량, 값이 안 나와)
→ 원인: 센서 노후, 배선 불량, 노이즈 간섭
● 모터 과열 (현장 용어: 모터 뜨거워)
→ 원인: 과부하, 냉각팬 고장, 전압 불안정
■ 소프트웨어 고장
● PLC 오류 → 원인: 프로그램 버그, 메모리 오류
● 통신 단절 → 원인: 케이블 불량, 허브 고장
═══════════════════════════════
[4. 부품 교체 주기]
═══════════════════════════════
| 부품 | 적용 설비 | 교체주기 | 최종교체일 |
|------|----------|---------|----------|
| 볼스크류 | CNC 전체 | 12개월 | CNC1: 2024-06-15 |
| 베어링 | CNC 전체 | 24개월 | CNC1: 2023-12-01 |
| 절삭공구 | CNC 전체 | 1개월 | CNC1: 2024-11-20 |
| 윤활유 | CNC/프레스 | 3개월 | CNC1: 2024-10-01 |
[→ 실제 부품 정보로 교체하세요]
═══════════════════════════════
[5. 센서 정상 범위]
═══════════════════════════════
| 센서 | 적용 설비 | 정상 하한 | 정상 상한 | 단위 |
|------|----------|----------|----------|------|
| 스핀들 온도 | CNC | 20 | 80 | ℃ |
| 진동 | CNC | 0.5 | 4.5 | mm/s |
| 모터 전류 | CNC/프레스 | 5 | 50 | A |
[→ 실제 센서 기준으로 교체하세요]
═══════════════════════════════
[6. 응답 규칙]
═══════════════════════════════
1. 사용자가 현장 용어(예: "빨간불", "떨림")를 쓰면 해당 정식 명칭과 연결하여 답변
2. 고장 관련 질문 시 반드시 "원인 점검 순서"를 우선순위대로 안내
3. 부품 교체 관련 질문 시 교체주기와 최종교체일을 함께 안내
4. 센서값 이상 질문 시 정상 범위를 함께 제시
5. 모르는 정보는 추측하지 말고 "해당 정보가 등록되어 있지 않습니다"라고 안내
6. 답변 마지막에 관련 추가 질문을 1~2개 제안
템플릿 B: 불량 분석 AI 어시스턴트
당신은 [회사명]의 품질관리 전문 AI 어시스턴트입니다.
아래 온톨로지를 기반으로 불량 분석 관련 질문에 답변합니다.
═══════════════════════════════
[1. 불량 분류 체계]
═══════════════════════════════
불량(Defect)
├── 외관불량: 스크래치, 찍힘, 변색, 버(Burr)
├── 치수불량: 공차초과, 편심, 진원도불량
└── 기능불량: 누유, 소음, 동작불량
═══════════════════════════════
[2. 불량-원인 매핑 (4M 분류)]
═══════════════════════════════
■ 설비 원인 (Machine)
● 치수불량 + CNC 설비인 경우:
1순위: 공구 마모도 확인 (35%)
2순위: 척킹 상태 확인 (25%)
3순위: 스핀들 정밀도 확인 (20%)
4순위: NC 프로그램 확인 (10%)
5순위: 소재 경도 확인 (10%)
● 외관불량(스크래치) + 가공 공정:
1순위: 칩 배출 상태 (40%)
2순위: 공구 날 상태 (30%)
3순위: 이송속도 과다 (20%)
4순위: 소재 표면 이물 (10%)
■ 자재 원인 (Material)
● 특정 Lot 집중 불량 시:
→ 해당 Lot 원자재 성적서 확인
→ 동일 Lot 사용 제품 전수검사 권고
→ 공급업체 클레임 검토
■ 공정 원인 (Method)
● 온도 이탈: 설정 온도 ±5℃ 초과 시 불량 위험
● 압력 이상: 설정 압력 ±10% 초과 시 불량 위험
● 속도 부적정: 가공 속도 권장 범위 벗어남
■ 인적 원인 (Man)
● 특정 작업자 불량률 팀 평균 2배 초과 시:
→ 해당 불량 유형 맞춤 교육 권고
→ 숙련 작업자 멘토링 매칭 제안
═══════════════════════════════
[3. 공정별 주요 불량 유형]
═══════════════════════════════
| 공정 | 주요 불량 유형 | 핵심 파라미터 |
|------|-------------|-------------|
| CNC 가공 | 치수불량, 표면조도 | 이송속도, RPM, 절삭깊이 |
| 프레스 | 찍힘, 크랙 | 가압력, 타이밍, 금형상태 |
| 열처리 | 경도불량, 변형 | 온도, 시간, 냉각속도 |
| 표면처리 | 변색, 박리 | 용액농도, 시간, 온도 |
| 조립 | 누유, 소음 | 토크값, 체결순서 |
[→ 실제 공정에 맞게 수정하세요]
═══════════════════════════════
[4. 최근 불량 이력 (최근 30일)]
═══════════════════════════════
| 날짜 | 불량유형 | 제품 | 설비 | 수량 | 원인 | 조치 |
|------|---------|------|------|------|------|------|
| 12/01 | 치수불량(공차초과) | A제품 | CNC 1호기 | 15개 | 공구마모 | 공구교체 |
| 12/03 | 스크래치 | B제품 | CNC 3호기 | 8개 | 칩 잔류 | 칩 배출라인 청소 |
| 12/05 | 치수불량(편심) | A제품 | CNC 1호기 | 5개 | 척킹불량 | 척 재정비 |
| 12/08 | 변색 | C제품 | 표면처리 | 22개 | 용액농도이탈 | 용액 교체 |
[→ 실제 불량 이력으로 교체하세요]
═══════════════════════════════
[5. 응답 규칙]
═══════════════════════════════
1. 불량 유형 질문 시 반드시 4M(설비/자재/공정/인적) 관점으로 원인 분석
2. 원인 제시 시 확률 기반 점검 우선순위를 안내
3. 과거 유사 불량 이력이 있으면 반드시 언급하고 당시 조치방법 안내
4. 특정 설비/Lot/작업자 집중 불량 패턴이 보이면 적극적으로 경고
5. 비용 영향이 큰 불량은 "우선 개선 대상"으로 강조
6. 모르는 정보는 추측하지 말고 "추가 데이터 확인 필요"라고 안내
템플릿 C: 통합 AI 어시스턴트 (설비 + 불량)
실제 현장에서는 설비 관리와 불량 분석을 하나의 AI로 통합하는 것이 편리합니다.
당신은 [회사명]의 생산/품질 통합 AI 어시스턴트입니다.
설비 관리와 불량 분석 두 영역의 온톨로지를 모두 활용하여 답변합니다.
[설비 온톨로지]
(템플릿 A의 내용 전체 붙여넣기)
[불량 온톨로지]
(템플릿 B의 내용 전체 붙여넣기)
═══════════════════════════════
[통합 추론 규칙]
═══════════════════════════════
1. 불량 발생 시 해당 설비의 최근 고장 이력과 교차 분석
2. 설비 센서 이상과 불량 발생 시점의 상관관계 확인
3. 부품 교체주기 초과 설비에서 불량 발생 시 설비 원인 우선 의심
4. 동일 Lot이 다른 설비에서는 정상인 경우 설비 원인 확정
5. 동일 설비에서 다른 Lot도 불량인 경우 설비 원인 확정
6. 설비 고장 수리 직후 불량 발생 시 수리 품질 재확인 제안
💡 프롬프트 길이 걱정? ChatGPT-4의 시스템 메시지는 약 8,000토큰(한글 기준 약 4,000자)까지, Claude는 프로젝트 지식으로 200,000토큰까지 넣을 수 있습니다. 위 템플릿은 약 2,000자이므로 여유가 충분합니다. 설비가 50대, 고장 이력이 100건이어도 문제없습니다.
4. Before/After 비교 — 온톨로지 유무 차이 체감하기
같은 질문을 온톨로지 없는 AI와 있는 AI에게 물어보겠습니다. 차이를 직접 비교해보세요.
질문 1: "스핀들 빨간불이야. 뭐 확인해야 해?"
❌ Before (온톨로지 없음)
스핀들 과열 알람이 발생한 것으로 보입니다. 일반적으로
스핀들 과열의 원인은 다음과 같습니다:
1. 베어링 손상
2. 윤활유 부족
3. 과도한 절삭 조건
4. 냉각 시스템 이상
5. 스핀들 모터 문제
설비 매뉴얼을 참조하여 점검하시기 바랍니다.
✅ After (온톨로지 적용)
"스핀들 빨간불"은 스핀들 과열(주축 온도 80℃ 초과) 상태입니다.
점검 우선순위대로 안내드립니다:
1순위 (확률 40%): 윤활유 잔량 확인
→ CNC 1호기 윤활유 최종 교체: 2024-10-01 (약 2개월 경과)
→ 교체주기 3개월이므로 곧 교체 시기입니다
→ 조치: 윤활유 잔량 확인 후 부족 시 즉시 보충
2순위 (확률 30%): 베어링 상태 확인
→ CNC 1호기 베어링 최종 교체: 2023-12-01 (약 12개월 경과)
→ 교체주기 24개월, 아직 여유 있음
→ 조치: 진동 센서값 확인 (현재 3.2mm/s, 정상범위 내)
3순위 (확률 20%): 가공 부하 확인
→ 조치: 현재 가공 프로그램의 절삭 조건 재검토
4순위 (확률 10%): 냉각 시스템 확인
→ 조치: 냉각수 온도 및 유량 점검
📌 추가 확인: CNC 1호기에서 2024-03-01에도 동일한 스핀들 과열이
발생한 이력이 있으며, 당시 원인은 윤활유 부족이었습니다.
💡 추가로 확인할 사항이 있으신가요?
- "현재 스핀들 온도가 몇 도야?"
- "윤활유 재고 있어?"
질문 2: "이번 달 불량이 왜 이렇게 많아?"
❌ Before (온톨로지 없음)
불량률 증가의 일반적 원인으로는 다음이 있습니다:
- 원자재 품질 변화
- 설비 노후화
- 작업자 숙련도
- 환경 변화 (온도, 습도)
- 공정 조건 변경
구체적 분석을 위해서는 불량 데이터를 확인해야 합니다.
✅ After (온톨로지 적용)
이번 달 불량 현황을 분석했습니다.
■ 불량 요약 (12월 1일~8일 기준)
총 불량: 50개 (4건 발생)
치수불량: 20개 (40%) — CNC 1호기 집중
외관불량: 8개 (16%) — CNC 3호기
변색: 22개 (44%) — 표면처리
■ 핵심 패턴 분석
⚠️ 패턴 1: CNC 1호기 치수불량 반복
12/01 공차초과 15개 → 12/05 편심 5개
→ 공구 교체 후에도 재발했으므로 설비 원인 의심
→ CNC 1호기 볼스크류 최종 교체: 2024-06-15 (6개월 경과)
→ 교체주기 12개월이나, 반복 불량 발생으로 조기 점검 권장
⚠️ 패턴 2: 표면처리 변색 22개 대량 발생
→ 12/08 단일 발생, 원인: 용액농도 이탈
→ 동일 용액 사용 제품이 더 있는지 확인 필요
■ 우선 조치 제안
1. CNC 1호기 볼스크류 정밀 점검 (진동값: 3.2mm/s, 상한 4.5 이내이나 상승 추세 확인 필요)
2. 표면처리 용액 농도 모니터링 주기 단축 (주 1회 → 일 1회)
이 분석에 대해 더 자세히 알고 싶은 부분이 있으신가요?
- "CNC 1호기 최근 3개월 불량 추이 보여줘"
- "표면처리 용액 관리 기준이 뭐야?"
질문 3: "CNC 3호기 지금 점검중인데 언제 끝나?"
❌ Before: "해당 정보를 알 수 없습니다. 설비팀에 문의하세요."
✅ After: "CNC 3호기(CNC 밀링, 2공장 A라인)는 현재 점검중 상태입니다. 담당자는 김기술입니다. 점검 완료 예상 시점은 등록되어 있지 않으므로, 김기술 담당자에게 직접 확인 부탁드립니다. 참고로 CNC 3호기는 2019년 도입으로 가동시간 18,200시간이며, 점검 전 최근 발생 이력으로 12/03 스크래치 불량 8건이 있었습니다."
차이의 핵심:
| 비교 항목 | Before (온톨로지 없음) | After (온톨로지 적용) |
| 답변 수준 | 일반론, 교과서적 | 우리 회사 데이터 기반 구체적 |
| 원인 분석 | 가능한 원인 나열 | 확률 기반 점검 우선순위 |
| 이력 활용 | 없음 | 과거 사례 자동 참조 |
| 연관 분석 | 없음 | 설비-부품-불량 교차 분석 |
| 후속 안내 | 없음 | 관련 추가 질문 제안 |
5. 연동 방식 2: RAG + 온톨로지 (중급)
RAG란?
RAG(Retrieval-Augmented Generation)는 AI가 답변하기 전에 관련 문서를 먼저 검색해서 참고하는 기술입니다.
일반 AI:
질문 → AI 내부 지식으로 답변
RAG AI:
질문 → 문서DB 검색 → 관련 문서 추출 → AI가 문서 참고하여 답변
RAG + 온톨로지의 시너지
RAG 단독으로는 "키워드 매칭"에 의존하므로, 관련 문서를 놓치는 경우가 많습니다. 온톨로지를 결합하면 의미 기반 검색이 가능해집니다.
[RAG 단독]
질문: "스핀들이 뜨거워요"
검색: "스핀들" + "뜨거운" 키워드 매칭
결과: 스핀들 관련 문서만 검색됨 (윤활, 베어링 문서 놓칠 수 있음)
[RAG + 온톨로지]
질문: "스핀들이 뜨거워요"
온톨로지 확장: "스핀들 뜨거워"
→ 동의어: "스핀들과열", "주축과열", "스핀들빨간불"
→ 관련 원인: "윤활부족", "베어링마모", "과부하"
→ 관련 부품: "스핀들", "베어링", "윤활유"
확장 검색: 원래 키워드 + 동의어 + 관련 원인 + 관련 부품
결과: 스핀들, 윤활, 베어링 관련 문서를 모두 검색
구현 아키텍처
[사용자 질문]
↓
[온톨로지 쿼리 확장 모듈]
- 동의어 확장
- 상위/하위 개념 확장
- 관련 원인·부품 확장
↓
[벡터 DB 검색] (ChromaDB, Pinecone 등)
- 확장된 키워드로 유사 문서 검색
- SOP, 매뉴얼, 보전일지 등
↓
[LLM (Claude/GPT)]
- 검색된 문서 + 온톨로지 규칙을 참고하여 답변
↓
[사용자에게 답변]
Python 구현 코드 (핵심 부분)
import json
class OntologyQueryExpander:
"""온톨로지 기반 쿼리 확장기"""
def __init__(self, ontology_path):
with open(ontology_path, "r", encoding="utf-8") as f:
self.ontology = json.load(f)
self.graph = self.ontology.get("@graph", [])
def find_synonyms(self, term):
"""용어의 동의어 검색"""
synonyms = set()
for item in self.graph:
label = item.get("rdfs:label", "")
syns = item.get("equip:synonyms", [])
# 정식 명칭이나 동의어에 입력 용어가 포함되면
all_names = [label] + (syns if isinstance(syns, list) else [])
if any(term in name for name in all_names):
synonyms.update(all_names)
synonyms.add(label)
return list(synonyms)
def find_related_concepts(self, term):
"""관련 개념 (원인, 부품 등) 검색"""
related = set()
for item in self.graph:
label = item.get("rdfs:label", "")
if term in label or label in term:
# 진단 규칙에서 관련 원인 추출
rule = item.get("fail:diagnostic_rule", {})
for check in rule.get("check_order", []):
related.add(check.get("check", ""))
related.add(check.get("cause", ""))
return list(related)
def expand_query(self, user_query):
"""사용자 질문을 온톨로지 기반으로 확장"""
expanded_terms = set()
expanded_terms.add(user_query)
# 질문에서 키워드 추출 (간단한 방식)
keywords = user_query.split()
for kw in keywords:
# 동의어 확장
synonyms = self.find_synonyms(kw)
expanded_terms.update(synonyms)
# 관련 개념 확장
related = self.find_related_concepts(kw)
expanded_terms.update(related)
return list(expanded_terms)
# 사용 예시
# expander = OntologyQueryExpander("ontology.json")
# expanded = expander.expand_query("스핀들 빨간불")
# print(expanded)
# ['스핀들 빨간불', '스핀들과열', '주축과열', '스핀들',
# '윤활유 잔량', '윤활부족', '베어링 상태', '베어링마모', ...]
이 확장된 키워드를 벡터 DB에 검색하면, 관련 문서를 훨씬 많이 찾을 수 있습니다.
RAG 시스템 추천 스택
| 구성 요소 | 추천 도구 | 비용 | 난이도 |
| 벡터 DB | ChromaDB | 무료 | ★★☆ |
| 임베딩 모델 | OpenAI Embedding | 저렴 | ★☆☆ |
| LLM | Claude API / GPT API | 종량제 | ★☆☆ |
| 프레임워크 | LangChain | 무료 | ★★☆ |
| 인터페이스 | Streamlit | 무료 | ★★☆ |
| 문서 소스 | SOP, 매뉴얼, 보전일지 PDF | - | ★☆☆ |
6. 연동 방식 3: Knowledge Graph + LLM (고급)
개념
온톨로지를 **그래프 데이터베이스(Neo4j)**에 구축하고, AI가 그래프를 직접 쿼리하여 답변하는 방식입니다. 가장 강력하지만 구축 난이도도 가장 높습니다.
아키텍처
[사용자 질문]
↓
[LLM: 질문 → Cypher 쿼리 변환]
"스핀들 과열 원인 알려줘"
→ MATCH (f:Failure {name:'스핀들과열'})-[:CAUSED_BY]->(c) RETURN c
↓
[Neo4j: 그래프 쿼리 실행]
→ 윤활부족(40%), 베어링마모(30%), 과부하(20%), 냉각불량(10%)
↓
[LLM: 쿼리 결과 → 자연어 답변 생성]
↓
[사용자에게 답변]
Neo4j에 온톨로지 입력하는 Cypher 코드
// 클래스 생성
CREATE (eq:Class {name: '설비', name_en: 'Equipment'})
CREATE (proc:Class {name: '가공설비', name_en: 'Processing Equipment'})
CREATE (cnc:Class {name: 'CNC 선반', name_en: 'CNC Lathe',
synonyms: ['CNC', '씨엔씨', '선반']})
// 계층 관계
CREATE (proc)-[:IS_A]->(eq)
CREATE (cnc)-[:IS_A]->(proc)
// 설비 인스턴스
CREATE (cnc1:Equipment {
name: 'CNC 1호기', type: 'CNC 선반',
location: '1공장 A라인', maintainer: '김기술',
install_date: date('2020-03-15'), total_hours: 12500,
status: '가동중'
})
CREATE (cnc1)-[:INSTANCE_OF]->(cnc)
// 고장 인스턴스 + 인과 관계
CREATE (soh:FailureType {name: '스핀들과열',
synonyms: ['스핀들빨간불', '주축과열']})
CREATE (lub:Cause {name: '윤활부족', probability: 0.4,
action: '윤활유 보충'})
CREATE (brg:Cause {name: '베어링마모', probability: 0.3,
action: '베어링 교체'})
CREATE (soh)-[:CAUSED_BY {priority: 1}]->(lub)
CREATE (soh)-[:CAUSED_BY {priority: 2}]->(brg)
// 고장 이력
CREATE (f1:Failure {
date: datetime('2024-03-01T14:30:00'),
severity: '심각', resolution_hours: 4.5
})
CREATE (cnc1)-[:HAS_FAILURE]->(f1)
CREATE (f1)-[:TYPE_OF]->(soh)
CREATE (f1)-[:ROOT_CAUSE]->(lub)
이 방식의 장점과 한계
장점:
✅ 복잡한 관계 추론이 매우 빠름 (그래프 DB의 강점)
✅ "A의 B의 C" 같은 3단계 이상 추론에 강함
✅ 데이터가 많아져도 성능 저하가 적음
✅ 시각적 그래프 탐색이 가능 (Neo4j Browser)
한계:
❌ 구축 난이도 높음 (Neo4j + Cypher 학습 필요)
❌ LLM → Cypher 변환의 정확도가 완벽하지 않음
❌ 초기 투자 비용과 시간이 큼 (3~6개월)
❌ 전문 개발 인력 필요
💡 현실적 조언: 중소·중견기업에서 처음부터 Knowledge Graph를 구축하는 것은 비효율적입니다. 방식 1(프롬프트)로 시작 → 성과 입증 → 방식 2(RAG) 확장 → 데이터가 충분히 쌓이면 방식 3(KG) 검토 순서가 가장 현실적입니다.
7. 3가지 방식 비교 — 우리 회사에 맞는 선택
종합 비교표
| 비교 항목 | 방식 1: 프롬프트 | 방식 2 : RAG+온톨로지 | 방식 3 : Knowledge Graph |
| 구축 기간 | 1~2일 | 2~4주 | 3~6개월 |
| 필요 역량 | 프롬프트 작성 | Python + API | Python + Neo4j + Cypher |
| 비용 | 무료~월 $20 | 월 $50~200 | 월 $200~1,000+ |
| 온톨로지 규모 | 용어 100개 이내 | 용어 500개 이내 | 용어 제한 없음 |
| 추론 깊이 | 1~2단계 | 2~3단계 | 무제한 |
| 실시간 데이터 | 수동 업데이트 | 반자동 | 자동 연동 가능 |
| 확장성 | 제한적 | 중간 | 높음 |
| 유지보수 | 프롬프트 수정 | 코드 + DB 관리 | 전문 관리 필요 |
| 추천 단계 | AI 도입 초기 | 성과 입증 후 | 데이터 인프라 구축 후 |
우리 회사 상황별 추천
상황 A: "AI 도입한 지 얼마 안 됐어요"
→ 방식 1 (프롬프트) 시작
→ 예산: 월 $20 (ChatGPT Plus 또는 Claude Pro)
→ 목표: 2주 내 PoC 완료, 경영진 보고
상황 B: "AI는 쓰고 있는데, 우리 회사 맞춤이 안 돼요"
→ 방식 1 → 방식 2 전환
→ 예산: 월 $100~200
→ 목표: SOP/매뉴얼 기반 RAG 구축
상황 C: "데이터팀이 있고, MES/ERP 데이터가 잘 갖춰져 있어요"
→ 방식 2 → 방식 3 확장 검토
→ 예산: 월 $500+
→ 목표: 실시간 추론 시스템 구축
단계적 확장 전략 (핵심)
[1개월차] 방식 1: 프롬프트 엔지니어링
→ 비용: 최소 / 시간: 1~2일
→ 성과: "AI가 우리 회사 용어를 알아듣는다!" 체감
→ 보고: PoC 결과로 경영진 승인 확보
↓
[2~3개월차] 방식 2: RAG + 온톨로지
→ SOP, 매뉴얼, 보전일지 PDF를 벡터 DB에 적재
→ 온톨로지 기반 쿼리 확장으로 검색 정확도 향상
→ 성과: "AI가 매뉴얼 내용까지 참고해서 답변한다!"
↓
[6개월~] 방식 3: Knowledge Graph (선택)
→ MES 실시간 데이터 연동
→ Neo4j 기반 그래프 추론
→ 성과: "AI가 실시간 데이터 기반으로 예측까지 한다!"
8. 프롬프트 최적화 팁 10가지
방식 1을 사용하든, 방식 2/3과 결합하든, 프롬프트 품질이 AI 답변 품질을 결정합니다. 실무에서 검증된 10가지 팁입니다.
구조 관련 팁
팁 1: 구분선과 섹션 헤더를 사용하라
❌ 모든 정보를 하나의 텍스트 블록으로 나열
✅ ═══ [섹션명] ═══ 형태로 영역을 명확히 구분
AI는 구조화된 프롬프트를 훨씬 정확하게 이해합니다.
팁 2: 테이블 형식을 적극 활용하라
❌ CNC 1호기는 1공장 A라인에 있고 김기술이 담당하며...
✅ | 설비명 | 위치 | 담당자 |
| CNC 1호기 | 1공장 A라인 | 김기술 |
테이블은 정보 밀도가 높고 AI가 구조적으로 파악하기 좋습니다.
팁 3: 응답 규칙을 명시하라
✅ "고장 질문 시 반드시 점검 우선순위를 1순위부터 안내하라"
✅ "모르는 정보는 추측하지 말고 '등록되지 않았다'고 안내하라"
규칙이 없으면 AI가 자의적으로 답변 형식을 바꿉니다.
내용 관련 팁
팁 4: 동의어를 반드시 포함하라
현장 직원은 정식 명칭을 쓰지 않습니다. "스핀들과열"이 아니라 "스핀들 빨간불", "뜨거워" 같은 표현을 씁니다.
팁 5: 확률/우선순위를 포함하라
❌ "원인은 윤활부족, 베어링마모, 과부하 등이 있습니다"
✅ "1순위: 윤활부족(40%), 2순위: 베어링마모(30%)..."
확률이 있으면 AI가 단순 나열 대신 우선순위 기반 안내를 합니다.
팁 6: 실제 데이터(인스턴스)를 넣어라
❌ 일반적인 분류 체계만 제공
✅ "CNC 1호기, 도입일: 2020-03, 볼스크류 교체: 2024-06-15"
구체적 데이터가 있어야 AI가 구체적 답변을 할 수 있습니다.
팁 7: 과거 이력을 포함하라
최근 30일 고장 이력, 불량 이력을 프롬프트에 넣으면 AI가 패턴을 분석하여 "이번에도 같은 원인일 가능성이 높다"는 판단을 할 수 있습니다.
운영 관련 팁
팁 8: 정기적으로 업데이트하라
업데이트 주기 권장:
설비 현황: 변경 시 즉시
고장/불량 이력: 주 1회
부품 교체 이력: 월 1회
센서 기준값: 분기 1회
팁 9: 피드백 루프를 만들어라
AI 답변이 부정확했던 사례를 모아서, 프롬프트에 "잘못된 답변 예시"로 추가하면 같은 실수를 반복하지 않습니다.
[잘못된 답변 교정]
❌ "프레스 설비에 볼스크류 교체를 안내하지 마라 (프레스에는 볼스크류가 없음)"
❌ "CMM 검사설비에 대해 고장 원인을 추론하지 마라 (검사설비는 별도 체계)"
팁 10: 역할(Persona)을 구체적으로 설정하라
❌ "당신은 AI 어시스턴트입니다"
✅ "당신은 [회사명]에서 15년 경력의 설비보전 전문가입니다.
현장 경험을 바탕으로 실용적인 조치 방법을 우선 안내하며,
이론적 설명보다 즉시 실행 가능한 점검 순서를 제공합니다."
9. 5일차 핵심 정리 & 6일차 예고
✅ 오늘 배운 것
- **방식 1(프롬프트 엔지니어링)**이 가장 빠르고 효과적인 첫 번째 방법이다
- 프롬프트에 온톨로지 6개 섹션(분류체계, 설비현황, 고장원인, 부품교체, 센서범위, 응답규칙)을 넣으면 맞춤 AI가 완성된다
- Before/After 비교에서 답변 품질의 차이가 극적으로 드러난다
- **방식 2(RAG)**는 온톨로지 기반 쿼리 확장으로 검색 정확도를 높인다
- **방식 3(Knowledge Graph)**는 강력하지만 초기 도입보다는 확장 단계에 적합하다
- 단계적 확장 전략: 프롬프트 → RAG → KG 순서가 현실적이다
- 프롬프트 최적화 10가지 팁으로 AI 답변 품질을 극대화할 수 있다
📌 오늘의 실습 과제
과제 1: 템플릿 A 또는 B를 복사하여 우리 회사 정보로 수정
과제 2: ChatGPT Custom GPTs 또는 Claude Projects에 등록
과제 3: 3일차에서 만든 "목표 질문 10개"로 테스트
과제 4: 답변이 부정확한 질문을 기록하고 프롬프트 수정
과제 5: 동료 1명에게 테스트 요청, 피드백 수집
과제 1~3까지 하면 **오늘 안에 "우리 회사 맞춤 AI"**가 동작합니다.
📅 6일차 예고: 실전 시나리오 — 불량 자동분석 & 사내 AI 챗봇
다음 글에서는 지금까지 만든 온톨로지와 AI 연동을 실제 업무 시나리오에 적용합니다:
- 시나리오 1: 불량 발생 → AI 자동 원인 분석 → 조치 제안 (전체 워크플로우)
- 시나리오 2: 사내 AI 챗봇 구축 (직원 누구나 질문 가능)
- 시나리오 3: 경영진 보고용 AI 대시보드 개념
- 각 시나리오별 구축 비용과 기간
자주 묻는 질문 (FAQ)
Q1. 프롬프트에 회사 기밀 정보를 넣어도 되나요?
ChatGPT와 Claude 모두 유료 플랜에서는 대화 내용을 AI 학습에 사용하지 않는다고 명시하고 있습니다. 다만, 민감한 보안 정보(특허, 핵심 기술 파라미터 등)는 넣지 않는 것이 안전합니다. 설비명, 부품명, 고장 유형 같은 운영 정보 수준은 일반적으로 문제없습니다. 회사 보안 정책을 확인하고, 필요하면 보안팀과 협의하세요.
Q2. ChatGPT와 Claude 중 어떤 것이 더 좋나요?
온톨로지 활용 관점에서 Claude는 프로젝트 기능으로 대용량 지식을 넣기 좋고, ChatGPT는 Custom GPTs로 팀원 공유가 편리합니다. 둘 다 시도해보고 우리 팀에 맞는 것을 선택하세요. 기능 차이보다 **프롬프트 품질이 답변 품질의 90%**를 결정합니다.
Q3. 프롬프트를 팀원끼리 공유할 수 있나요?
가능합니다. ChatGPT Custom GPTs는 "팀 내 공유" 설정이 있고, Claude Projects는 팀 플랜에서 프로젝트를 공유할 수 있습니다. 또는 프롬프트 텍스트를 사내 위키/노션에 올려두고 각자 복사하여 사용하는 방법도 효과적입니다.
