오랜만에 포스팅입니다. 그 동안 예상치 못한 업무들로 정신이 없었던 것 같습니다.
잠시 숨고르고 최근 프로젝트에서 자주 학습하고 있는 온톨로지에 대해서 정리하는 차원에서 포스트로 다뤄봤습니다. 처음 개념을 접하시는 분들에게 도움이 되었으면 합니다.

온톨로지란 무엇인가?
철학에서 온톨로지는 “존재론”입니다.
무엇이 존재하는지, 그것들이 어떤 관계를 맺는지에 대한 이론이죠.
IT/데이터 세계에서의 온톨로지(Ontology) 는 이를 차용해:
“어떤 도메인(분야)에 존재하는 개념(Things)과 그들 사이의 관계(Relations)를
명시적으로, 일관되게, 재사용 가능하게 정의한 지식 구조”
로 이해할 수 있습니다.
- 단순한 “용어집(glossary)”이 아니라
- 개념 간의 관계(상속, 포함, 인과, 역할 등)를 구조적으로 표현하고
- 컴퓨터가 이해하고 추론할 수 있도록 형식화된 지식 모델입니다.
요약하면:
- 온톨로지는 “데이터 모델”이 아니라 “지식 모델”이다.
- 스키마(schema)가 “데이터가 어떻게 저장되는가”에 초점을 둔다면,
온톨로지는 “세상(도메인)을 어떻게 이해하고 설명할 것인가”에 초점을 둔다. - 온톨로지는 사람과 기계가 공유하는 개념적 언어 역할을 한다.
온톨로지의 핵심 구성요소
온톨로지는 보통 다음 세 가지 축으로 설명합니다.
- 클래스(Class) – 개념/유형
- 속성(Property) – 특성/관계
- 인스턴스(Instance) – 실제 개체/사례
클래스(Class)
클래스는 “어떤 종류의 것인가?”를 정의합니다.
- 예:
- HR 도메인:
직원(Employee),부서(Department),직무(Role) - 이커머스:
상품(Product),카테고리(Category),브랜드(Brand) - 음악/영상:
아티스트(Artist),앨범(Album),트랙(Track),장르(Genre)
- HR 도메인:
클래스는 계층 구조를 가질 수 있습니다.
직원(Employee)정규직(FullTimeEmployee)계약직(ContractEmployee)
상품(Product)의류(Clothing)전자제품(Electronics)식품(Grocery)
이렇게 상위/하위 개념을 명시적으로 정의하면
“정규직은 직원이다” 같은 상속 관계를 기계가 이해하고 추론할 수 있습니다.
속성(Property)
속성은 크게 두 가지로 나뉩니다.
- 데이터 속성(Data Property)
- 클래스가 가지는 “값”
- 예:
직원→입사일(joinDate),연봉(salary)상품→가격(price),재고수량(stockQuantity)트랙→재생시간(duration),발매일(releaseDate)
- 객체 속성(Object Property)
- 개체와 개체 사이의 “관계”
- 예:
직원—[소속된다(belongsTo)]→부서상품—[속한다(belongsToCategory)]→카테고리트랙—[포함된다(isPartOf)]→앨범아티스트—[참여했다(participatedIn)]→트랙
온톨로지에서 중요한 것은
“어떤 속성이 어떤 클래스에 적용될 수 있는지, 값의 타입은 무엇인지,
관계의 방향과 의미는 무엇인지”를 명시적으로 정의하는 것입니다.
인스턴스(Instance)
인스턴스는 “실제 존재하는 개체”입니다.
- 클래스가
직원(Employee)라면- 인스턴스:
홍길동,김영희
- 인스턴스:
- 클래스가
상품(Product)라면- 인스턴스:
아이폰 15 Pro 256GB,나이키 에어맥스 270
- 인스턴스:
- 클래스가
트랙(Track)이라면- 인스턴스:
Dynamite (BTS),Bad Guy (Billie Eilish)
- 인스턴스:
온톨로지는
- “어떤 종류의 객체가 존재할 수 있는지(클래스)”와
- “그 객체들이 어떤 특성과 관계를 가질 수 있는지(속성)”를 정의하고,
- 실제 데이터(인스턴스)를 이 틀 위에 올려놓는 구조라고 보면 됩니다.
온톨로지의 활용사례 & 구축사례 개념 이해
왜 온톨로지가 필요한가?
단순히 “데이터베이스 스키마”만으로는 다음이 어렵습니다.
- 서로 다른 시스템 간 데이터 의미를 일관되게 공유
- “이 사람은 어떤 프로젝트를 했고, 그 프로젝트는 어떤 고객과 관련 있고,
그 고객은 어떤 산업군에 속하는가?” 같은 복합 질의/추론 - 자연어 질문을 구조화된 질의로 바꾸어 정확한 답변을 주는 것
온톨로지는 이런 문제를 해결하기 위한
“의미 계층(Semantic Layer)” 역할을 합니다.
팔란티어(Palantir) 사례 – 개념적으로
팔란티어 Foundry나 Gotham 같은 플랫폼은
각 조직의 데이터를 온톨로지 기반으로 통합하는 것을 핵심 가치로 내세웁니다.
팔란티어가 하는 일을 온톨로지 관점에서 단순화하면:
- 도메인 모델링
- 예: 제조 회사라면
설비(Asset),부품(Part),작업오더(WorkOrder),고장 이벤트(FailureEvent)등
- 금융이라면
계좌(Account),거래(Transaction),고객(Customer),상품(FinancialProduct)등
- 예: 제조 회사라면
- 데이터 매핑
- 각종 레거시 시스템(DB, 엑셀, 로그 등)의 필드를
- 온톨로지의 클래스/속성에 매핑
- 예:
- ERP의
EMP_TBL.EMP_ID→ 온톨로지의Employee.employeeId - MES의
MACHINE_LOG.EQ_ID→ 온톨로지의Asset.assetId
- ERP의
- 각종 레거시 시스템(DB, 엑셀, 로그 등)의 필드를
- 그래프 형태의 지식 네트워크 구성
- 직원–부서–프로젝트–고객–계약–매출
- 설비–부품–센서–이벤트–정비이력–비용
이런 것들이 모두 연결된 그래프로 표현됩니다.
- 질의·분석·AI 응용
- “지난 1년간 고장 빈도가 높은 설비 유형과 그 설비를 사용하는 공정,
그리고 그 공정의 납기 지연률을 보여줘” 같은 복합 질문에 - 온톨로지+그래프를 활용해 답변/시각화/알림을 제공
- “지난 1년간 고장 빈도가 높은 설비 유형과 그 설비를 사용하는 공정,
즉, 팔란티어는
“각 기업의 온톨로지를 정의하고, 그 위에 데이터를 올려 분석·운영·AI를 통합적으로 지원하는 플랫폼”이라고 볼 수 있습니다.
Graph RAG vs Ontology RAG
최근 LLM 기반 시스템에서 RAG(Retrieval-Augmented Generation) 이 기본 패턴이 되면서,
여기에 그래프와 온톨로지를 결합한 다양한 변형들이 등장하고 있습니다.
기본 RAG
- 문서(텍스트)를 청크로 쪼개고
- 임베딩(벡터)으로 변환한 뒤
- 질문과 유사한 청크를 검색해서
- LLM이 그 내용을 바탕으로 답변 생성
문제는:
- 구조적 관계(“누가 무엇을 언제, 누구와, 왜 했는지”)를 잘 반영하지 못하고
- 정확한 엔티티·관계 기반 질의에 약합니다.
Graph RAG
Graph RAG는 지식그래프(노드/엣지)를 RAG에 결합한 방식입니다.
- 노드: 엔티티(사람, 회사, 제품, 문서 등)
- 엣지: 관계(소속, 구매, 작성, 언급 등)
Graph RAG의 특징:
- 질문에 관련된 노드/서브그래프를 탐색해
- 해당 노드와 연결된 정보(속성, 이웃 노드 등)를 컨텍스트로 제공
- 예:
- “A 프로젝트에 참여한 사람들의 조직 구조와 그들이 과거 수행한 유사 프로젝트를 알려줘”
- →
프로젝트 A노드에서 시작해참여자노드,부서노드,이전 프로젝트노드를 따라가며
관련 정보를 수집해 LLM에 제공
Graph RAG는 “연결 구조”를 잘 활용하지만,
그래프 구조가 잘 설계되지 않으면
- 의미가 모호한 엣지,
- 중복/불일치된 노드,
- 도메인 개념의 일관성 부족
문제가 생기기 쉽습니다.
Ontology RAG
Ontology RAG는 그래프 위에 온톨로지(도메인 모델) 를 명시적으로 얹은 형태입니다.
- 그래프의 노드/엣지가
- 어떤 클래스에 속하는지
- 어떤 속성/관계 타입인지
- 어떤 제약(카디널리티, 도메인/레인지 등)을 가지는지
를 온톨로지가 정의합니다.
Ontology RAG의 장점:
- 질문 해석(Question Understanding)
- “시니어 개발자”라는 표현을
- 온톨로지의
Role클래스와seniorityLevel속성으로 매핑
- 온톨로지의
- “이탈 고객”을
Customer+churned=true조건으로 해석
→ 자연어를 도메인 개념으로 해석하는 데 유리
- “시니어 개발자”라는 표현을
- 정확한 필터링 & 추론
- “5년 이상 경력의 백엔드 개발자 중,
최근 1년간 금융 프로젝트를 수행한 직원” - → 온톨로지 기반으로
Employee∧Role=BackendDeveloper∧experience>=5∧participatedIn(Project)∧Project.industry=Finance∧Project.endDate>=…
같은 구조화된 질의로 변환 가능
- “5년 이상 경력의 백엔드 개발자 중,
- 도메인 일관성
- 여러 시스템에서 “고객”, “클라이언트”, “계정” 등 표현이 달라도
- 온톨로지에서
Customer로 통합
- 온톨로지에서
- LLM이 답변할 때도 온톨로지 용어를 기준으로 답변하게 할 수 있음
- 여러 시스템에서 “고객”, “클라이언트”, “계정” 등 표현이 달라도
요약하면:
- Graph RAG:
- “연결된 데이터(그래프)를 RAG에 활용한다”
- Ontology RAG:
- “그래프 + 도메인 모델(온톨로지)을 함께 활용해
질문 해석, 질의, 추론을 더 정교하게 한다”
- “그래프 + 도메인 모델(온톨로지)을 함께 활용해
그래프는 “구조”, 온톨로지는 “의미”에 더 가깝습니다.
Ontology RAG는 이 둘을 결합한 상위 개념에 가깝다고 볼 수 있습니다.
산업별 응용사례
HR(인사) 도메인
온톨로지 예시 클래스
Employee,Department,Role,Skill,Project,Training,PerformanceReview
관계 예시
Employee—[belongsTo]→DepartmentEmployee—[hasRole]→RoleEmployee—[hasSkill]→SkillEmployee—[participatedIn]→ProjectEmployee—[attended]→TrainingEmployee—[evaluatedBy]→PerformanceReview
활용 시나리오
- 인재 검색 / 내부 마켓플레이스
- “클라우드 인프라 경험이 있고, 금융권 프로젝트를 2회 이상 수행한
시니어 백엔드 개발자”를 찾고 싶을 때 - 온톨로지를 기반으로
- 스킬, 프로젝트 도메인, 역할, 경력 연차를 조합해 정확한 검색 가능
- “클라우드 인프라 경험이 있고, 금융권 프로젝트를 2회 이상 수행한
- 역량 갭 분석 & 교육 추천
- 특정 직무(Role)에 요구되는 스킬 세트 vs 직원이 보유한 스킬 세트 비교
- 부족한 스킬을 채우기 위한 교육(Training)을 자동 추천
- 조직 구조·협업 네트워크 분석
- 부서 간 협업 패턴, 프로젝트 참여 네트워크를 그래프 형태로 분석
- 이직/퇴사 리스크가 높은 핵심 인력 식별 등
이커머스 도메인
온톨로지 예시 클래스
Product,Category,Brand,Customer,Order,Cart,Review,Promotion
관계 예시
Product—[belongsToCategory]→CategoryProduct—[manufacturedBy]→BrandCustomer—[placed]→OrderOrder—[contains]→ProductCustomer—[wrote]→ReviewProduct—[eligibleFor]→Promotion
활용 시나리오
- 고급 추천 시스템
- 단순 “이 상품을 본 사람은 이런 상품도 봤어요” 수준을 넘어
- 고객의
- 선호 카테고리, 가격대, 브랜드, 스타일, 사용 목적 등
- 상품의
- 속성(색상, 소재, 기능), 카테고리 계층, 호환성 정보 등을
온톨로지로 구조화해,
“이 고객에게 왜 이 상품을 추천하는지” 설명 가능한 추천이 가능해집니다.
- 속성(색상, 소재, 기능), 카테고리 계층, 호환성 정보 등을
- 검색 품질 향상 (Semantic Search)
- “여름용 흰색 반팔 셔츠” 검색 시
- 계절=여름, 색상=화이트, 소매=반팔, 카테고리=셔츠
- “아이폰 15와 호환되는 무선 충전기”
- 디바이스 호환성(Compatibility) 관계를 온톨로지에 정의해
- 단순 텍스트 매칭이 아닌 의미 기반 검색 구현
- “여름용 흰색 반팔 셔츠” 검색 시
- 프로모션 최적화
- 특정 카테고리/브랜드/가격대/재고 상황에 따라
- 어떤 프로모션이 효과적인지 분석
- 온톨로지를 통해 상품·고객·이벤트를 통합적으로 분석 가능
- 특정 카테고리/브랜드/가격대/재고 상황에 따라
음악/영상 도메인
온톨로지 예시 클래스
Artist,Album,Track,Genre,Label,Playlist,User,WatchEvent/ListenEvent
관계 예시
Track—[performedBy]→ArtistTrack—[partOf]→AlbumTrack—[hasGenre]→GenreUser—[listenedTo]→TrackUser—[created]→PlaylistPlaylist—[contains]→Track
활용 시나리오
- 콘텐츠 추천 & 탐색
- “이 아티스트와 비슷한 분위기의 곡”
- BPM, 키, 장르, 참여 프로듀서, 가사 주제 등
- “이 영화와 비슷한 분위기의 작품”
- 감독, 출연 배우, 장르, 분위기 태그(Feel), 국가, 시대 배경 등
을 온톨로지로 구조화해,
단순 “같은 장르”를 넘어선 정교한 추천 가능
- 감독, 출연 배우, 장르, 분위기 태그(Feel), 국가, 시대 배경 등
- “이 아티스트와 비슷한 분위기의 곡”
- 저작권/라이선스 관리
- 곡/영상에 대한
- 저작권자, 퍼블리셔, 라이선스 유형, 사용 가능 영역(국가/매체), 기간 등을
온톨로지로 모델링하면
- 저작권자, 퍼블리셔, 라이선스 유형, 사용 가능 영역(국가/매체), 기간 등을
- “이 영상은 유튜브 광고에 사용 가능한가?” 같은 질의에
- 규칙+온톨로지 기반으로 자동 판단 가능
- 곡/영상에 대한
- 검색 & 요약
- “90년대 일본 애니메이션 스타일의, 여성 보컬이 부른 발라드 곡”
- “OST로 사용된 재즈풍 피아노 연주곡”
같은 복합 조건 검색에 온톨로지가 매우 유용합니다.
앞으로의 전망과 과제
전망
- LLM + 온톨로지 결합 가속 (Ontology RAG, Semantic Layer)
- LLM의 언어 이해/생성 능력 +
온톨로지의 구조화된 지식/추론 능력 결합이
기업용 AI의 핵심 아키텍처로 자리잡을 가능성이 큽니다.
- LLM의 언어 이해/생성 능력 +
- 엔터프라이즈 지식그래프의 표준화
- 대기업/기관들이 각자의 도메인 온톨로지를 구축하고,
이를 기반으로 데이터/AI 플랫폼을 통합하는 흐름이 강화될 것입니다. - 팔란티어, 마이크로소프트, 구글, SAP 등 주요 벤더들이
“세만틱 레이어”를 전면에 내세우는 것도 같은 맥락입니다.
- 대기업/기관들이 각자의 도메인 온톨로지를 구축하고,
- 산업별 레퍼런스 온톨로지 확산
- 의료, 금융, 제조, 물류, 공공 등에서
이미 다양한 표준/레퍼런스 온톨로지가 존재합니다. - HR, 이커머스, 콘텐츠 산업에서도
공통으로 쓸 수 있는 온톨로지 템플릿/표준이 점점 더 많이 등장할 것입니다.
- 의료, 금융, 제조, 물류, 공공 등에서
과제
- 구축 비용 & 전문성 부족
- 온톨로지는 “도메인 전문가 + 지식공학자 + 데이터 엔지니어”의 협업이 필요합니다.
- 초기에 모델링·정의·정렬(alignment)에 드는 비용과 시간이 적지 않습니다.
- 유지보수 & 변화 관리
- 비즈니스가 바뀌면 온톨로지도 바뀌어야 합니다.
- 버전 관리, 변경 영향 분석, 레거시 데이터와의 호환성 등 운영 이슈가 큽니다.
- LLM 시대의 역할 재정의
- “LLM이 다 해주는데 굳이 온톨로지가 필요할까?”라는 질문이 자주 나옵니다.
- 실제로는
- LLM은 유연하지만 불안정한 지식
- 온톨로지는 엄격하지만 안정적인 지식
을 제공하며, 둘의 하이브리드가 가장 강력합니다.
- 앞으로는 “온톨로지를 LLM이 도와서 만들고 유지하는” 방식도 점점 늘어날 것입니다.
마무리
정리하면, 온톨로지는:
- “데이터를 어떻게 저장할까?”가 아니라
- “세상을(도메인을) 어떻게 이해하고 설명할까?”에 대한 지식 모델이며,
- 클래스/속성/인스턴스 구조로
도메인의 개념과 관계를 명시적으로 표현합니다.
팔란티어 같은 플랫폼은 이 온톨로지를 기업 전체 데이터에 입혀 지식그래프를 만들고, 그 위에서 분석·운영·AI를 수행하는 대표적인 사례입니다.
LLM 시대에는 Graph RAG, Ontology RAG 같은 형태로 온톨로지가 다시 주목받고 있으며, HR, 이커머스, 음악/영상 등 거의 모든 산업에서 검색, 추천, 분석, 자동화의 “보이지 않는 뼈대” 역할을 하게 될 가능성이 큽니다.






답글 남기기