파이썬 수집 엔진으로 데이터를 긁어오고(1단계), pandas를 통해 전사 마스터 데이터(MDM) 기준에 맞춰 정제(2단계)하는 데 성공하셨다면 데이터 파이프라인의 8할은 완성된 것입니다. 하지만 실제 엔터프라이즈 환경에서 데이터 엔지니어들을 가장 괴롭히는 숨겨진 적은 바로 ‘중복(Duplication)’입니다.
조달청 나라장터(G2B)와 자체 조달 시스템을 병행하는 발주처의 경우, 동일한 입찰 건을 양쪽에 이중으로 올리는 경우가 빈번합니다. 더 큰 문제는 띄어쓰기 하나, 특수문자 하나만 달라져도 일반적인 시스템은 이를 ‘새로운 공고’로 인식한다는 점입니다. 본 문서에서는 파이썬의 퍼지 매칭(Fuzzy Matching) 알고리즘을 도입하여, 완벽히 일치하지 않는 중복 데이터를 지능적으로 병합하고 ‘단일 진실 공급원(SSOT)’을 지켜내는 실무 기법을 심층 분석합니다.
1. 단순 중복 제거(Drop Duplicates)의 치명적 한계
초보 데이터 분석가들은 파이썬 pandas 라이브러리의 drop_duplicates() 함수만 믿고 중복 제거가 끝났다고 착각합니다.
- 기계적 일치의 함정: 이 함수는 텍스트가 ‘100%’ 일치할 때만 작동합니다. 예를 들어 ‘하남시 도로 건설 공사’와 ‘하남시 도로건설공사’는 사람의 눈에는 완벽히 같은 공고지만, 컴퓨터는 띄어쓰기가 다르다는 이유로 두 개의 개별 데이터로 적재합니다.
- 이러한 ‘가짜 신규 공고’들이 데이터베이스에 쌓이게 되면, 입찰 통계가 과대 계상(Overestimation)되어 경영진의 의사결정을 심각하게 왜곡하는 치명적인 결과를 낳습니다.
2. 퍼지 매칭(Fuzzy Matching)이란 무엇인가요?
퍼지 매칭(Fuzzy Matching)이란 두 텍스트가 100% 일치하지 않더라도, 문자열 간의 유사도(Similarity)를 수학적으로 계산하여 같은 의미를 지닌 데이터인지 확률적으로 판별해 내는 알고리즘 기법을 의미합니다.
데이터 거버넌스 실무에서는 오탈자, 띄어쓰기, 접두사/접미사 차이로 인해 발생하는 마스터 데이터의 중복을 걸러내기 위해 이 퍼지 매칭 기술을 핵심 교정 도구로 활용합니다.
3. Python ‘thefuzz’ 라이브러리와 레벤슈타인 거리 알고리즘
파이썬 환경에서 퍼지 매칭을 구현할 때 가장 강력한 무기는 thefuzz(구 fuzzywuzzy) 라이브러리입니다. 이 라이브러리는 내부적으로 ‘레벤슈타인 거리(Levenshtein Distance)’라는 알고리즘을 사용합니다.
- 작동 원리: 하나의 문자열을 다른 문자열로 바꾸기 위해 문자를 ‘삽입’, ‘삭제’, ‘대체’해야 하는 최소 횟수를 계산합니다. 두 문자열이 비슷할수록 이 거리는 짧아지며, 0에서 100 사이의 ‘유사도 점수(Score)’로 반환됩니다.
- 실전 코드 적용:
fuzz.token_sort_ratio('하남시 도로 공사', '도로공사 하남시')함수를 사용하면, 단어의 순서가 뒤바뀌어 있더라도 100점에 가까운 높은 유사도를 도출해 냅니다. - [실무 트러블슈팅]: 수만 건의 공고를 1:1로 전부 비교(카테시안 곱, Cartesian Product)하면 서버의 메모리가 폭발(OOM)합니다. 따라서 먼저 ‘발주처’와 ‘기초금액’이 동일한 데이터들끼리만 그룹(Blocking)을 묶은 뒤, 그 좁은 그룹 안에서만 퍼지 매칭을 돌려 연산량을 기하급수적으로 줄이는 최적화 설계가 필수적입니다.
4. 결론: 골든 레코드(Golden Record) 병합과 SSOT 완성
퍼지 매칭을 통해 90점 이상의 유사도를 보여 ‘중복’으로 판별된 데이터들은 무작정 하나를 삭제해서는 안 됩니다.
데이터 거버넌스 원칙에 따라, 두 공고 중 더 최신 업데이트 날짜를 가졌거나 첨부파일 등의 부가 정보가 더 풍부한 행(Row)을 ‘골든 레코드(Golden Record)’로 선정하고, 나머지 데이터의 유용한 속성을 끌어와 하나로 ‘병합(Merge)’해야 합니다.
이로써 파이썬을 활용한 공공입찰 데이터 수집(1단계), 정제(2단계), 중복 제거(3단계)라는 완벽한 파이프라인이 완성되었습니다. 다음 포스팅에서는 이 똑똑한 수집 봇을 365일 24시간 무인으로 가동하기 위한 ‘작업 스케줄링(Scheduling) 및 무중단 모니터링 아키텍처’ 실무로 미니 시리즈의 대미를 장식하겠습니다.