데이터 엔지니어링 위클리 #6 | Knowledge Graph, Data Observability, OpenTelemetry, OpenLineage

2025. 4. 8. 20:43데이터 엔지니어링 위클리

 


Articles


부동산 검색에서 지식 그래프 활용

이 글은 Zillow가 부동산 데이터를 구조화하고, 사용자 검색 경험을 개선하기 위해 Knowledge Graph(지식 그래프)를 어떻게 구축하고 활용하고 있는지를 설명하는 내용입니다. 다양한 데이터 출처를 연결해 사용자 맞춤형 검색, 자동완성, 추천 기능을 구현하는 방식과 기술적 구현 과정을 다룹니다.

  • 지식 그래프는 다양한 표현을 하나의 표준 개념으로 정리해 검색 일관성을 높여줍니다.
  • Zillow는 자연어 처리(NLP), 이미지 인식, BERT 기반 모델 등을 활용하여 데이터를 정제하고 연결합니다.
  • 사용자 행동 데이터를 분석해 더 정교한 추천과 검색 결과를 제공하며, 지속적인 업데이트와 버전 관리를 통해 품질을 유지합니다.

개요

인터넷 시대에는 정보가 넘쳐납니다. 하지만 넘쳐나는 정보를 어떻게 잘 정리하고, 필요한 사람들에게 쉽게 전달하느냐는 여전히 어려운 문제입니다. 이러한 문제를 해결하기 위한 도구 중 하나가 Knowledge Graph(지식 그래프)입니다. 지식 그래프는 정보를 단순히 저장하는 것이 아니라, 데이터 간의 관계를 구조화하여 저장함으로써 더 깊은 이해와 활용을 가능하게 해줍니다.

이 글에서는 Zillow가 어떻게 지식 그래프를 활용하여 방대한 부동산 데이터를 정리하고, 이를 통해 사용자 경험을 어떻게 개선하고 있는지에 대해 설명드리겠습니다.

Knowledge Graph란 무엇인가요?

지식 그래프는 다양한 개체(예: 장소, 사람, 속성 등)와 이들 사이의 관계를 구조화한 그래프 형태의 데이터 구조입니다. 일반적인 인터넷 검색에서 우리가 자주 접하는 정보 요약창이나, 자동 완성 추천 기능 등도 지식 그래프 기반의 기술입니다.

예를 들어, “New York”이라는 검색어를 입력하면 날씨, 인구, 위치, 관련 뉴스 등을 한 화면에서 확인할 수 있습니다. 이는 지식 그래프가 다양한 정보 출처를 연결해 하나의 맥락으로 통합해주기 때문입니다. 동일한 개념인 “NYC”를 검색하더라도 같은 정보를 제공할 수 있는 이유도 여기에 있습니다.

Zillow에서의 데이터 활용

Zillow는 부동산 관련 이미지, 설명, 속성, 지역 정보, 포인트 오브 인터레스트(POI) 등 다양한 데이터를 다룹니다. 뿐만 아니라, 블로그, 정의집, 가이드라인 등 도메인 지식도 보유하고 있습니다. 이처럼 다양한 형태의 데이터를 이해하고 정리하려면, 데이터를 구조화하고 연결하는 기술이 필수적입니다. 지식 그래프는 이러한 목적에 딱 맞는 도구입니다.

Zillow는 이러한 데이터를 통합적으로 관리하고 이해하기 위해 내부적으로 Content Understanding Platform이라는 플랫폼을 운영하고 있으며, 이 플랫폼이 지식 그래프 구축과 업데이트의 중추 역할을 하고 있습니다.

지식 그래프의 주요 활용 사례

검색 자동완성

Zillow의 지식 그래프는 사용자가 검색창에 입력할 때 적절한 자동완성 제안을 제공합니다. 예를 들어 “modern kitchen”이라고 입력하면, 관련된 부엌 스타일, 가전기기, 구조 등의 개념을 추천해줄 수 있습니다.

키워드 검색

사용자가 입력한 키워드를 정규화하여 관련 있는 매물들을 검색할 수 있도록 도와줍니다. 예를 들어 “heated pool”이나 “swimmingpool”처럼 다양한 표현이 있어도, 모두 “pool”이라는 하나의 정규 개념으로 연결해 검색 결과를 제공합니다.

자연어 검색 이해

Zillow는 자연어 검색을 지원합니다. “2 bedrooms near the beach”와 같은 문장을 이해하여 핵심 개념(침실 수, 위치 등)을 추출하고, 이에 맞는 매물을 추천할 수 있도록 합니다.

사용자 프로필 개선

사용자가 어떤 검색어를 입력하고 어떤 매물을 클릭하는지를 분석해, 관심 있는 속성을 파악하고 이를 기반으로 개인화된 추천을 강화합니다. 이때도 지식 그래프를 통해 각 개념이 어떤 속성과 연결되어 있는지를 활용합니다.

Zillow의 지식 그래프 구축 과정

데이터 수집 및 정제

  • Structured Data: MLS, 에이전트, 지역 정보, 사용자 활동 로그 등
  • Unstructured Data: 매물 설명 텍스트, 이미지, 플로어플랜, 스캔 이미지 등

정보 추출

  • 텍스트 분석: NLP 및 transformer 기반 모델을 이용해 매물 설명에서 핵심 속성(예: fireplace, hardwood floor 등)을 추출합니다.
  • 이미지 분석: 이미지 모델을 통해 장면(Scene)이나 품질, 특정 속성(예: swimming pool, open kitchen 등)을 인식합니다.
  • 자연어 검색 데이터: 사용자 쿼리나 외부 검색엔진 데이터를 분석해 다양한 표현을 학습합니다.

Ontology 정의

Ontology는 지식 그래프의 설계도입니다. 어떤 개념들이 있고, 그 개념들 간에 어떤 관계가 있는지를 정의합니다.

  • Home Concepts: 부동산에 관련된 주요 속성들 (예: architecture style, pool 등)
  • Base Forms: 다양한 형태로 나타나는 실체들을 기본 단위로 정리

개체 정규화 및 중복 제거

동일한 개념이 여러 방식으로 표현될 수 있습니다. 예: “swimmingpool”, “has_pool: True”, “pool” 등

  • 사전 기반 정규화: 미리 수집한 동의어 목록을 통해 빠르게 정규화
  • ML 기반 모델: BERT 모델을 사용해 새로운 표현도 정규 개념에 자동 연결

노드 간 연결

지식 그래프의 핵심은 관계입니다. 노드들을 연결해야 의미 있는 인사이트를 도출할 수 있습니다.

  • 구조화 데이터 기반 연결: 예: “dishwasher”가 “kitchen amenities”로 등록되어 있다면 둘을 연결
  • 링크 예측 모델: SBERT 기반의 임베딩 모델로 후보군을 좁힌 후, BERT 기반 분류 모델로 관계 유형(동의어, 상위/하위 개념 등)을 판별

이러한 과정을 통해 사용자의 쿼리를 보다 정확히 해석하고, 검색 결과를 풍부하게 만들어줍니다.

지속적인 업데이트와 버전 관리

지식 그래프는 한 번 만들고 끝나는 것이 아닙니다. 데이터가 계속 추가되거나 수정되므로 지속적인 업데이트와 버전 관리가 필요합니다.

  • Point-wise Updates: 특정 매물이나 속성에 대한 소규모 업데이트
  • Knowledge Base Updates: Ontology 변경, 관계 유형 추가 등 전체 시스템에 영향을 미치는 대규모 업데이트

Zillow는 이러한 변화를 추적하기 위해 시간 기반 버전 관리를 도입하였으며, 주요 변경 사항은 관련 팀과 공유하고, 일정 기간 동안 여러 버전을 병행 운영합니다.

결과 및 효과

Zillow는 지식 그래프를 통해 다양한 분야에서 눈에 띄는 성과를 거두었습니다.

  • 자연어 검색 기능의 도입
  • 키워드 검색 결과의 다양성 증가
  • 사용자 쿼리 이해도 향상
  • 추천 시스템의 정밀도 향상

A/B 테스트 결과에서도 사용자 경험의 향상이 입증되었으며, 앞으로도 지식 그래프를 확장하여 새로운 제품과 서비스를 출시할 계획입니다.

결론

지식 그래프는 단순한 데이터 저장 도구를 넘어, 데이터를 이해하고 연결하며, 사용자에게 더 정확하고 개인화된 경험을 제공하는 강력한 기술입니다. Zillow는 이러한 기술을 통해 부동산 데이터의 복잡성을 극복하고, 고객에게 더 나은 서비스를 제공하고 있습니다.

데이터가 풍부한 시대일수록, 그 데이터를 어떻게 구조화하고 활용하느냐가 경쟁력을 결정짓습니다. 지식 그래프는 그 핵심적인 도구로서, 앞으로도 다양한 분야에서 더 큰 역할을 하게 될 것입니다.

2025-04-01 00:00:00
Zillow
Leveraging Knowledge Graphs in Real Estate Search

OpenTelemetry와 OpenLineage를 통한 데이터 가시성 수용

이 글에서는 Trino 및 Starburst의 데이터 관찰 가능성을 향상시키기 위해 OpenTelemetry와 OpenLineage를 활용하는 방법에 대해 설명합니다. 이를 통해 데이터 생태계 내에서 시스템의 건강과 성능을 종합적으로 이해하고, 쿼리 성능 및 데이터 출처에 대한 깊이 있는 통찰을 제공하고자 합니다.

  • 데이터 관찰 가능성의 정의와 구성 요소를 설명합니다.
  • OpenTelemetry를 사용한 APM(애플리케이션 성능 모니터링) 및 OpenLineage를 통한 데이터 계보 탐색의 중요성을 강조합니다.
  • Trino 및 Starburst에서 이러한 도구를 활용하여 어떤 이점을 얻을 수 있는지를 논의합니다.

개요

현대의 데이터 플랫폼은 단순한 시스템 모니터링을 넘어서, 데이터 흐름과 성능에 대한 깊은 통찰이 요구되고 있습니다. 특히 Trino(또는 상용 버전인 Starburst)를 사용하는 환경에서는 쿼리 성능과 데이터의 이동 경로를 명확히 파악하는 것이 중요합니다. 이번 글에서는 OpenTelemetryOpenLineage를 활용하여 Elastic APMMarquez와 통합함으로써 Trino/Starburst의 관찰 가능성을 크게 향상시키는 방법을 소개합니다.

데이터 Observability란?

Data Observability(데이터 관찰 가능성)는 단순히 시스템이 "동작하는가"를 넘어, "어떻게", "왜", "무엇이 영향을 받았는가"를 분석할 수 있게 도와주는 개념입니다. 주요 구성 요소는 다음과 같습니다:

  • Metrics: 예) 쿼리 처리량, 지연 시간
  • Logs: 이벤트 발생 기록
  • Traces: 요청 흐름 추적 (OpenTelemetry 활용)
  • Lineage: 데이터 흐름, 변환, 의존성 추적 (OpenLineage 활용)
  • Quality & Discovery: 데이터 품질 및 구조 파악

OpenTelemetry와 Elastic APM을 활용한 트레이싱

왜 Trino/Starburst에서 Trace가 중요한가요?

  • 전체 요청 흐름 파악
  • 병목 구간 식별
  • 에러 진단
  • 성능 최적화

Elastic APM과 OpenTelemetry 연결

  1. Elastic Stack 구성: Kibana, APM Server 포함
  2. OTLP Endpoint 설정: 예) http://your-apm-server:8200
  3. Trino 설정:
    tracing.enabled=true
                      tracing.exporter.endpoint=http://your-apm-server:8200
  4. Helm 사용 시:
    additionalConfigProperties:
                        - tracing.enabled=true
                        - tracing.exporter.endpoint=http://your-apm-server:8200
  5. 재시작: 설정 반영을 위해 Trino 재시작 필요

OpenLineage와 Marquez를 활용한 데이터 라인리지 추적

왜 필요한가요?

  • 데이터 출처 및 생성 과정 파악
  • 문제 영향도 분석
  • 데이터 거버넌스 및 컴플라이언스 강화

Marquez 통합 설정

  1. Marquez 설치: 기본 API 포트 5000, UI는 3000
  2. 이벤트 리스너 설정:
    event-listener.name=openlineage
                      openlineage-event-listener.trino.uri=https://mytrino-coordinator:443/
                      openlineage-event-listener.trino.include-query-types=INSERT,MERGE,UPDATE
                      openlineage-event-listener.transport.url=http://marquez-app:5000
                      openlineage-event-listener.transport.endpoint=/api/v1/lineage
  3. config.properties에 등록:
    event-listener.config-files=etc/openlineage-event-listener.properties
  4. Helm 사용 시: config 파일 및 속성 등록
  5. 쿼리 실행 후 시각화: CREATE, INSERT 등으로 Lineage 생성

다른 도구들과의 비교

DataHubOpenMetadata도 OpenLineage를 지원하며, Marquez보다 더 포괄적인 데이터 메타데이터 플랫폼을 지향합니다.

APM과 Lineage의 통합 활용

  • 문제 발생 시 APM에서 성능 분석 & Marquez에서 데이터 영향 추적
  • 데이터 품질 문제의 원인을 End-to-End로 분석 가능
  • 전체 데이터 흐름과 쿼리 성능의 통합 가시성 확보

결론

Trino/Starburst 환경에서의 데이터 관찰 가능성 향상은 단순한 모니터링을 넘어서, 성능 최적화와 데이터 신뢰성 확보에 큰 도움이 됩니다. OpenTelemetry + Elastic APM, OpenLineage + Marquez의 조합은 오픈 표준 기반의 유연하고 확장 가능한 아키텍처를 구성할 수 있게 도와줍니다.

데이터 팀은 이제 단순히 "데이터가 있느냐"를 넘어서 "그 데이터가 어떻게 만들어졌고, 왜 문제가 발생했는가"까지 파악할 수 있어야 합니다. 이와 같은 통합적 관찰 가능성은 그러한 요구를 충족시켜 줄 수 있는 강력한 도구입니다.

2025-04-07 23:26:45
Data Engineer Things
Embracing Data Observability with OpenTelemetry and OpenLineage

AI 중심의 개발 및 기업 변화 요약

AI 기술의 발전은 소프트웨어 개발 방식과 기업 운영 구조 전반에 걸쳐 큰 변화를 이끌고 있습니다. 특히 agentic 코딩 도구와 vibe coding 같은 새로운 개발 방식, 기업 내 AI 통합 전략, 데이터 품질 관리 등 다양한 측면에서 AI가 중심 역할을 하고 있다는 점을 조명한 글입니다.

  • 최신 AI 코딩 도구는 단순한 자동완성을 넘어 코드 이해와 실행까지 수행할 수 있습니다.
  • vibe coding은 AI와 자연어로 느슨하게 소통하며 개발하는 새로운 트렌드지만, 한계와 책임 문제도 함께 대두되고 있습니다.
  • 기업들은 AI를 기반 인프라로 수용하고 있으며, 거버넌스와 QA 방식도 이에 맞춰 진화하고 있습니다.
  • Observability 도구는 AI 모델의 품질 문제를 모니터링하고 진단하는 데 필수적입니다.
  • AI 시대에도 데이터의 정확성과 품질은 가장 중요한 기반이며, 이를 위해 '데이터 제품'으로서의 접근이 확산되고 있습니다.

개요

최근 몇 년간 AI 기술은 눈부신 속도로 발전하고 있으며, 그 영향력은 단순한 도구를 넘어 소프트웨어 개발과 기업 운영 전반으로 확장되고 있습니다. 특히 AI 코딩 보조 도구의 진화와 함께 "vibe coding"이라는 새로운 개발 방식이 주목받고 있으며, 기업 차원에서는 AI가 인프라 수준으로 자리잡아가는 과도기를 겪고 있습니다. 이번 글에서는 AI의 다양한 활용과 함께 그로 인해 변화하는 개발 문화, 기업 구조, 그리고 기술적 대응에 대해 자세히 알아보겠습니다.

AI 코딩 보조 도구의 진화와 'vibe coding'

과거에는 AI 코딩 도구가 단순한 자동완성 수준에 머물렀지만, 최근에는 전체 코드베이스를 이해하고, 리팩토링하거나 심지어 명령 실행까지 가능한 수준으로 진화했습니다. 이러한 발전의 대표적인 사례는 Cursor, Cline, Windsurf와 같은 도구들로, 이들은 IDE에 통합된 'agentic coding assistant' 기능을 갖추고 있습니다.

여기서 주목할 개념이 바로 vibe coding입니다. 이는 개발자가 AI와 음성 혹은 채팅으로 느슨하게 소통하며 코드를 작성하는 방식으로, 빠르고 직관적인 작업에 적합하다는 점에서 각광받고 있습니다. 그러나 이 방식이 너무 부풀려지며, 일부 기업에서는 중요한 프로덕션 코드도 vibe coding만으로 작성한다는 주장을 하고 있어 논란이 되었습니다.

AI가 개발자의 100%를 대체할 수 있다는 주장에 대해 회의적인 시각도 많습니다. 실제 테스트에서는 Claude Code가 처음 시도에서 97%의 업무를 자동으로 처리했지만, 이후 시도에서는 전혀 기대에 못 미치는 결과를 보였습니다.

AI가 기업에 스며드는 방식: 'AI-ification of the enterprise'

AI는 이제 단순한 자동화 도구를 넘어, 기업의 의사결정, 리스크 관리, 고객 커뮤니케이션 등 핵심 업무 프로세스를 변화시키고 있습니다. 이러한 변화는 갑작스럽게 몰려오는 물결보다는 천천히 밀려오는 '조수'처럼, 점진적이고 지속적으로 나타나고 있습니다.

또한 각 팀이 검증 절차 없이 다양한 AI 도구를 자체적으로 사용하는 ‘AI as shadow IT’ 문제도 대두되고 있으며, 이를 해결하기 위해 가벼운 레지스트리나 정책 프레임워크를 도입하는 기업도 늘고 있습니다.

조직 구조의 변화: 역할의 재정의

AI의 확산은 기업 내부의 역할, 책임, 권한 구조에도 큰 변화를 일으키고 있습니다. 단순히 일을 빠르게 처리하는 것을 넘어서, 누가 어떤 결정을 내리며 신뢰와 권한은 어떻게 분배되는가에 대한 본질적인 질문이 제기되고 있습니다.

개발자와 디자이너들도 "우리는 사람을 위해 제품을 만드는가, 아니면 AI를 위한 시스템을 구축하는가?"라는 질문을 다시금 던지고 있습니다.

AI 시대의 Observability: 복잡성을 통제하는 도구

복잡한 분산 시스템과 AI의 결합은 Observability의 필요성을 더욱 높이고 있습니다. OpenTelemetry는 이러한 문제를 해결할 수 있는 중요한 도구로 부상하고 있으며, Alloy, Tempo, Loki와 같은 다양한 도구와 함께 사용되고 있습니다.

AI 관련 Observability 도구로는 Arize Phoenix, Helicone, Humanloop 등이 있으며, 이들은 LLM의 호출을 추적하고 문제를 진단하는 데 도움을 줍니다.

AI 외의 진보: 전통 소프트웨어 개발의 진화

AI가 주목받고 있지만, 기존 개발 도구들도 진화하고 있습니다. 특히 CLI(Command Line Interface)는 여전히 속도와 제어 측면에서 많은 개발자에게 사랑받고 있으며, uv, MarkItDown과 같은 새로운 CLI 도구들이 등장하고 있습니다.

또한 Gleam과 같은 새로운 언어와, 기존 언어인 Swift의 새로운 확장도 주목할 만합니다.

데이터 품질과 기본기: AI 시대의 토대

AI의 성능은 결국 데이터 품질에 의존합니다. RAG(Retrieval-Augmented Generation) 기법은 정확한 맥락 검색을 통해 모델의 성능을 끌어올리는 방식으로 주목받고 있으며, 관련성, 추적 가능성, 설명 가능성 개선을 위한 연구가 활발하게 이루어지고 있습니다.

데이터는 이제 Data Product로 다뤄지고 있으며, Data Mesh 개념과 연결되어 각 팀이 책임 있는 데이터 관리자로서 활동하게 됩니다.

결론

AI는 단순한 유행이 아닌, 개발 문화와 기업 운영의 방식을 근본적으로 바꾸는 힘이 되고 있습니다. 그러나 진정한 변화는 도구 자체보다 그 도구를 사용하는 방식에서 나옵니다.

앞으로의 소프트웨어는 AI만으로 만들어지지 않습니다. 기본을 지키면서도 혁신을 받아들이는 팀이야말로 미래의 주인공이 될 것입니다.

2025-04-02 00:00:00
thoughtworks
Macro trends in the tech industry | April 2025

Jobs


원티드 채용공고(최근 7일)


주요 업무(최근 7일)


필요한 기술(최근 7일)


필요한 경험(최근 7일)


필요한 소프트 스킬(최근 7일)

반응형