[온톨로지 적용하기] 8주차 Day 1 — 개념은 저장 자리가 아니다

주차 주제: 바인딩 — 개념과 테이블을 잇기 | 제조 사례: 개념을 테이블로 만든 회사

오늘의 목표: 바인딩이 무엇이고 왜 복사보다 나은지 안다.

소요 시간: 30분


1. 한 문장으로

개념은 가리키는 것이지
담는 것이 아닙니다.                        ★

2. 두 갈래

㉮ 담는다                                   ★
   개념마다 테이블을 만들고 데이터를 복사

㉯ 가리킨다                                 ★
   개념은 정의만 갖고
   "어느 테이블의 어느 컬럼" 을 적음          ★
이 과정은 ㉯ 입니다. (3주차 Day 4)            ★

3. ㉮ 를 고르게 되는 이유

· 깔끔해 보입니다                              ★
· 도구가 그렇게 하라고 합니다                  ★
· 조회가 빠를 것 같습니다                      ★
· "통합 DB" 라는 말이 멋있습니다               ★
그리고 1년 뒤 동기화 지옥이 됩니다.        ★

4. ★ 바인딩의 모양

개념 「생산실적」
  속성            바인딩                       ★
  ──────────────────────────────────────────
  실적번호        mes.prd_result.result_no    ★
  품목            → 개념 「품목」 (관계)       ★
  생산수량        mes.prd_result.qty_prod     ★
  양품수량        mes.prd_result.qty_good     ★
  작업장          mes.prd_result.wc_cd        ★
  설비            [없음]                   ★
  완료일시        mes.prd_result.end_dt       ★

  조건            status <> 'D'               ★
                  (삭제 건 제외)              ★

5. 「조건」 칸이 핵심이다

테이블을 가리키는 것만으로는 부족합니다.      ★
왜냐하면

  같은 테이블에 개념에 안 들어가는 행이     ★
  섞여 있기 때문입니다.
전형적인 조건

  · status <> 'D'        삭제 건 제외        ★
  · type <> 'S'          샘플 제외           ★
  · is_test = 'N'        시험 데이터 제외    ★
  · plant_cd IN (...)    대상 공장만         ★
  · created_at >= ...    특정 시점 이후만    ★
3주차 Day 5 에서 캔 쿼리의 WHERE 가        ★
여기 들어갑니다.

6. 조건을 안 적으면

AI 가 전부 셉니다.                         ★
예

  생산실적 2.1M 건
  그중 삭제 건 4만 · 시험 데이터 1.2만        ★
조건 없이 세면

  "생산 건수 2,100,000"                       ★
조건 있으면

  "생산 건수 2,048,000"                       ★
2.5% 차이입니다.
그리고 아무도 못 알아챕니다.               ★

7. 마지막 조건이 특히 중요하다

created_at >= '2023-01-01'
왜 이런 조건이 필요한가

  · 시스템 전환 전 데이터가 불완전            ★
  · 컬럼 의미가 중간에 바뀜                   ★
  · 6주차 Day 4 의 「구분 불가」 기간          ★
적어야 할 것

  "2023-01 이전은 설비 ID 가 없음.         ★
   설비별 집계는 2023-01 이후만."             ★
그러면 AI 가

  기간을 제한해서 답합니다.                ★

8. 제조 현장의 실제

어느 업체, 개념마다 테이블을 만들었습니다(㉮).
개념 19개 → 통합 DB 테이블 19개              ★
매일 밤 배치로 복사                          ★
6개월 뒤
· 배치 실패가 주 2~3회                       ★
· 실패해도 화면은 정상으로 보입니다       ★
  (어제 데이터가 있으니까요)                 ★
· "어제 숫자" 와 "오늘 숫자" 가 섞였습니다    ★
결정적 사건

  월말 마감일에 배치가 실패했습니다.         ★
  통합 DB 는 전날 값.
  그걸로 마감 보고가 나갔습니다.           ★
바꾼 뒤 (㉯ 바인딩)
· 복사 없음                                  ★
· 질문이 오면 원본에 조회                    ★
· 항상 최신                                  ★
· 응답 0.3~1.2초 (조회당)                    ★
느려진 것은 0.5초.                       ★
없어진 것은 배치 운영 전부.               ★

9. 그럼 언제 복사하나

① 조회가 정말 느릴 때                      ★
   3초 넘고, 자주 물어질 때

② 원본이 없어질 때                         ★
   레거시 시스템 폐기 예정

③ 원본에 부하를 주면 안 될 때              ★
   실시간 생산 DB
그때도

  · 필요한 개념만 복사합니다               ★
  · 언제 복사됐는지를 같이 저장합니다      ★
  · 화면에 "○시 기준" 을 표시합니다        ★
"○시 기준" 한 줄이

  마감 사고를 막습니다.                      ★

10. 오늘 해 볼 것 (15분)

① 개념 하나를 바인딩해 보세요

  개념  ________
  속성        →  테이블.컬럼                  ★
  ________    →  ________________
  ________    →  ________________            ★
  ________    →  [없음]                   ★
② 조건을 찾으세요

  그 테이블에서 개념에 안 들어가는 행      ★
  · status = ____ → 제외                      ★
  · type = ____ → 제외
  → 전체 ___건 중 제외 ___건 (___%)           ★
③ 시작 시점을 확인하세요

  이 테이블의 믿을 수 있는 시작일  ______  ★
  이유  ____________________                  ★

11. 내일 할 것

하나의 개념이 여러 시스템에 있을 때.

「품목」 이 ERP·MES·PLM 에 다 있습니다. 어느 것이 진실인지를 정합니다.


이 글은 온톨로지 적용하기 과정의 8주차 1일차입니다. 과정 전체 보기

진도와 검색이 되는 판: AXPulse 기술따라가기

댓글

이 블로그의 인기 게시물

자재관리는 잘 쓰는데 BOM은 엑셀입니다

협력사 AI 로봇 도입, 공급망 스마트 제조 생태계 대응 전략

개발 테스트 자동화, AI 에이전트와 MCP 도입 전략