'etc'에 해당되는 글 4건

  1. 2009/05/16 네트워크 기반 그림판 제작 - rev 81
  2. 2009/05/03 건의사항 (6)
  3. 2009/05/03 문제가 발생했을 때.
  4. 2008/03/31 Boost 1.35.0가 공개 되었다. (1)
posted by 게으른 늘보 2009/05/16 08:14
 꽤 옛날부터 만들려 했던 프로그램인 그림판을 이번에야 말로 끝을 내기 위해 다시 작업을 시작했다. 중간에 코드를 잊어버렸다던가, 바쁘다는 이유로 버려두던가, 구조가 마음에 안든다는 이유로 엎어버리기도 했었지만, 나중이 되면 미련이 남아 다시 코드를 끄적이고 있어서일까... 이번에야말로 끝을 보기 위해 정리를 하면서 작업을 하기로 했다.

 요구사항과 현재 진행하고 있는 작업은 다음과 같다.
  1. 네트워크 상에서 작업을 할 수 있어야한다.
    서버와 클라이언트로 역할을 나누고, 이에 따라 Boost::Asio기반의 RPC 라이브러리를 만들어 통신 할 수 있게 구현해 두었고, 이후 실제 서버와 클라이언트의 역할 수행에 대한 구현이 필요하다.

  2. 이벤트 정보를 파일에 기록하였다 재생할 수 있다.
    이벤트에 대한 부분을 Command Pattern을 적용하여 이미지에 대한 이벤트와 발생 시간에 대한 정보를 파일에 기록하였다 재생하는 방법으로 구현하려고 설계만 해 두었다.

  3. 간단한 이미지 연산이 들어가야한다.
    Boost::GIL을 기본 이미지 라이브러리로 해서 간단한 사칙연산에 해당하는 연산과, 알파블렌딩에 대한 부분을 구현해 두었다.

  4. 타블렛을 지원해야한다.
    Wintab32.dll을 읽어들여 타블렛의 압력과 위치에 대한 이벤트를 받아 들일 수 있게 해 두었다.

  5. 크기가 되도록이면 작아야 한다.
    MFC보다는 WTL을 사용하였다. 이 선택에는 WTL은 VC Express에서도 사용할 수 있다라는 점이 크게 작용하였다.

  6. 비교적 빠른 속도로 이미지를 처리할 수 있어야한다.
    빠른 속도를 위해 Threading Building Block을 사용해 보았다. 실제로 많은 레이어에 대해 작업을 할 경우 체감할 수 있을정도의 성능향상을 확인하였다.

  7. 레이어를 지원해야한다.
    알파블렌딩과 기본 연산들의 조합을 통해 구현했다.

  8. 브러쉬를 간단한 스크립트와 이미지로 만들 수 있어야한다.
    준비중.

 기본적인 기능들에 대한 구현은 어느정도 준비가 되어 있음으로 실제 유저 인터페이스와 네트워크 쪽에 신경을 써서 기능들을 합치면 어느정도의 프로그램이 나올 수 있다고 생각하고 있고, 이에 따라 통합하는 작업을 진행하고 있다. 따라서 남아있는 일중 가장 큰 부분은 유저 인터페이스와 서버 클라이언트 사이의 인터페이스와 같은 전체적인 통합 작업이라고 할 수 있다.

 유저 인터페이스를 위해 필요한 작업을 나열해 보면 다음과 같다.
  1. 팔레트 구현
  2. 레이어 관리 윈도우
  3. 메뉴
  4. 네트워크 관련 메뉴
  5. 채팅 관련 메뉴
  6. 브러쉬 관련 메뉴
 네트워크에서 필요한 작업은 다음과 같다
  1. 채팅을 위한 기본적인 기능들
  2. 이미지 편집에 대한 이벤트의 처리
  3. 작업중 들어온 사람에 대한 처리
  4. 자원에 대해 잠금기능 구현
  5. 유저에 대한 권한 설정 기능
  6. 다른 이미지나 클립보드상에서 이미지를 가져 와서 붙였을때의 처리 방법

'etc > 미분류' 카테고리의 다른 글

네트워크 기반 그림판 제작 - rev 81  (0) 2009/05/16
Boost 1.35.0가 공개 되었다.  (1) 2008/03/31
TAG

Trackback http://blog.zcube.kr/trackback/438 관련글 쓰기

댓글을 달아 주세요

posted by 게으른 늘보 2009/05/03 03:06
프로그램에 대해 개선사항이 있을때 다음과 같이 답글을 달아주시면 참고 하겠습니다.

프로그램:
건의사항:
자세한 내용:

예)

프로그램: TransFox
건의사항: UI가 불편합니다.
자세한 내용: 좋게 만들어주세요[..]

'etc > 개선사항 & 동작오류' 카테고리의 다른 글

건의사항  (6) 2009/05/03
문제가 발생했을 때.  (0) 2009/05/03
TAG

Trackback http://blog.zcube.kr/trackback/926 관련글 쓰기

댓글을 달아 주세요

  1. 방돌이 2010/09/05 00:22  Addr  Edit/Del  Reply

    죄송합니다...

    뭔가가 꼬였었나보네요...

    잘됩니다 ^^/

  2. 방돌이 2010/09/05 00:07  Addr  Edit/Del  Reply

    프로그램: 몬헌유틸

    건의사항: 윈도우7에서 안되는 건가요?

    자세한 내용:
    이번에 윈도우7을 깔았는데...안되네요...
    사용할 수 있는 방법을 알려주시면 감사하겠습니다 ^^/

  3. 2009/05/05 16:44  Addr  Edit/Del  Reply

    비밀댓글입니다

    • 게으른늘보 2009/05/05 19:32  Addr  Edit/Del

      0.3.0.0dev197버젼에 적용해 보았습니다.

      확실히 아이콘을 넣으니 달라 보이는 군요. 성능은 그럭저럭 됬다고 생각했지만 사용하다 보니 마음에 안들어서 튜닝을 하고 있는 중이라 GUI 쪽까지는 세세하게 신경을 못 썼는데 감사합니다. 바로 적용해 보았습니다.

      이 중에서 현재 설정이 보이지 않게 했던 것은 설정을 한번에 확인할 필요가 있음으로 번역 엔진 : jp2kr 번역 방법 : br과 같이 뒤에 추가해서 표시하도록 수정하였습니다.

  4. 2009/05/05 16:35  Addr  Edit/Del  Reply

    비밀댓글입니다

  5. . 2009/05/04 20:29  Addr  Edit/Del  Reply

    프로그램:TransFox 0.3
    건의사항:Enable과 Disable을 하나로 합쳐주세요.
    자세한 내용: 상태표시줄에 있는 아이콘을 오른쪽 클릭하면 나오는 "Enable on this site"와 "Disable on this site" 메뉴를 등록된 사이트면 "Disable on this site"만, 등록되지 않은 사이트면 "Enable on this site"만 나타나게 해주셨으면 좋겠습니다.
    아니면 "Enable on this site"만 두고, 등록된 사이트면 체크 표시를, 등록되지 않은 사이트면 체크 표시를 하지 않게 하였으면 좋겠습니다.

posted by 게으른 늘보 2009/05/03 03:05
문제가 발생했을 때에는 다음과 같은 형식으로 답글을 달아주시면 참고 하겠습니다.

프로그램:
버젼:
사용환경:
테스트 내용:
문제:

예)
프로그램: TransFox
버젼: 0.3.0.0dev165
사용환경: Firefox 3.1b3
테스트 내용: http://google.co.kr을 자동번역
문제: 번역이 전부 되지 않았다.

'etc > 개선사항 & 동작오류' 카테고리의 다른 글

건의사항  (6) 2009/05/03
문제가 발생했을 때.  (0) 2009/05/03
TAG

Trackback http://blog.zcube.kr/trackback/925 관련글 쓰기

댓글을 달아 주세요

posted by 게으른 늘보 2008/03/31 14:00
 기다리고 있던 boost 1.35.0가 3/28일 공개 되었다.

 이번에도 여러가지 기능들이 추가 되었는데 그 중 자주 쓰게 될것 같은 기능을 꼽아 보라면 Asio, GIL 정도 이다.

 Asio는 이전 부터 알고 있었지만 이번에 Release에 포함되었다. Asio를 사용하면 Winsock을 사용하는 것보다 간편하게 소켓 통신이 가능하다는 점에서 쓸만하다. 비동기로 통신을 구현하게 된다면 그 방법의 특성상 코드가 꽤 길어지는것은 피할 수 없지만, 동기로 구현하는 경우 코드를 매우 줄일 수 있다. 비동기 또한 IOCP나 epoll 등 그 운영체제에서 가장 효율적인 방법을 위주로 구현 되어 있으니 성능에 대해서 어느정도 보장되어 쓸만하다 할 수 있다. TR2에도 networking에 대한 부분은 있었으니 그 구현에 어느정도 영향을 끼치지 않을까 생각한다. 다만 비동기 구현에 boost::bind와 같은 여러 라이브러리가 복합적으로 구현 되어 있고, 자체 thread 구현이 있었던 것으로 기억하는데 이러한 부분이 어떻게 해결될지는 아직 지켜봐야겠다.

 GIL의 경우 Image를 다루는데에 사용할 수 있는 일반적인 라이브러리이다. 이 라이브러리를 사용한다면 Jpeg이나 기타 포맷에 대한 문제를 해결 할 수 있고, STL 기반으로 구현되어 있어 코드의 일반화에 도움을 줄 수 있을거라고 생각한다.

 자세한 사항은 아래 링크를 찾아 보자
http://www.boost.org/users/download/version_1_35_0

'etc > 미분류' 카테고리의 다른 글

네트워크 기반 그림판 제작 - rev 81  (0) 2009/05/16
Boost 1.35.0가 공개 되었다.  (1) 2008/03/31
TAG

Trackback http://blog.zcube.kr/trackback/364 관련글 쓰기

댓글을 달아 주세요

  1. 이정훈 2008/03/31 19:52  Addr  Edit/Del  Reply

    Boost 홈페이지도 이쁘게 바꼈군. ㅎㅎㅎ