728x90
반응형

애플리케이션 설계를 시작할 때, 데이터를 모델링하는 첫 방식은 최종 모델과 거의 비슷하지 않은 경우가 많아요. 보통 모델은 데이터를 더 잘 이해하고, 비즈니스에서 데이터에 대해 다른 질문을 던지면서 바뀌게 되죠.

데이터베이스가 관계를 처리하도록 만들어지지 않았다면, 애플리케이션을 구축하고 변화에 대응하는 게 복잡해져요. 이 점이 제가 "데이터 모델 문제"라고 부르는 것을 잘 보여주는데요. 물리적 모델(실제로 데이터를 저장하는 방식)이 개념적 모델(데이터에 대해 자연스럽게 생각하고 말하는 방식)과 잘 맞지 않는다는 거죠. 예를 들어, 관계형 데이터베이스로 작업할 때, 관계형 데이터베이스는 (아이러니하게도) 실제로 관계를 저장하지 않기 때문에 Foreign Key와 JOIN 테이블을 사용해서 모든 관계를 모델링해야 해요.

개념적 모델과 실제 모델 간의 이러한 차이 때문에 데이터를 사용하기가 더 어려워져요. 관계와 비즈니스 규칙은 엔지니어와 개발자가 작성한 SQL 쿼리 및 기타 코드에 숨어있게 되죠. Knowledge Graph와 Graph Database는 물리적 모델 자체에서 관계와 비즈니스 규칙을 명시적으로 포착해서 이 딜레마를 해결해요. 관계는 Graph Database의 데이터 구조 안에 존재하죠.

이 가이드에서 다룰 내용은:

  • Knowledge Graph란 무엇일까요?
  • 1단계: Knowledge Graph Use Case 정의
  •  
  • RDF Triple Store
  •  
  •  
  • Graph Data Model 생성
  •  
  • 구성 원칙 적용
  •  
  • 5단계: Knowledge Graph에 데이터 수집
  •  
  • 간단한 Query 테스트
  •  
  • Knowledge Graph 최적화
  •  
  •  
  • Knowledge Graph를 발전시키세요
  •  
  • 미래를 위한 계획
  •  
  •  
  • AI Knowledge Graph에 대한 무료 Gartner® 보고서를 읽어보세요.
  •  

Knowledge Graph란 무엇일까요?

Knowledge Graph는 상호 관련된 데이터 개체와 의미 관계를 구성하는 디자인 패턴이에요. 데이터를 추론하고 통찰력을 보여주는 데 사용되죠.지식.

Knowledge Graph를 지원하는 데이터 계층으로 생각할 수 있어요. 광범위한 엔터프라이즈 use case에 활용될 수 있죠. 이는 모든 유형의 데이터 저장소와 통합되며 일반적으로 조직에서 고도로 연결된 데이터를 관리하는 방법이 필요할 때 작동한답니다.

관계형 데이터베이스에도 용도가 있지만, Knowledge Graph는 관계와 관련된 use case에 훨씬 더 적합해요. 우리의 세계(따라서 데이터)가 점점 더 연결됨에 따라 이러한 use case가 점점 일반화되고 있죠. 일반적으로 Graph Database를 기반으로 구축된 Knowledge Graph는 관계에 최적화된 유연한 데이터 구조를 가지고 있어요.

Knowledge Graph에는 세 가지 주요 구성 요소가 있어요. 바로 Nodes(데이터 엔터티), Relationships(Nodes 간의 관계), 그리고 구성 원칙이죠. 여기서 는 use case에 중요한 범주, 계층 또는 기타 원칙으로 개념적으로 데이터를 구성하는 방식을 나타낸답니다.

Knowledge Graph는 관계를 데이터의 필수 구성 요소로 처리하여 데이터 모델링 문제를 해결해요. Relationships는 JOIN과 같은 코드로 재구성되지 않고 Graph Database에 기본적으로 캡처되죠.

1단계: Knowledge Graph Use Case 정의

구현을 시작하기 전에 Knowledge Graph로 어떤 문제를 해결할 것인지 명확하게 정의해야 해요. Knowledge Graph는 관계형 모델에서 복잡한 Queries와 빈번한 변경이 필요한 복잡한 데이터를 구성하고 Query하는 데 탁월하죠. 가장 일반적인 Knowledge Graph use case 중 일부는 추천 엔진, 사기 탐지 시스템, 공급망 추적, GraphRAG(기업 검색용, a 생성 AI 사용법), 그리고 마스터 데이터 관리 등이 있어요.

전체 도메인을 미리 모델링하기보다는 집중된 시작점을 선택하는 게 좋아요. 예를 들어 고객 데이터에 대한 엔터티 확인 시스템을 구축하는 경우, 기본 고객 식별자와 관계(이메일, 전화, 주소)를 모델링한 후 거래 내역, 장치 ID 및 소셜 연결을 포함하도록 확장할 수 있죠. 이렇게 하면 모델을 확장하기 전에 관리 가능한 범위로 접근 방식을 검증할 수 있답니다.

Knowledge Graph는 정말 다양한 도메인에 적용할 수 있어요. 특히 Knowledge Graph에서 분석할 때 숨겨진 통찰력을 얻을 수 있는 엄청난 양의 데이터와 관련된 예시들을 좋아하는데요.

  • NASA는 수십 년간의 프로젝트 데이터를 "Lessons Learned Database"라는 Knowledge Graph로 연결했어요. 이 Knowledge Graph는 NASA 엔지니어들이 트렌드를 파악하고 학습 내용을 적용해서 과거의 실수를 반복하지 않도록 도와줬고, 화성 임무에서 2백만 달러 이상을 절약하는 데 기여했답니다.
  • 시스코는 2천만 개의 내부 문서를 쉽게 검색할 수 있도록 메타데이터 기반 Knowledge Graph를 만들었어요. 이 Knowledge Graph는 정확하고 상황에 맞는 콘텐츠 추천을 제공해서 Cisco가 고객과의 거래를 더 빠르게 성사시키고 검색 시간을 절반으로 단축하며 연간 4백만 작업 시간 이상을 절약할 수 있도록 도왔죠.
  • 노바티스는 유전자, 질병, 화합물 간의 관계를 보여주는 생물학적 Knowledge Graph를 구축했어요. 표현형, 역사적, 의학 연구 데이터를 통합함으로써 노바티스 연구원들은 생물학적 시스템의 숨겨진 관계를 식별해서 약물 개발 일정을 가속화할 수 있었답니다.

2단계: 데이터베이스 관리 시스템 선택 (Triple Store vs. Property Graph)

어떤 데이터베이스 관리 시스템(DBMS)을 선택하느냐에 따라 Knowledge Graph를 모델링하고, Query하고, 확장하는 방법이 결정돼요. Knowledge Graph를 효과적으로 지원하는 DBMS를 사용하면 사용 사례를 잘 처리하고 비즈니스 요구 사항에 맞춰 확장할 수 있죠.

Triple Store 및 Property Graph Database는 Knowledge Graph를 구축하기 위한 두 가지 선택지예요. Property Graph는 Knowledge Graph를 구축하는 데 널리 사용되고 유연한 옵션이지만, Triple Store (때로는 "RDF Database"라고도 함)에 대해서도 들어보셨을 거예요.

RDF Triple Store

'Triple Store'라고도 불리는 RDF(Resource Description Framework) Database는 데이터를 주어-술어-객체 Triple로 구성해요. 원래 Semantic Web용으로 설계된 Triple Store는 온톨로지 관리 및 메타데이터 표현에 여전히 유용하죠. 하지만 견고한 구조 때문에 고도로 연결된 데이터를 모델링하는 데 어려움이 있을 수 있어요.

이를 설명하기 위해 두 엔터티 사이에 새로운 Relationship을 추가하고, 그 Relationship을 설명하는 몇 가지 Properties를 추가한다고 가정해 볼게요. Triple Store는 모든 데이터를 3개의 그룹(Triple)으로 구성하기 때문에 새로운 Relationship을 추가하면 새로운 Triple(3개의 새로운 엔터티로 구성된 단위)이 생성되고, 각 Relationship의 Properties도 또 다른 Triple로 표시돼요. 이 과정을 구체화라고 부른답니다.

Triple Store에서 고도로 연결된 데이터 세트로 작업하는 건 정말 빠르게 복잡해질 수 있어요. 데이터 세트는 엄청나게 많은 Triple로 늘어나면서 불필요한 복잡성(및 중복성)을 야기하죠.

Property Graph 모델은 기본적으로 데이터 Relationship을 지원하기 때문에 (구체화가 필요 없음) 모델링이 더 쉽고 직관적이에요.

 

Property Graph Database는 데이터를 Node(또는 엔터티), Edge(해당 엔터티 간의 Relationship) 및 Property(지정된 Node 또는 Relationship에 대한 추가 정보 또는 설명)로 나타내요.

Graph Database는 데이터를 정해진 데이터 구조 없이 객체들의 네트워크로 표현해요. 데이터 모델은 선택한 형식을 따르죠. 예를 들어 데이터 모델의 한 부분에는 엔터티 간에 여러 Relationship이 있을 수 있고, 데이터 모델의 다른 섹션에는 하나가 있거나 없을 수도 있어요. 데이터 엔터티 간의 Relationship은 관계형 Database에서처럼 테이블을 Join하는 데 사용되는 코드가 아니라 Database 자체에 존재해요. 또한 (Triple Store와 달리) 추가 엔터티로 데이터 모델을 복잡하게 만들지 않고도 언제든지 새로운 Relationship을 생성하거나 새로운 데이터 세트를 추가할 수 있답니다.

자신과 남동생이 모두 운전하는 자동차를 소유한 자매의 간단한 예를 살펴보면 트리플 스토어(왼쪽)와 Property Graph 모델(오른쪽)의 차이점을 확인할 수 있어요.

트리플 스토어 대 속성 그래프

Property Graph 모델에서는 엔터티 간에 여러 관계가 존재할 수 있어요. 스키마를 변경하지 않고도 언제든지 관계나 Node를 추가할 수 있다는 점! 아래 단계에서는 데이터세트에서 그래프 데이터 모델을 구축하는 방법을 알아볼게요.

3단계: Knowledge Graph 모델링

그래프 데이터 모델링은 데이터를 Node와 관계로 표현하는 방법에 대한 것이에요. 그래프 구조를 디자인할 때 도메인을 표현하는 가장 좋은 방법을 고민하게 되죠.

다음에서 무료 Graph Database 인스턴스를 생성할 수 있어요. Neo4j AuraDB에서 간단히 계정을 개설하고 "인스턴스 생성" 버튼을 클릭하세요. 그런 다음 데이터 가져오기 도구로 이동하여 그래프 데이터 모델을 스케치하면 돼요.

그래프 데이터 모델 생성

그래프 데이터 모델을 개발하려면 주요 엔터티(Node)와 이들 간의 관계를 식별해야 해요. 도메인을 분석하고 애플리케이션이 대답해야 하는 특정 질문을 정의하는 것부터 시작하죠. From there, you’ll determine the essential Node는 고객, 제품, 거래 등 데이터세트의 주요 개체를 나타내요. Node에는 하나 이상의 Label이 있는데, Node의 목적, 역할 또는 유형을 정의하는 역할을 해요.

다음으로 정의할 것은 관계 (Relationship)에요. 엔터티가 상호 작용하는 방식을 캡처하는 Node 간의 연결이죠. 구매한 (Purchased), 다음 (Follows), 주문했고 (Ordered), or ~에 속하다 (Belongs to) 와 같은 관계들이요. 

그 다음엔 properties를 추가할 수 있어요. 각 Node와 Relationship에 대한 자세한 정보를 담는 거죠. 예를 들어 "Person" Node에는 "first_name"이나 "last_name" 같은 properties가 있을 수 있고, 'PLACED_ORDER' Relationship에는 'purchase_date' 같은 property가 있을 수 있겠죠.

Graph 데이터 모델링을 배우고 싶다면, 2시간짜리 무료 자가 학습 과정인 그래프 데이터 모델링 기초를 추천드려요.

구성 원칙 적용

구성 원칙은 주요 비즈니스 개념이나 규칙을 그래프에 직접 넣어서 Knowledge Graph의 프레임워크를 만드는 거예요. Knowledge Graph가 통찰력을 제공할 수 있도록 데이터를 구성하는 유연하고 개념적인 구조라고 생각하면 돼요.

구성 원칙은 제품 분류처럼 간단할 수도 있어요. 예를 들어 항목을 카테고리(스낵, 과일, 신선 식품, 생선 등)나 계층 구조(사과 -> 과일 -> 식품)로 묶을 수 있죠.

더 복잡하게는 온톨로지처럼 데이터를 의미 네트워크에 체계적으로 매핑하는 방법도 있어요. 온톨로지는 데이터가 구성, 분류, 해석되는 방식을 표준화해서 애플리케이션과 시스템 전체에서 일관성을 유지하도록 도와주죠.

온톨로지는 강력하지만 복잡하고, 설계하고 구현하는 데 상당한 노력이 필요해요. 대부분의 프로젝트에서는 더 간단한 구성 원칙을 사용하고, 온톨로지는 정말 필요할 때를 위해 남겨두는 게 좋을 수 있어요.

4단계: 수집을 위한 데이터 준비

이제 데이터 구조를 모델링했으니, Knowledge Graph를 채울 데이터를 준비할 차례에요.

 

먼저 사용 사례와 관련된 데이터 세트를 찾아봐야겠죠? 여기에는 구조화된 데이터(예: 테이블, 스프레드시트), 반구조화된 데이터(예: JSON, XML 파일), 그리고 구조화되지 않은 데이터(텍스트 문서, 이메일, 로그 등)가 있을 수 있어요. 예를 들어, 전자상거래 그래프라면 고객 기록, 거래 내역, 제품 카탈로그 등이 포함될 수 있겠죠.

 

원시 데이터는 불일치, 오류, 누락된 값을 포함할 수 있어요. Knowledge Graph에 데이터를 로드하기 전에 데이터를 정리하는 과정이 꼭 필요해요. 데이터 준비 작업에는 이런 것들이 포함될 수 있답니다.

  • 형식 표준화: 날짜, 숫자 값, 텍스트 필드가 모든 데이터세트에서 일관적인지 확인해야 해요.
  • 중복 제거: 동일한 고객 또는 제품에 대한 여러 항목처럼 중복된 기록을 찾아서 병합해야 해요. 그래프 데이터 모델은 엔터티 해결에 도움을 줄 수 있는데, Knowledge Graph를 만들기 전에 이 단계를 효율적으로 진행할 수 있도록 도와주죠.
  • 누락된 값 처리: 값을 대체하거나, 불완전한 레코드를 제거하거나, 수동 수정을 위해 플래그를 지정하는 등 불완전한 데이터를 어떻게 처리할지 결정해야 해요.
  • 오류 수정: 잘못된 철자, 유효하지 않은 ID, 기타 불일치 등의 부정확성을 찾아서 수정해야 해요.

5단계: Knowledge Graph에 데이터 수집

이제 그래프 데이터 모델을 정의했으니, 데이터를 Graph Database 인스턴스로 수집할 차례에요. '데이터 서비스'에서 '가져오기'를 선택한 다음 첫 번째 데이터 소스를 연결해 보세요. CSV 파일을 데이터 가져오기 서비스로 업로드하거나 드래그해서 데이터 소스의 요소를 그래프의 Node, Property, Relationship에 매핑할 수 있어요.

이 과정은 반복적일 수 있지만, 각 요소(그래프 데이터 모델의 Node 및 Relationship)를 데이터세트에 매핑하는 게 중요해요. 각 요소가 정의되면 Aura Workspace는 녹색 확인 표시를 보여줘서 Node 또는 Relationship에 대한 필드가 채워졌음을 알려준답니다.

수집할 때는 작은 샘플부터 시작해서 그래프 구조와 데이터 매핑을 검증하는 게 좋아요. 확인이 끝나면 전체 데이터 세트를 수집하도록 확장하면 되죠. 모든 관련 데이터세트가 올바르게 수집되었는지 확인하고, 그래프의 Node, Relationship, Property, 구성 원칙을 확인해서 그래프 데이터 모델에 올바르게 매핑되었는지 확인하세요.

축하해요! 이제 여러분은 Knowledge Graph를 갖게 되었어요!

6단계: 지식 정보 테스트

Knowledge Graph를 구축하는 건 중요한 단계이지만, 사용 사례에서 답변해야 하는 질문에 제대로 답할 수 있는지 확인될 때까지는 끝난 게 아니에요.

Knowledge Graph를 테스트하면 개선이 필요한 부분을 찾고 최적화할 수 있어요. 이 반복적인 과정을 통해 Knowledge Graph가 사용 사례를 잘 지원하고 효율적으로 작동하는지 확인할 수 있답니다.

간단한 Query 테스트

Query를 실행해서 Knowledge Graph가 비즈니스 질문에 답할 수 있는지 확인해 보세요. 이러한 Query는 그래프가 실행 가능한 통찰력을 제공하고 1단계에서 정의한 목표를 충족하는지 검증해야 해요.

예를 들어, 전자상거래 Knowledge Graph에서는 다음과 같은 간단한 Query로 시작할 수 있어요.

  • 특정 고객이 어떤 제품을 구매했나요?
  • 판매량이 가장 높은 제품 카테고리는 무엇인가요?
  • 특정 기간 동안 특정 제품 카테고리의 총 판매량은 얼마인가요?

그런 다음 다음과 같은 고급 Query로 넘어갈 수 있겠죠.

  • 함께 자주 구매하는 상품은 무엇인가요?
  • 유사한 구매 이력을 가진 다른 고객을 기반으로 고객에게 어떤 제품을 추천해야 할까요?
  • 반복 구매를 유도하고 판매를 늘리기 위해 번들로 판매할 수 있는 제품 조합은 무엇일까요?

기본 Cypher Query를 사용하는 방법을 배우고 싶다면, 다음을 무료로 다운로드하세요. 개발자 가이드: Knowledge Graph 구축 방법. 

지식 그래프 최적화

Knowledge Graph가 의미 있거나 기대되는 결과를 제공하지 못하는 경우, 기초를 다시 살펴봐야 할 수도 있어요.

  • Knowledge Graph 모델 검토 (3단계): 모델이 실제로 여러분의 도메인을 잘 나타내고 있는지 평가해보세요. Node, Relationship, 속성, 또는 구성 원칙을 정의하는 더 좋은 방법은 없을까요?
  • 결측 데이터 식별 (4단계): 데이터 준비 또는 수집 중에 제외된 데이터 세트가 있는지 확인하거나, 더 나은 통찰력을 얻기 위해 Knowledge Graph에 추가 데이터 세트가 필요한지 확인해보세요.
  • 데이터 검증 (5단계): 수집 과정에서 Node, Relationship, 속성이 올바르게 변환되었는지 확인하고, 도메인을 정확하게 나타내는지 확인하세요. 예를 들어 "고객"이 올바른 "주문"에 연결되어 있는지, 또는 "제품" Node에 연결된 전체 속성이 있는지 확인하는 거죠.

7단계: Knowledge Graph 유지 및 발전

새로운 데이터와 비즈니스 요구 사항에 맞춰 Knowledge Graph를 조정할 수 있어요. 이렇게 하면 Knowledge Graph는 시간이 지나면서 발생하는 불가피한 변화에 적응하며 진화하게 돼요.

Knowledge Graph를 발전시키세요

도메인 변경에 따라 Knowledge Graph를 조정해야 해요.

  • 새 데이터 소스 추가: 고객 리뷰와 같은 데이터 세트를 통합해서 통찰력을 강화할 수 있어요.
  • 사용 사례 확장: 전자상거래 그래프에 공급업체 네트워크를 통합하는 등, 새로운 비즈니스 요구 사항을 지원하도록 그래프를 확장하는 거죠.
  • 모델 개선: 이해가 깊어짐에 따라 Relationship과 개념이 구조화되는 방식을 지속적으로 개선하세요.

미래를 위한 계획

Knowledge Graph는 비즈니스와 함께 성장해야 해요. 다음과 같은 모범 사례를 적용해서 확장성과 효율성을 유지할 수 있죠.

  • : 도구를 사용해서 데이터 수집, 검증, 업데이트를 간소화하세요.
  • 쿼리 성능 모니터링: 복잡성이 증가함에 따라 Query 실행을 정기적으로 평가하고 최적화해야 해요.
  • : 인프라가 더 큰 데이터 세트와 진화하는 비즈니스 요구 사항을 지원할 수 있는지 확인하세요.

Knowledge Graph를 유지하면 비즈니스가 성장함에 따라 정확한 통찰력을 계속 제공할 수 있어요.

결론: Knowledge Graph를 구축하는 이유는 무엇일까요?

전통적인 데이터베이스는 풍부한 Relationship을 견고한 구조로 단순화하는 반면, Knowledge Graph를 사용하면 데이터를 우리가 자연스럽게 생각하는 방식, 즉 엔터티 네트워크로 표현할 수 있어요.

NASA 및 Cisco와 같은 조직은 Knowledge Graph를 사용해서 고도로 연결된 데이터에서 통찰력을 얻고 있어요. 이는 기존 관계형 시스템에서는 감지하기 어려운 통찰력이죠. Knowledge Graph의 일반적인 사용 사례에는 추천 엔진 구축, 사기 탐지 시스템 개발, 기업 검색을 위한 GraphRAG 사용 등이 있어요.

이제 막 시작했다면, 중점 사용 사례로 시작하고 개념 증명을 위해 위 단계를 따르는 것이 가장 좋아요. 그런 다음 요구 사항과 데이터 세트가 변경됨에 따라 그래프가 발전하도록 하세요. 첫 번째 구현이 완벽할 필요는 없어요. 단지 유용하기만 하면 되죠. 경험을 쌓고 Knowledge Graph가 성숙해지면 연결된 데이터에서 계속해서 통찰력을 찾을 수 있을 거예요.

Knowledge Graph 개념 증명을 구축하려면 무료 사본을 받으세요. 개발자 가이드: Knowledge Graph 구축 방법. Northwind 데이터 세트를 사용한 Knowledge Graph 구현에 대한 자세한 연습을 따라하게 될 거예요.


에이치시스템즈LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.

👉 에이치시스템즈 홈페이지

728x90
반응형

+ Recent posts