TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 41 READS

오픈 데이터, '돌려주기'가 가져오기보다 어려운 이유 — OpenStreetMap 라이선스의 교훈

오픈 데이터, '돌려주기'가 가져오기보다 어려운 이유 — OpenStreetMap 라이선스의 교훈
SOURCE IMAGE · HACKER NEWS
오픈 데이터, '돌려주기'가 가져오기보다 어려운 이유 — OpenStreetMap 라이선스의 교훈

좋은 뜻인데 왜 안 된다는 걸까요

동네를 걷다 보면 가끔 작은 공공 책장을 볼 수 있죠. 누구나 책을 놓고 가고, 마음에 드는 책을 가져갈 수 있는 나눔 책장이요. Book Corners는 이런 공공 책장 위치를 지도에 모아 보여주는 웹 앱인데요, 개발자인 Andrea Grandi가 최근 흥미로운 글을 올렸어요. 사용자들이 "우리가 앱에 등록한 책장 위치를 왜 OpenStreetMap(OSM)에 자동으로 반영해주지 않느냐"고 계속 묻는데, 그게 왜 안 되는지를 조목조목 설명한 글이에요.

배경을 잠깐 짚으면, 이 앱의 초기 데이터는 OSM에서 가져온 거예요. OSM은 위키피디아처럼 전 세계 사람들이 함께 만드는 오픈 지도 데이터베이스인데, 여기에 amenity=public_bookcase라는 태그로 등록된 공공 책장들을 받아와서 시작했거든요. 그러니 사용자 입장에선 "받아왔으면 돌려주는 게 도리 아니야?"라는 생각이 자연스럽죠. 그런데 저자는 자동 동기화는 하지 않겠다고 못박아요. 그 이유가 오픈 데이터를 다루는 개발자라면 꼭 알아야 할 내용이에요.

첫 번째 벽: 라이선스는 일방통행이 아니에요

가장 큰 문제는 라이선스예요. OSM 데이터는 ODbL이라는 라이선스로 배포되는데, 이건 데이터를 "가져다 쓰는" 쪽의 규칙이에요. 반대로 OSM에 데이터를 "넣으려면" 기여자 본인이 OSM 재단의 Contributor Terms(기여자 약관)에 동의해야 하거든요. 그런데 Book Corners 사용자들은 앱의 약관에 동의했지, OSM 약관에 동의한 적이 없어요. 개발자가 사용자들의 데이터를 임의로 모아서 "이거 OSM 약관으로 다시 라이선스할게요" 하고 넘길 법적 권한이 없는 거죠. 이게 뭐냐면, 친구가 맡겨둔 물건을 주인 허락 없이 대신 기증할 수 없는 것과 같은 원리예요.

두 번째 벽: OSM 커뮤니티의 규칙

법적 문제를 넘더라도 커뮤니티 규칙이 있어요. OSM에는 Import Guidelines(대량 데이터 반입 지침)와 Automated Edits Code of Conduct(자동 편집 행동 강령)라는 게 있는데, 봇이나 스크립트로 데이터를 대량 등록하려면 사전에 커뮤니티와 논의하고, 반입 계획을 문서화하고, 전용 계정을 쓰고, 기존 데이터와의 충돌을 신중하게 처리해야 해요. 제3자 앱이 백그라운드에서 조용히 데이터를 밀어넣는 건 명백한 규칙 위반이고, 편집이 통째로 되돌려지거나 계정이 차단될 수도 있어요.

세 번째 벽: 데이터 품질과 중복 제거

기술적으로도 만만치 않아요. 앱 사용자들이 찍는 핀은 대략적인 위치인 경우가 많고, 중복도 있고, OSM 특유의 꼼꼼한 태깅 규칙을 따르지도 않죠. 이걸 그대로 밀어넣으면 OSM의 데이터 품질을 떨어뜨리게 돼요. 특히 conflation이라고 부르는 문제 — 새로 들어온 데이터가 기존 OSM 노드와 같은 책장인지 다른 책장인지 판별해서 병합하는 작업 — 는 지도 데이터 분야에서 진짜 어려운 문제로 꼽혀요. 게다가 OSM의 변경 이력(changeset)은 "누가 이 편집에 책임지는가"를 추적하는 구조인데, 익명의 여러 사용자 편집을 앱 계정 하나로 대리 등록하면 이 책임 추적 모델 자체가 깨져버려요.

그럼 어떻게 하자는 거냐면

저자의 결론은 이래요. 자동 동기화 대신, 기여하고 싶은 사용자가 자기 OSM 계정으로 직접 등록하도록 안내하고(앱에서 OSM으로 링크를 걸어주고요), 앞으로는 사용자가 OSM 약관에 명시적으로 동의한 뒤 본인 명의로 편집하는 옵트인 방식을 고민해보겠다는 거예요. "오픈 데이터 생태계의 좋은 시민이 된다는 건, 때로는 가장 그럴듯해 보이는 방식으로 데이터를 공유하지 않는 것"이라는 태도가 인상적이에요.

한국 개발자에게도 남 얘기가 아니에요

공공데이터포털이나 OSM, 지도 API를 조합해서 서비스를 만드는 경우가 많잖아요. 데이터를 "읽는" 라이선스와 "기여하는" 약관이 별개라는 것, 그리고 사용자 생성 데이터의 권리는 서비스 운영자가 마음대로 처분할 수 없다는 것은 어떤 프로젝트에서든 그대로 적용되는 원칙이에요. 특히 크라우드소싱 요소가 있는 서비스를 기획 중이라면, 처음부터 약관에 데이터 재라이선스 조항을 어떻게 넣을지 설계해두는 게 나중에 큰 차이를 만들어요. 좋은 의도만으로 데이터를 옮기다가 라이선스 위반이 되는 경우가 생각보다 흔하거든요.

한 줄 정리: 오픈 데이터는 가져오는 것보다 돌려주는 게 법적으로도 기술적으로도 훨씬 어렵다. 여러분이라면 사용자 기여 데이터를 업스트림에 돌려주는 문제, 어떻게 설계하시겠어요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://www.andreagrandi.it/posts/why-book-corners-wont-sync...
SHARE
처리 중...