← κ°€μ΄λ“œ λͺ©λ‘μœΌλ‘œ λŒμ•„κ°€κΈ°
기술 및 개발

πŸ”¬ λ¦¬μΉ˜λ‘œλ“œ 데이터 μ •μ œ 및 μ‹œκ°ν™” 방법둠

μž‘μ„±μž: λ¦¬μΉ˜λ‘œλ“œ κ°œλ°œνŒ€μ΅œμ’… μ—…λ°μ΄νŠΈ: 2026λ…„ 5μ›”

λŒ€ν•œλ―Όκ΅­ μ •λΆ€κ³΅μ§μžμœ€λ¦¬μœ„μ›νšŒκ°€ λ°°ν¬ν•˜λŠ” κ³ μœ„κ³΅μ§μž μž¬μ‚° 변동 κ΄€λ³΄λŠ” κ°€μΉ˜ μžˆλŠ” 곡곡 λ°μ΄ν„°μ΄μ§€λ§Œ, 원본 λ°μ΄ν„°μ˜ 가곡 μƒνƒœλŠ” μ§€κ·Ήνžˆ μ—΄μ•…ν•©λ‹ˆλ‹€. 수천 λͺ…μ˜ μž¬μ‚° 내역이 λ³‘ν•©λœ ν‘œμ™€ λΉ„μ •ν˜• ν…μŠ€νŠΈκ°€ 혼재된 PDF λ¬Έμ„œ 파일둜만 제곡되기 λ•Œλ¬Έμž…λ‹ˆλ‹€. λ¦¬μΉ˜λ‘œλ“œ(Rich Road) ν”„λ‘œμ νŠΈλŠ” 이 λΉ„μ •ν˜• 데이터λ₯Ό 투λͺ…ν•˜κ³  직관적인 λŒ€μ‹œλ³΄λ“œμ™€ μžμ‚° μ§€λ„λ‘œ λ³€ν™˜ν•˜κΈ° μœ„ν•΄ λ…μžμ μΈ 데이터 μΆ”μΆœ 및 μ •μ œ νŒŒμ΄ν”„λΌμΈμ„ κ΅¬μΆ•ν–ˆμŠ΅λ‹ˆλ‹€. κ·Έ 기술적 μ•„ν‚€ν…μ²˜μ™€ λΉ„ν•˜μΈλ“œ μŠ€ν† λ¦¬λ₯Ό 투λͺ…ν•˜κ²Œ κ³΅κ°œν•©λ‹ˆλ‹€.

1. PDF μˆ˜μ§‘ 및 OCR ν…μŠ€νŠΈ μΆ”μΆœ

데이터 μˆ˜μ§‘μ˜ μΆœλ°œμ μ€ ν–‰μ •μ•ˆμ „λΆ€κ°€ μš΄μ˜ν•˜λŠ” λŒ€ν•œλ―Όκ΅­ μ „μžκ΄€λ³΄ μ›Ήμ‚¬μ΄νŠΈμž…λ‹ˆλ‹€. λ¦¬μΉ˜λ‘œλ“œμ˜ μˆ˜μ§‘κΈ°λŠ” λ§€λ…„ 3μ›” 말 μ •κΈ° μž¬μ‚°κ³΅κ°œ μ‹œκΈ°κ°€ 되면 μ „μžκ΄€λ³΄ μ˜€ν”ˆ API 및 크둀링 봇을 톡해 μž¬μ‚°κ³΅κ°œ ν‚€μ›Œλ“œκ°€ ν¬ν•¨λœ PDF 관보 νŒŒμΌμ„ κ°μ§€ν•˜κ³  둜컬 μŠ€ν† λ¦¬μ§€λ‘œ λ‹€μš΄λ‘œλ“œν•©λ‹ˆλ‹€.

λ‹€μš΄λ‘œλ“œλœ 관보 PDF νŒŒμΌμ€ 일반적으둜 μˆ˜μ‹­λ§Œ νŽ˜μ΄μ§€μ— λ‹¬ν•˜λŠ” λŒ€μš©λŸ‰ λ¬Έμ„œμž…λ‹ˆλ‹€. 이λ₯Ό ν…μŠ€νŠΈ λ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜κΈ° μœ„ν•΄ Python ν™˜κ²½μ—μ„œ pdfplumber와 PyPDF2 라이브러리λ₯Ό λ³‘λ ¬λ‘œ κ°€λ™ν•©λ‹ˆλ‹€. μŠ€μΊ”λ³Έ 이미지 ν˜•νƒœλ‘œ 올라온 일뢀 μ§€μžμ²΄ κ΄€λ³΄μ˜ 경우, κ³ ν™”μ§ˆ λ Œλ”λ§ 처리 ν›„ Tesseract OCR μ—”μ§„κ³Ό ν΄λΌμš°λ“œ λΉ„μ „ APIλ₯Ό μ ‘λͺ©ν•˜μ—¬ ν…μŠ€νŠΈ 인식λ₯ μ„ 99.8% μ΄μƒμœΌλ‘œ λ³΄μ •ν•˜λŠ” μ „μ²˜λ¦¬ 과정을 κ±°μΉ©λ‹ˆλ‹€.

2. μ •κ·œν‘œν˜„μ‹(Regex) 기반 데이터 μ •μ œ 및 λΆ„λ₯˜

κ°€μž₯ μ±Œλ¦°μ§•ν•œ λ‹¨κ³„λŠ” μΆ”μΆœλœ 원본 ν…μŠ€νŠΈ λ­‰μΉ˜μ—μ„œ κ΄€κ³„ν˜• 데이터λ₯Ό μΆ”μΆœν•˜λŠ” μΌμž…λ‹ˆλ‹€. κ΄€λ³΄μ˜ 뢀동산 μ£Όμ†Œ, 예금 κΈˆμœ΅κΈ°κ΄€λͺ…, 코인 μˆ˜λŸ‰ 등은 κ³΅ν†΅λœ ν‘œμ€€ 포맷이 없이 μž‘μ„±μžκ°€ 직접 ν…μŠ€νŠΈλ‘œ νƒ€μ΄ν•‘ν•˜μ—¬ μ œμΆœν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. λ¦¬μΉ˜λ‘œλ“œλŠ” 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μˆ˜μ‹­ 개의 μ •κ·œμ‹ νŒ¨ν„΄ 그룹을 μ •μ˜ν•˜μ—¬ κ°€λ™ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

  • 곡직자 메타데이터 μΆ”μΆœ: 이름, μ†Œμ† κΈ°κ΄€(예: ꡭ회, μ„œμšΈνŠΉλ³„μ‹œ), μ§μœ„(예: κ΅­νšŒμ˜μ›, μ‹œμž₯)λ₯Ό λ§€μΉ­ν•˜μ—¬ 곡직자 인덱슀 ν…Œμ΄λΈ”μ„ μƒμ„±ν•©λ‹ˆλ‹€.
  • μžμ‚° μ’…λ₯˜ λΆ„λ₯˜: 뢀동산, ν† μ§€, 예금, 증ꢌ, 채무 λ“±μ˜ ν‚€μ›Œλ“œ κ·Έλ£Ήκ³Ό 화폐 λ‹¨μœ„(μ²œμ›, λ§Œμ›, 얡원)λ₯Ό νŒλ³„ν•΄ μžμ‚° μœ ν˜•λ³„ κΈˆμ•‘ 데이터λ₯Ό μΆ”μΆœν•˜κ³  원 λ‹¨μœ„λ‘œ ν‘œμ€€ μ •λŸ‰ν™”ν•©λ‹ˆλ‹€.
  • 뢀동산 μ£Όμ†Œ νŒŒμ‹±: "경상뢁도 μ•ˆλ™μ‹œ ν’μ²œλ©΄ κ°ˆμ „λ¦¬ 1600..."와 같이 λΉ„μ •ν˜• ν…μŠ€νŠΈμ— ν¬ν•¨λœ 상세 μ£Όμ†Œ λ¬Έμžμ—΄λ§Œ μ •ν™•νžˆ κ³¨λΌλƒ…λ‹ˆλ‹€.

3. μ§€μ˜€μ½”λ”©(Geocoding)을 ν†΅ν•œ 곡간 정보 λ§€ν•‘

λ¦¬μΉ˜λ‘œλ“œμ˜ 핡심 κΈ°λŠ₯ 쀑 ν•˜λ‚˜μΈ 'μžμ‚° 지도'λ₯Ό κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄μ„œλŠ” λΆ€λ™μ‚°μ˜ ν…μŠ€νŠΈ μ£Όμ†Œλ₯Ό μœ„λ„μ™€ 경도 μ’Œν‘œλ‘œ μˆ˜μΉ˜ν™”ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ •μ œλœ 뢀동산 μ£Όμ†Œ 데이터λ₯Ό λ°”νƒ•μœΌλ‘œ Kakao 둜컬 API 및 ꡭ토ꡐ톡뢀 λΈŒμ΄μ›”λ“œ(V-world) μ§€μ˜€μ½”λ”© 엔진을 ν†΅κ³Όμ‹œν‚΅λ‹ˆλ‹€. 이 κ³Όμ •μ—μ„œ μ£Όμ†Œ 체계 λ³€ν™˜ μ‹œμ˜ μ§€μ˜€μ½”λ”© ν•œκ³„μ μ„ κ·Ήλ³΅ν•˜κΈ° μœ„ν•œ λŒ€ν‘œ μ’Œν‘œ λ§€ν•‘ μ•Œκ³ λ¦¬μ¦˜μ΄ μ μš©λ©λ‹ˆλ‹€. 전체 μ†ŒμŠ€ μ½”λ“œμ™€ 상세 데이터 νŒŒμ΄ν”„λΌμΈ μ•„ν‚€ν…μ²˜λŠ” λ¦¬μΉ˜λ‘œλ“œ 곡식 κΉƒν—ˆλΈŒ μ €μž₯μ†Œλ₯Ό 톡해 κ³΅κ°œλ˜μ–΄ λˆ„κ΅¬λ‚˜ κΈ°μ—¬ν•  수 μžˆλ„λ‘ λ•μŠ΅λ‹ˆλ‹€.