2012/06/28 20:25

오픈 데이터베이스, 팁포레스트 기타

인터넷은 재미있습니다.  많은 정보가 널려 있고 검색엔진을 이용하면 원하는 정보를 쉽게 찾을 수 있습니다. 그런데 정보라는 것은 조각으로만 있어서는 별로 가치가 없습니다. 여러 가지 정보를 모으고 정리하고 짜맞춰야 쓸모가 있죠. 그런데 이런 작업들은 꽤나 수고로운 일입니다.

이렇게 정보를 조직하는 일을 도와주는 소프트웨어를 데이터베이스 관리 시스템(DBMS)이라고 부릅니다. 우리가 보는 대부분의 웹사이트들은 실제로는 그 뒤에 DBMS가 돌아가고 있습니다. 그런데 여기에는 좀 웃기는 일이 있습니다. 사람들이 웹사이트에 접속하는 이유는 데이터베이스에 접속하기 위해서죠. 그런데 데이터베이스는 여러 가지 껍데기로 꽁꽁 싸여서 직접 접근을 할 수가 없습니다.

국회 홈페이지에 가면 국회의원 현황을 볼 수도 있고 의안정보를 볼 수도 있습니다. 이것들은 실제로는 데이터베이스고, 그 위에 예쁜 껍데기를 씌운 겁니다. 그래서 국회의원들을 위원회, 정당, 지역, 선수 등으로 검색도 할 수 있습니다. 하지만 연령이나 성별로는 검색을 할 수 없어요. 그 정보가 데이터베이스에 들어있는데도 말이죠. 왜냐하면 웹 사이트를 만든 사람들이 껍데기에 그런 걸 검색해주는 기능은 넣지 않았기 때문입니다. 마찬가지로 의안정보를 볼 수도 있고 검색도 가능하지만 의원현황과 조합해서 볼 방법은 없습니다. 만약 DBMS에 직접접근할 수 있다면, 사용법이 좀 더 어렵기는 하지만 이런 다양한 정보들을 조합해서 새로운 사실들을 알 수 있습니다. 하지만 대개 DBMS는 두꺼운 껍데기로 감싸여 있어서 그런 일은 불가능합니다. 

게다가 국회도 그렇지만 한국의 많은 공공데이터베이스는 자료를 열람만 가능할 뿐 다운로드할 방법은 막아 놓고 있습니다. 만약 자료를 다운로드 할 수 있다면 국회의원 정보와 의안 정보를 다운 받아서 엑셀 같은 프로그램으로 이리 저리 만져볼 수 있겠죠. 이것은 그렇게 어려운 기능이 아닌데도 제공해주는 경우가 없습니다. 결국 화면을 보면서 사람이 일일이 입력해야 해요. 이 21세기에 이게 뭐 하는 일입니까?

또 다른 문제를 봅시다. 많은 웹사이트에는 사용자들이 글을 쓸 수 있는 기능을 제공합니다. 게시판, 블로그, SNS가 다 그런 것들이죠. 이것들도 결국은 데이터베이스에 정보가 쌓이는 겁니다. 요즘에는 블로그 같은 것은 5분이면 만들 수 있는데요, 데이터베이스의 구조만 짜주면 나머지 껍데기는 거의 반자동으로 만들어집니다. 그런데 사용자들이 쓸 수 있는 정보는 매우 제한되어 있습니다. 그냥 글을 쓰는 것 뿐이죠. 

글은 쓰기도 어렵지만 활용하기도 어렵습니다. 아직까지 글을 읽는 기계는 없어요. 검색을 한다고 해도 특정한 표현이 포함된 글을 찾아줄 뿐이죠. 세상에 온갖 블로그에 수많은 정보가 있지만 이런 정보들을 조합해서 짜맞추려면 꽤나 까다롭습니다. 이것은 위키백과 같은 프로젝트도 마찬가지입니다. 영어 위키백과에는 수 백만 건의 글이 쌓여있습니다만 이것들은 그냥 쌓여 있기만 합니다. 그래서 위키백과에는 여러 가지 목록 페이지를 만들어서 수동으로 이런 정보들을 다시 정리해주곤 합니다. 하지만 이것도 한계가 있죠.

그래서 몇몇 사람들이 모여서 팁포레스트(http://www.tipforest.com)라는 사이트를 하나 만들었습니다. 이 사이트의 목적은 간단합니다. 누구나 데이터베이스에 정보를 넣을 수 있고, 누구나 데이터베이스의 거의 모든 정보에 접근할 수 있게 하자는 것이죠. 위키+데이터베이스라고 할 수 있습니다. 물론 그것만 하면 별로 재미가 없겠죠. 많은 웹사이트에서 데이터베이스에 껍데기를 씌우는 이유는 그게 예쁘기도 하지만 사용하기도 편리하기 때문입니다. 그래서 팁포레스트는 각 데이터베이스에 쌓인 정보에 따라서 적당한 껍데기를 씌워줍니다.

위의 그림은 국회 의원정보 일부를 팁포레스트에 옮겨 놓은 것입니다(http://tipforest.com/t/22) 보시면 이름, 당선회수, 소속정당, 성별, 당선경력, 선거구(광역) 등의 순서대로 정렬이 되어 있습니다. 왼쪽 메뉴도 그런 순서대로 배치가 되어 있네요. 수치 정보라면 슬라이드 바를 움직여서 찾을 수 있고, 날짜 정보라면 달력에서 선택할 수 있습니다. 이런 것은 모두 데이터에 따라 자동으로 생성됩니다. 그러니까 사용자들은 원하는 데이터만 넣으면 검색 메뉴나 정렬 순서 같은 것은 신경 쓸 필요가 없습니다.

그리고 왼쪽 위에 보면 초록색 "+팁" 버튼이 있군요. 네. 이 버튼을 누르면 새로운 국회의원 정보를 추가할 수 있습니다. 또 국회의원 이름을 클릭해서 들어가면 그 의원의 더 자세한 정보를 보거나 정보를 편집하거나 추가할 수도 있습니다. 심지어 데이터베이스의 구조를 바꾸거나 다른 데이터베이스와 연결하는 것도 가능합니다. 아니 사용자가 그렇게 마음대로 다 할 수 있으면 엉망진창이 되지 않을까요? 안심하세요. 위키와 마찬가지로 사용자의 모든 행동은 이력에 남습니다. 누군가 엉터리로 고쳤다면 다시 되돌릴 수도 있지요. 만약 이 사이트에서 제공하는 기능이 충분하지 않을 수도 있습니다. 그럼 CSV 파일로 이 모든 것을 모두 내려받을 수 있습니다. 좋아하는 프로그램으로 마음껏 데이터를 주무르면 됩니다.

"나는 살면서 이런 기능이 필요했던 적이 없어. 데이터베이스를 왜 사용자가 만들어야 하지?"라고 생각할 수도 있습니다. 하지만 대부분의 사람은 살면서 최소한 한 가지 데이터베이스는 만듭니다. 주소록이죠. 주소록 프로그램들을 쓰다보면 불편할 때가 많습니다. 왜냐하면 데이터베이스라는 것은 만든 사람의 관심을 반영합니다. 사람마다 관심있는 정보가 다르기 때문에 데이터베이스의 구조도 달라져야 하죠.

예를 들어 봅시다. 가수 아이유는 "좋은 날"로 폭발적인 인기를 얻기 전부터 인터넷에 이런 저런 동영상을 올려 조금씩 인지도를 얻어가고 있었습니다. 많은 아이유 팬들이 아이유가 기타 치면서 노래를 부르는 것을 좋아하죠. 그런데 만약 아이유가 "라디오에서 기타치는 동영상"을 찾고 싶다든가, "도쿄 디즈니랜드에서 찍은 동영상"을 찾고 싶다면 어떻게 할까요. 네, 물론 검색도 할 수 있고 블로그에 동영상을 퍼놓고 태그를 붙여 관리할 수도 있습니다. 하지만 검색 기능은 아직 완전하지 못하고  블로그에 퍼놓는 것은 혼자만 할 수 있을 뿐이죠. 

각자 자기 관심있는 정보를 공동의 데이터베이스에 추가할 수 있다면 그렇게 쌓인 데이터베이스는 어마어마할 겁니다. 별 것 아닐 수도 있죠. 하지만 그렇게 쌓을 수 있는 정보들에는 재미있는 게 많을 겁니다. 이 사이트를 만든 사람 중에 어떤 사람은 "빨간 머리 트윈테일 소녀가 나오는 애니메이션"을 찾을 수 있는 그런 데이터베이스를 만들고 싶어합니다. IMDB(http://imdb.com)에서 찾을 수 없는 것은 분명하죠. 물론 티비트롭스(http://tvtropes.org) 같은 위키에선 찾을 수 있을지도 모르겠습니다. 하지만 위키는 데이터베이스가 아니죠. 데이터베이스의 장점은 여러 가지 정보를 조합하고 정리할 수 있다는 것이죠. 팁포레스트는 정보만 많이 쌓인다면 자동으로 만들어지는 메뉴를 통해서 원하는 조건들을 조합할 수 있습니다. 아 뭐 이런 저런 기능이 부족하다고 생각할 수도 있습니다. 그럼 다운 받아서 그런 기능을 제공하는 프로그램을 사용하세요.

팁포레스트는 홍민희(홈페이지, 트위터), 아샬(트위터), 그리고 저 아이추판다 세 사람이 만들고 있습니다. 1주일에 한 번씩 모여서 잉여잉여하면서 재미있게 만들고 있지요. 사실 프로그램을 짜는 시간보다 쓸데없는 이야기를 하는 시간이 더 많습니다. 아이유 vs 윤하라든가, 파이썬 vs. 루비라든가. 우리는 팁포레스트를 만드는 일이 재미있습니다. 여러분도 그 재미있는 경험을 함께 했으면 좋겠군요. 아직 별 정보는 없지만 지금 한 번 둘러 보시기 바랍니다. 


둘러볼만한 곳들

  • 아이유 동영상: 더 이상 무슨 말이 필요한지?
  • 19대 국회의원: 19대 국회의원 108명의 기본정보가 들어있습니다. 192명을 더 입력해야 하는군요. 하아.
  • tipforest 관련자료: 팁포레스트를 만드는 과정에서 참고한 자료들입니다
  • 연습용 트리: 해치지 않아요. 팁포레스트에 정보를 추가하고 편집하는 방법을 여기서 연습해보세요.

핑백

덧글

  • Raymundo 2012/06/28 20:35 # 삭제

    이야, 상당히 흥미로운데요! 좋은 결실 있기를 기원합니다.
  • 아이추판다 2012/06/28 20:42 #

    감사합니다 ^^
  • 민노씨 2012/06/28 21:21 # 삭제

    흥미로운 프로젝트네요. 저는 물론이고, 제 블로거벗(들)께서도 아주 관심을 갖고 있는 테마인데, 이렇게 먼저 실천을 하시니 참 고무적입니다. 응원합니다!! : )
  • 아이추판다 2012/06/28 21:44 #

    감사합니다 :)
  • exnoy 2012/06/28 21:29 #

    음... 확실히 위키를 찾아 보면서 관련 자료를 찾아보고 싶었던 경우가 제법 되니 도움이 될 것 같네요.

    그런데 왠지 유저 참여형이면 취미 관련 정보만 줄기차게 올라올 것 같은 기분이 ^^;
  • 아이추판다 2012/06/28 21:46 #

    사실 취미 관련 정보에 대한 데이터베이스가 제일 부족하긴 하죠. 공공 데이터베이스는 있는 걸 공개하기만 해주면 되는데.. 취미 관련은 직접 만들어야 하는지라..
  • xacdo 2012/06/28 23:30 # 삭제

    공적인 데이터는 아래와 같이 시맨틱웹 형식으로 퍼블릭하게 연계하는 것도 좋을 것 같네요.
    http://linkeddata.org/
    http://www.data.gov/
    http://dbpedia.org/About
  • 아이추판다 2012/06/29 00:50 #

    네 그것도 계획 중입니다. 제안 감사합니다.
  • jomjs 2012/06/29 00:14 #

    응원하는 야구팀 전적을 정리하던 와중이었는데 아이추판다님이 소개해주신 사이트 덕분에
    좀더 깔끔하고 편리한 데이터 베이스 작업을 할 수 있을것 같습니다. 감사합니다ㅎㅎ
    다만 사용하면서 조금 아쉬웠던점은 데이터가 숫자일때나 영어(ex)ABC, EDF 로만 되어있는
    슬롯인 경우에 입력한 순서와 상관없이 저장하면 결과에서는 왼쪽으로 따로 빠져서 정렬되더군요;;
    데이터 종류와 상관없이 초기에는 사용자가 입력한 순서대로 슬롯이 고정될수 있도록
    다음에 수정해주신다면 감사하겠습니다.
  • 아이추판다 2012/06/29 00:51 #

    정렬 순서는 알고리듬에 따라서 자동으로 결정되는데, 고정하는 방법도 추가하겠습니다. 제안 감사합니다 ^^
  • 으아니 2012/06/29 11:05 # 삭제

    그래서 파이선 vs 루비의 결론은 뭔가요? (잿밥에만 관심이 ;;;)
  • 아이추판다 2012/07/02 18:53 #

    에 뭐.. 하하..
  • animator 2012/06/30 09:10 #

    와 멋진 아이디어와 감동적인 실행력 이십니다. :-)
    (맨날 구상만 하다가 결국 안하는 저는..흑흑)

    좋은 결실 있으시길.
  • 아이추판다 2012/07/02 18:53 #

    감사합니다
  • 소리쟁이 2012/07/01 01:26 #

    음악 관련으로 비슷한 프로젝트 구상하고
    혼자 발버둥치다가 그냥 말았습니다.

    정말 좋네요.

    헛고생말고 여기다가 데이터 넣어야겠습니다. ^^
  • 아이추판다 2012/07/02 18:53 #

    데이터!! 감사합니다.
  • 서주 2012/07/02 17:53 #

    와, 정말 흥미롭고 유익한 정보네요.
    가보니 깔끔하고 한 눈에 들어오고
    한참 돌아볼 듯 합니다 ㅎㅎ 북마크 ㄱㄱ
    고맙습니다. 응원할게요^^
  • 아이추판다 2012/07/02 18:54 #

    특히 아이유 동영상은 회심작입죠..
  • hfehu 2012/07/04 09:40 # 삭제

    가끔 상상만 하던걸 실제로 만드시다니 정말 대단합니다. 활성화만 된다면 그야말로 최고일듯. 저도 입력할게 있으면 입력하겠습니다.
  • 2012/07/10 09:31 # 삭제 비공개

    비공개 덧글입니다.
※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.



검색

맞춤검색

메모장

야후 블로그 벳지