'OpenAPI'에 해당되는 글 1건

  1. 2008.04.03 마인드맵 툴을 만들었습니다 3

마인드맵 툴을 만들었습니다

프로그래밍 2008. 4. 3. 01:38
사용자 삽입 이미지

마인드맵 프로그램 '마음난리'


'마음난리'란?
  • 여럿이서 하나의 마인드맵 작업을 하기 위한 프로그램입니다.
  • 로봇이 오픈API를 사용하여 아이디어 연상을 도울 수 있는 키워드를 추천해줍니다.
  • 마인드맵을 XML문서, 혹은 웹 오피스를 통하여 출판할 수 있습니다. (미지원)
 일단 시험적으로 며칠동안 서비스는 할 것 같은데 사실 서비스, 서비스 하기엔 건더기가 너무 없죠. 실은 매쉬업 경진대회를 목표로 연초에 작업하던 것을 최근 다시 꺼내서 만들어봤습니다. 스프링노트, 구글닥스 등 웹 오피스에 대한 출판 기능을 추후 추가할 예정입니다. 물론 그 추후가 언제가 될지는 저도 잘 모르겠네요.
 관심있으시면 꼭! 실행해보시고 의견 부탁드립니다.

파이썬+QT
 배포판을 보시면 알겠지만 파이썬을 이용하여 작업하였습니다. GUI는 PyQt4 라이브러리를 사용하였으며 py2exe를 이용하여 배포판을 만들었습니다. 프로젝트 시작시에는 Eclipse+pyDev를 사용하다가 중반 쯤 들어 다른 IDE를 써볼까 하고 찾아보았는데, 파이썬 멀티스레드 디버깅이 편한 IDE가 안보이더라구요.

XMLRPC
 서버/클라이언트 구조를 기본으로 상정하며 프로토콜은 XML-RPC를 사용합니다. 실제 마인드맵 데이터는 XML DOM을 통하여 관리하고 있습니다. 때문에 성능의 저하가 있을지 모르겠습니다. 서버는 역시 파이썬으로 Twisted라는 웹 프레임워크를 사용하여 구축하였습니다.
 
OpenID
 안보이게 이쁘게 처리하고 싶었는데 오픈아이디의 인증방식 자체가 어쩔 수 없이 한 번은 사람 손을 타게 되어 있어서, 어쩔 수 없이 새 창을 띄우는 방식으로 조금 더럽게 처리할 수 밖에 없었네요. 대신 로그인의 수고라도 조금이나마 줄이고자 로그인했던 아이디를 기억하는 옵션을 추가해두었습니다.

OpenAPI
 주된 기능으로 다음의 문맥 키워드 추천, 네이버의 연관검색어, 구글의 웹 검색을 이용했습니다. 직접 마인드맵을 작성해보시면 어떻게 사용되었을지 지레 짐작이 가실 겁니다. 그리고 외국의 오픈API 중에 Lingr라는 채팅API가 있어서 시험삼아 넣어보았습니다. 프로토콜로는 json을 이용하며 외국이라 그런지 만족스러운 속도는 아닙니다. 어떻게든 사용자들에게 커뮤니케이션 수단을 제공하고 싶어서 넣은건데…. 나중에 Skype API라도 쑤셔볼까하는 생각이 드네요.

유니코드, 영어
 기본적으로 프로그램 내에서 UTF-8을 통하여 모든 문자열을 처리하도록 되어 있습니다. 그런데 Eclipse IDE는 에디터 창이 조금 이상한 탓인지 한글이 들어간 소스를 저장할 경우 다음 번에 파일을 열 때 산산조각이 나 있더군요. (pyScripter나 EricIDE같은 경우에는 별 문제가 없었는데 EclipseIDE의 문제인 것 같습니다.) 그래서 작업의 편의를 위하여 코드 내의 문자열은 영어로 입력했습니다. 짧은 영어실력이 만천하에 드러나겠네요. 영어집중교육 등록해야겠다.
 유니코드가 참 여러군데에서 발목을 걸고 넘어지더라구요. 검색결과, 위젯의 문자열에서부터 quote해야할 문자열의 인코딩 문제까지…. 정말 인코딩의 가시밭길을 헤쳐나온 기분이었습니다.

Lingr가 속도가 느린 관계로 채팅을 배제한 상태입니다.
참. 마인드맵 메뉴는 오른쪽 버튼을 누르시면 됩니다.
적절한 테스트를 거치지 못해서 자꾸 글을 수정하게 되네요.

: