"GNOME"에 해당되는 글 1건

  1. 2008/12/19 PyNateon (5)

PyNateon

2008/12/19 01:07

일단 이름을 이렇게 붙여봤어.

20대 이상의 일상 생활에 아주 밀접하게 붙어있는 SK Communications의 메신저 네이트온.

이 메신저는 Windows에서만 돌아가다가 Linux와 Mac용이 오픈 소스로 개발되고 있지.

나도 회사에선 리눅스만 쓰는지라 불편하기도 하여 설치하려고 컴파일을 하는데...

계속 라이브러리를 달라고 칭얼댄다. -ㅅ-

그 라이브러리는 다름 아닌 KDE...

GNOME이 기본으로 설치된 우분투를 쓰고 있는데 고작 네이트온 하나 때문에 KDE를 깔아야 한다니...

이거저거 딸려오는 패키지를 합치면 엄청난 양이란말이지. -ㅂ-

그래서, 한동안 뒤로 미뤄뒀어.

그런데 어느날 네이트온의 소스를 훑어보다가 뭔가 익숙한(?) 파일을 발견했지.

확장자가 ui인 파일.... 어디보자... 어라? Qt의 UI 디자인 파일과 동일한게 아니겠어?

설마하는 생각에 열어보니, Qt3로 만들어진 UI 디자인 파일이 자동으로 컨버트되어

QtDesigner에서 열리는 것이었던 것이었던 것이었지! -ㅂ-

여기서 한발 더 나아가 소스 파일을 잘 후벼봤더니 전부 QObject를 상속받은 C++ class였더란말이지!

나중에 검색해보고서야 알았지만 KDE는 Qt와 밀접한 관련이 있다더라구.

KDE에서 제공하는 GUI 위젯들이 대부분 Qt의 위젯을 상속받아 구현한 것들이고,

서로 이벤트 루프 호환까지!

여기까지 왔으면 이제 드디어 올 것이 온거지?



이걸 감히 Python + PyQt4로 다시 구현해보겠다는 엉뚱한 생각에 다다른거야. -ㅅ-;

한 2주 전부터 뚝딱거리면서 UI를 손봐서 Qt4에 맞게 고치고, 필요한 위젯도 만들어갔지.

한 1주일 전부터 본격적인 내부 코딩에 들어갔는데.... 후아... -ㅅ-;;

완전히 C++로 된 코드를 Python으로 고치는게 만만치는 않더라구.

오늘 일단 기본적인 프로토타입 프로토콜 처리기(NateConnection)를 어느정도 번역하고,

그걸 상속받은 NateDPLConnection, NateDPConnection을 구현하는 중이야.

다행히 Nateon은 텍스트 기반으로 정보를 주고 받더라구. =ㅅ=

일단 간단하게 Dispatch load balancer 서버에 접속해서,

어느 Dispatch 서버에 접속할지를 받아오는 것까진 구현해뒀는데...

아무래도 문제가 되는게 사용자 정보 암호화 부분인거 같아.

GCrypt라는 C++ 라이브러리를 사용하는거 같은데 Python으로 포팅된걸 찾을수가 없었어.

아마 Pidgin용으로 개발된 pidgin-nateon 모듈을 참고하면 될거 같기도 한데...

아무튼 재미있는걸 물었어.

이게 개발되면 리눅스에서도 Python+PyQt4 조합이면 네이트온을 돌릴 수 있을거야.

GNOME에게도 선택의 자유를!