15

"이 사람들... 같은 사람인가요?" - 데이터 통합의 악몽

Day 1: Entity Resolution 개론

학습 목표

Entity Resolution이 실무에서 왜 필요한지 이해한다 데이터 품질 문제의 심각성을 파악한다

"고객 데이터베이스 3개를 합쳐주세요"

월요일 아침. CDO(Chief Data Officer)가 긴급 미팅을 잡았다.

"우리 회사가 두 회사를 인수했어요. 고객 데이터베이스 3개를 하나로 합쳐야 합니다. 중복 없이, 정확하게."


데이터를 열어보니...

System A (본사)

에디터 로딩 중...

System B (인수회사 1)

에디터 로딩 중...

System C (인수회사 2)

에디터 로딩 중...

이 세 레코드는 같은 사람일까?


사람은 알지만, 컴퓨터는 모른다

필드System ASystem BSystem C
이름김철수Kim, Chul-Soo김 철수
전화010-1234-5678+82-10-1234-567801012345678
이메일chulsoo.kimchulsoo_kimNULL
주소서울시 강남구...서울 강남구...강남구...

정확히 일치하는 필드가 하나도 없다!

하지만 우리 눈에는 분명히 같은 사람이다.


이것이 Entity Resolution

Entity Resolution (개체 해결)

서로 다른 데이터 소스에서 동일한 실체(Entity)를 식별하고 연결하는 과정

에디터 로딩 중...

왜 어려운가?

1. 데이터 품질 문제

  • 오타: "삼성전자" vs "상성전자"
  • 약어: "주식회사" vs "(주)" vs "Inc."
  • 형식 차이: "010-1234-5678" vs "01012345678"

2. 스키마 차이

  • 필드명: "name" vs "full_name" vs "customer_name"
  • 구조: "first_name + last_name" vs "name"

3. 불완전한 데이터

  • NULL 값
  • 부분 정보만 존재

4. 규모 문제

  • 고객 100만 명 x 100만 명 = 1조 번 비교?

오늘 배울 것

  1. Entity Resolution 문제 유형 - 언제 필요한가?
  2. ER 파이프라인 - 어떻게 해결하는가?
  3. 문자열 유사도 - 비슷한 정도를 어떻게 측정하는가?
  4. Python recordlinkage - 실제로 구현해보기

CDO의 요청을 해결해보자.