· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
SuitBox 프로젝트 위키 페이지!



1. 개요

SuitBox 프로젝트는 멀티 플랫폼 메신저로써, 사용자가 메신저를 이용하여 메세지를 주고 받는데 있어서 불편함을 느끼지 않도록 메신저의 모든 인터페이스를 사용자에게 최적화 시켜주는 것이 개발 목적입니다.
예를 들어, 메세지를 입력할때 vim 의 간단하고 빠른 수정 기능을 축소하여 도입시켜 사용자가 빠르게 그리고 간편하게 메세지를 입력할 수 있도록 합니다. 또한, 인터페이스의 모든 부분을 수정하게 함으로써 기존의 테마나 스킨정도의 기능이 아니라 전체적인 레이아웃부터 시작하여 메뉴의 구성, 메뉴의 위치까지도 사용자가 마음대로 수정할 수 있도록하여 사용자가 사용하는데 있어 생길 수 있는 불편함을 최소화하는데 목적이 있습니다.

오픈 메신저의 개념을 도입하여 외부 서버의 사용자와도 간편하게 대화가 가능하도록합니다. 또한, 웹 연동을 지원하여 별도의 어플리케이션의 설치없이도 사용을 가능하게 합니다.

2. 개발 환경

  • OS - Linux, FreeBSD, Windows, Mac
  • File Version Control - SubVersion
  • Languages - C, C++, Python, Java, Flash, XML, PHP
  • Compilers - GCC 4.x, G++ 3.3
  • Python Version - 2.4.x
  • PHP Version - 4
  • GUI Toolkit - Qt
  • License - BSD, partly GPL
  • Libraries - GLib 2.0, expat

3. SubVersion 과 Trac

SuitBox 에서는 파일 버전을 관리하기 위하여 SubVersion 을 사용하고 있습니다. Posix 계열에서는 SubVersionhttp://subversion.tigris.org/ 에서 구하시어서 설치하시면 됩니다. 권장하는 SubVersion 배포본은 http://subversion.tigris.org/tarballs/subversion-1.1.1.tar.gz 으로 다운로드가 가능합니다. Windows 계열에서는 Tortoisesvn 을 이용하여 SubVersion 을 사용하실 수 있습니다. http://tortoisesvn.tigris.org/download.html 이 페이지에서 자신의 환경과 알맞는 버전을 설치해주시면 됩니다. SubVersion 의 주소는 svn://chabrothers.com 입니다. 이외의 사용법은 아래에 적어놓겠습니다.

SuitBox 에서는 프로젝트 매니져로 Trac 을 사용하고 있습니다. Trac 에서는 웹으로 SubVersion 에 있는 파일들의 소스를 확인하실 수 있습니다. 또한, 티켓이란 기능을 이용하여 버그 리포트를 하거나 기능에 관련된 이야기를 나눌 수 있습니다. 또한, 자체적인 위키 기능을 이용하여 프로젝트에 필요한 문서를 제작하실 수도 있습니다. 주소는 http://chabrothers.com/trac 입니다. 많은 이용바랍니다.

4. SubVersion 사용법

커밋을 하실때 커밋 로그를 남겨주세요. 최소한 한 글자라두요. 커밋 하시기 전에는 svn up 또는 체크아웃을 새로하셔서 버그가 수정되었는지 확인해주세요.

4.1. 소스 받기(체크 아웃하기)

무엇을 하든간에 우선은 체크 아웃을 받아야 합니다.
  • Posix -> svn co svn://chabrothers.com 받을 디렉토리
  • TortoiseSvn -> 메뉴에 있을 거임- _-)~~

4.2. 소스 올리기 (커밋하기)

소스를 수정한 뒤에는 커밋을 하여야 적용이 됩니다ㅏ.
  • Posix -> svn commit
  • TortoiseSvn -> 메뉴에 있을지도 모름

4.3. 파일 추가하기 (Add 하기)

새로운 파일 또는 디렉토리를 생성하였을 때에는 add 를 하여 svn 에서 그 것을 서버로 커밋하도록 하여야합니다.
  • Posix -> svn add 디렉토리 또는 파일
  • TortoiseSvn -> 이것도 어딘가에?


5. 개발 일정

  • 7 월 15 일까지 사용자 등록, 사용자 탈퇴, 로그인, 로그 아웃, 1:1 메세지 기능을 위한 프로토콜, 프로그래밍을 마칩니다.

6. 기능 개요

6.1. 메세지 편집기능

기존의 단순한 타이핑 기능에서 벗어나 vi 의 에디트 기능의 개념을 도입하여 단순히 좌우상하 방향키가 아니라 간단한 매크로를 이용하여 수정합니다. vim 에서의 가장 어려운 점이었던, 명령어를 외우는 불편함을 해결하고자 우리 한글의 천지인의 개념을 도입하여 ,(comma) .(dot) /(slash) 이 세가지 단축키를 조합하여 매크로를 만들어 사용함으로써 사용자가 쉽게 외울수 있도록합니다. 각 키마다 고유의 역할을 부여하여 3 가지를 조합합니다. 아래는 각 키들의 고유 역할입니다. 수정하기 전에 수정할 것이다라고 알려주기 위해서 '`' 를 사용합니다.
  • , - 검색합니다.
  • . - 수정합니다.
  • / - 커서를 이동합니다. 이 3 가지를 조합하여 알맞게 수정을 합니다. 아래는 그 예입니다.
안녕하세요! SuitBox 입니다!
를 수정할때 안녕하세요! 를 안녕! 이라고 수정하고 싶을때에는 ,하세요. 와 같은 식입니다. '하세요' 란 단어를 찾아 수정을 하게되는데 . 뒤에 따라오는 단어가 없으므로 공백으로 변경합니다. '안녕하냐?' 로 변경하고 싶을때에는 ,하세요.하냐 와 같이 사용합니다.
위의 단어의 경우에는 글이 짧아 별 문제가 없지만 아래와 같은 긴 문장의 경우 수정할 곳을 찾거나 글을 더하기 위하여 커서를 방향키를 이용하여 움직이는 것도 상당히 힘듭니다. 오랫동안 누르거나 여러번 눌러줘야하기 때문이죠. 따라서 / 키를 이용하여 이동하면 편리합니다.
Hello Kwon and folks! it's very good weather isn't it?
Kwon 의 위치로 이동하고 싶을 경우 '`,Kw/' 라고 입력을 하면 Kw 앞으로 커서가 이동합니다.

우리들이 이전에 쳤던 문장을 찾아 다시 입력할때 상 하 방향키를 이용하여 이전에 쳤던 문장을 찾습니다. 하지만 너무 오래전에 쳤던 말일 경우 오랫동안 방향키를 눌러서 찾아야합니다. 그런 불편함을 해결하기 위하여 단축키를 이용하여 이동을 합니다. `/,검색어 라고 입력을하면 검색어가 포함된 문장을 찾아 그 문장을 표시해줍니다.

또한, 이미 보낸 메세지의 경우에도 시작 부분을 * 로 시작함으로써 수정하도록 메세지를 보낼 수 있습니다. 수정은 클라이언트에서 처리를 하며, 옵션을 이용하여 '거칠' 을 '거친' 으로 수정했다는 표시를 남길수도 있습니다. '거칠(거친)' 같이요.

6.2. 메세지 블럭화 기능

일반적으로 사용자들은 채팅을 할 때 한 단어씩 끊어서 전송합니다. 아래와 같이요.
Maney 님의 말:
안녕
Maney 님의 말:
하세요.
Maney 님의 말:
이렇게
Maney 님의 말:
한 단어씩 
Maney 님의 말:
말이지요
이렇게 한 단어씩 끊어서 전송되게되면 줄이 너무 빨리 올라가서 읽기도 힘들고 지저분해집니다. 그래서, 연속적으로 전송이 될 경우에 글을 한 블럭으로 이어줍니다. 아래와 같이요.
Maney 님의 말:
안녕 하세요. 이렇게 한 단어씩 말이지요
3 초안에 연속적으로 전송이 될 경우 그 구문들을 모두 이어서 보여줍니다. 사용자가 정한 단위 만큼 끊어서 보여지게되는데, 디폴트로는 5 구문씩 이어집니다. 즉, 아래와 같이 전송이 되면
Maney 님의 말:
이렇게
Maney 님의 말:
전송이 
Maney 님의 말:
되면 어때요?
Maney 님의 말:
쉽게 볼 
Maney 님의 말:
수 있겠지요?
Maney 님의 말:
안그래요?
5 구문을 이어준 다음 나머지 한 구문은 다른 블럭으로 표시해줍니다.
Maney 님의 말:
이렇게 전송이 되면 어때요? 쉽게 볼 수 있겠지요?
Maney 님의 말:
안그래요?

7. 프로토콜

SuitBoxProtocolSpec에서 확인하실 수 있습니다.



sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2005-08-08 15:14:25
Processing time 0.0225 sec