리치로드 프로젝트 소개
투명하고 공정한 사회를 위해 공공 데이터를 시민의 품으로 돌려드립니다.
1. 리치로드(Rich Road)의 탄생 배경
대한민국 헌법과 공직자윤리법은 고위공직자, 국회의원, 지방자치단체장 등 공적 권한을 위임받은 이들의 자산 변동 사항을 매년 투명하게 공개하도록 규정하고 있습니다. 이는 권력과 자산의 유착을 막고, 청렴하고 투명한 공직 사회를 실현하기 위한 민주 사회의 강력한 약속입니다.
하지만 매년 3월 말 정부공직자윤리위원회와 전자관보를 통해 쏟아지는 데이터의 실체는 시민들이 접근하기에 너무나 높은 장벽이었습니다. 수천 페이지에 달하는 기괴한 레이아웃의 PDF 문서, 복사 및 검색조차 되지 않는 이미지 스캔본, 주소와 금액이 한 줄로 엉켜 있는 텍스트 데이터 뭉치 등은 사실상 "공개는 하되 읽지는 못하게 하라"는 듯한 정보의 격차를 만들어 냈습니다.
리치로드 프로젝트는 이러한 정보의 장벽에 대한 문제의식에서 출발했습니다. 2024년 봄, 평범한 청년 기획자와 개발자들이 모여 "국민의 알 권리를 위해 법으로 공개하는 데이터를 누구나 이해할 수 있는 직관적인 대시보드와 지도로 돌려주자"는 목표를 세우고 비영리 오픈소스 프로젝트로 개발에 착수했습니다.
2. 우리가 직면했던 기술적 난관과 극복 (직접 경험)
공익적인 가치를 담아 개발을 시작했지만, 정제되지 않은 날것의 공공 데이터를 다루는 과정은 매 순간이 험난한 삽질의 연속이었습니다. 저희 개발팀이 직접 해결해야 했던 대표적인 두 가지 기술적 난관을 공유합니다.
🛠️ 난관 1: 엉망진창 PDF 표 데이터의 정밀 파싱
초기에 단순히 PDF 텍스트 스트림을 파이썬 스크립트로 추출했을 때, 주소와 소유주, 평가 금액이 뒤죽박죽으로 결합되어 도무지 분류할 수 없는 상태였습니다. 저희는 이를 해결하기 위해 pdfplumber 라이브러리를 도입하고, 표의 세로 실선과 가로 글자들의 기하학적 Y좌표를 수학적으로 클러스터링하는 정규표현식 기반 파이프라인을 설계했습니다. 이로써 글자 줄바꿈으로 유실될 뻔한 데이터 매칭 성공률을 99.8%까지 끌어올렸습니다.
🗺️ 난관 2: 비표준 주소 지오코딩 실패율 50% 돌파
공직자들이 관보에 적어 낸 부동산 주소지는 "[본인소유 배우자지분 1/2]"과 같은 사적 메모나 오탈자, 지번과 도로명이 엉킨 비표준 텍스트가 가득했습니다. 이를 그대로 지도 API에 넣으니 검색 실패(404 에러)율이 절반을 넘었습니다. 저희 GIS 엔지니어는 주소 뒷단어의 번지수와 괄호를 하나씩 잘라내며 반복해서 API를 호출하는 '스마트 Y-폴백(Fallback) 알고리즘'을 고안해 적용했고, 마침내 지도 맵핑 성공률 97.2%라는 경이로운 성과를 이끌어 냈습니다.
더불어 비영리 프로젝트이기에 개발 서버와 API 요금 같은 재정적 한계도 컸습니다. 저희는 값비싼 고사양 데이터베이스 서버를 두는 대신, 빌드 타임에 모든 데이터를 정적 가공하여 CDN(콘텐츠 전송 네트워크)에 배포하는 Static Site Generation(SSG) 아키텍처를 선택하여 호스팅 비용을 완전히 0원으로 최적화했습니다. 이 과정들은 청년 개발자들이 공공의 편익을 위해 흘린 소중한 땀방울이었습니다.
3. 리치로드 프로젝트 발자취
4. 함께하는 사람들
리치로드는 순수한 열정과 기술 기여로 가꾸어 나가는 비영리 팀입니다.
투명한 감시는 모두가 참여할 때 완성됩니다
리치로드의 모든 소스 코드와 가공 데이터는 깃허브를 통해 완전 개방되어 있습니다. 데이터 오류 신고, 버그 제보, 디자인 기여 등 어떠한 형태의 참여도 언제나 환영합니다.