학습 로드맵, 저자 서문도 다 썼고, 리뷰어들로부터 추천사도 다 받았습니다. 이제 남은 것은 각 장의 도비라에 들어갈 문구를 써넣는 일 뿐입니다. 그런데 이게 상당히 어렵네요. ^^; 지난 주말까지는 끝날 줄 알았는데, 지난 주말에는 AVR 강의를 듣느라 아무것도 못하고, 막상 책상이 앉았더니 글 구상이 떠오르질 않습니다.

이게 마무리 되면, 다시 Finish It 업데이트를 할 계획입니다. 이번 업데이트에 뭐가 들어갈지도 결정해야 하는데, 그동안 많은 분들이 주신 개선 요청 사항들을 다시 읽어보는 것부터 시작해야 할 것 같군요.

해가 떴습니다. 좋은 하루 되세요. :)

저작자 표시 비영리 변경 금지
Posted by seanlab
TAG 근황

Trackback Address :: http://www.seanlab.net/trackback/36 관련글 쓰기

댓글을 달아 주세요

  1. 뇌를학대하는알고리즘 2009/09/11 21:06 Address Modify/Delete Reply

    ㅎㅎ 안녕하세요// 알고리즘 서적을 검색하다가 요기까지 와보게 됐네요. 제가 마침 자료구조/알고리즘 공부할 시기가 되었는데 마땅한 책이 없어서요, 이재규님의 책이 있긴 하지만 살펴본 결과 너무 옛날에 나온 거라 정이 안 간다는 ㅠ C/C++은 정석이다 싶을만한 좋은 책들이 굉장히 많지만 알고리즘 책 중에 정석적인 책은 너무 드문 것 같아요.. 와, 근데 정말 시기적절하게도 한빛에서 사뭇 비중있는 서적이 나와주었네요, 이건 저를 위한 책입니다 ㅎ 하마터면 못 찾을뻔 했어요. 네이버 책 검색에는 상위 링크가 안 되어있어서요, 다행히 강컴에 검색 결과 맨 위에 나오네요. ㅎㅎ 그럼 열심히 공부하도록 하겠습니다! 감사합니다!

새 업데이트는 2주 후로 계획하고 있었는데 맥스폐인님의 열화와 같은 버그 레포트 때문에 도저히 그 때까지 미룰 수가 없겠더군요. =_= 이번 0.72b 업데이트는 다음과 같은 부분이 변경되었습니다. 혹시 할일 아이템의 높이가 너무 작게 느껴지시면 의견을 말씀해 주세요. 다음 업데이트 때 반영토록 하겠습니다.

  • 프로그레스바를 더블 클릭했을 때 다운되는 버그 수정
  • About 창의 버전 표기 오류 수정
  • 리스트의 아이템 높이 조정.(의견을 주시면 추후 다시 조정하겠습니다.)
  • TodoCategory.dat 파일 생성 위치 버그 수정.(맥스 폐인님 이 버전으로 테스트 해주실 수 있으세요? 부탁드립니다 :) )

설치 파일은 다음 링크에서 다운 받아 사용하시면 됩니다.

이 프로그램이 여러분에게 도움이 되었으면 좋겠습니다. 언제나 그렇듯, 개선 제안과 버그 레포트는 환영입니다. :) 

저작자 표시 비영리 변경 금지
Posted by seanlab

Trackback Address :: http://www.seanlab.net/trackback/35 관련글 쓰기

댓글을 달아 주세요

  1. Favicon of http://gentlecat.co.kr BlogIcon 젠틀캣 2009/07/24 11:38 Address Modify/Delete Reply

    우오 이거 물건인데요?
    아주 간단하게 사용하기가 편리한듯 하네요.
    데탑 과 노트북에 바로 설치했습니다. ㅎㅎ
    혹시 사용중에 문제나 불편한점이 잇으면 리포팅 하겠습니다. +_+

    • Favicon of http://www.seanlab.net BlogIcon seanlab 2009/07/25 07:18 Address Modify/Delete

      감사합니다. ^^
      다음주말이나 다다음주 초쯤에 다시 한번 업데이트가 있을 예정입니다. :)

  2. Favicon of http://blog.naver.com/krkhnh.do BlogIcon 연필이 2009/07/27 22:11 Address Modify/Delete Reply

    우와~ 따끈따끈한 프로그램이군요! 직접 해보겠습니다!
    (살짝 해본뒤)
    음.. 년/월/일/요일 반복 기능이 있으면 좋겠어요.
    그래도 인터페이스가 정말 맘에 들어요!
    특히 진행상황 설정하는 것은 생각도 못한 기능이라 특히 놀랍습니다!

    프로그래머 지망생으로서 존경합니다.(아직 대1 어린이)

    • Favicon of http://www.seanlab.net BlogIcon seanlab 2009/07/28 05:49 Address Modify/Delete

      반복 기능을 요구하시는 분들이 많네요.
      다음 업데이트에는 모르겠지만, 가까운 시일 안에 반복 기능을 넣으려 합니다. 대학 1학년이면 창창하네요 공부 열심히 하시길 :)

홍기맨 님께서 지적해주신 달력 문제를 수정한 Finish It 0.71입니다. 다시 한번 버그 지적해주셔서 감사합니다. ^^

설치 파일은 아래의 링크에서 다운 받아 사용하시면 됩니다.

Finish It을 사용하면서 발견하신 버그가 있으시거나, 이렇게 하면 더 나아지겠다 싶은 의견들을 댓글로 남겨주세요. 추후 업데이트에 반영하도록 하겠습니다. 감사합니다.
저작자 표시 비영리 변경 금지
Posted by seanlab

Trackback Address :: http://www.seanlab.net/trackback/34 관련글 쓰기

댓글을 달아 주세요

  1. 맥스폐인 2009/07/22 13:19 Address Modify/Delete Reply

    안녕하세요. 프로그램 잘 쓰고 있습니다.


    그런데 혹시 Win + D을 눌러도 작업표시줄로 최소화되지 않게 해주실 수 있나요?

    작업할 때 창을 많이 열어놓고 쓰기 때문에 Win + D로 전부 아래로 내려버리는데 같이 내려가버리면 다시 클릭해야 하는 번거로움이 있더군요.

    그렇다고 항상 위에 놓고 쓰기에는 크기가 좀 커서 방해가 되구요.

    전에 썼던 어떤 포스트잇 프로그램은 그런 모드가 지원이 되어서 좋았던 기억이 있습니다.


    아니면 Finish It! 타이틀바 부분을 클릭하면 프로그램 창이 바 형태로 축소되게 만들어주시면 항상 위에 모드로 두더라도 다른 창의 타이틀 바 위에 올려놓으면 되니까 쓰기 편할 것 같습니다. AIMP가 이런 방식을 지원하던데 편리하더군요.


    부탁드립니다.

    • Favicon of http://www.seanlab.net BlogIcon seanlab 2009/07/22 21:53 Address Modify/Delete

      1) WIN+D 했을 때 창이 그대로 남아 있으면 어떤 분들은 놀랄 수도 있을 것 같습니다. 고민을 많이 해본 후 넣을지를 결정하겠습니다.

      2) 크기를 컴팩트하게 줄이는 기능은 아주 좋은 아이디어 같습니다. 제가 써봐도 다소 큰 감이 있긴 합니다. ^^;
      AIMP를 설치해서 써보고 그 기능을 따라가는 쪽으로 해보겠습니다.

  2. 맥스폐인 2009/07/22 13:22 Address Modify/Delete Reply

    아, 그리고 방금 버그를 하나 발견했는데요

    계속 디폴트 탭을 사용하다가 방금 처음으로 탭을 하나 만들어봤는데
    TodoCategory.dat 파일이 바탕화면에 생성되는군요.

    프로그램 설치 폴더에 생성되도록 해주시면 감사하겠습니다.

    • Favicon of http://www.seanlab.net BlogIcon seanlab 2009/07/22 21:56 Address Modify/Delete

      어라라라?
      그거 참 희한한 일이네요.. 재연 케이스를 알려주시면 감사하겠습니다. 굽신(__)

  3. 맥스폐인 2009/07/22 13:29 Address Modify/Delete Reply

    마지막으로 한 가지만 더 제안을 드리자면,

    현재 작업창이 due date가 빠른 순서대로 정렬이 되게 되어있는데 옵션을 추가하여 사용자가 정할 수 있도록 했으면 좋겠습니다. 중요도 순이나 완료된 퍼센티지 순으로도 정렬할 수 있게 하면 더 좋을 것 같습니다.

    이 글을 쓰다가 버그를 하나 더 발견한 것 같습니다. 카테고리 탭 제일 우측에 있는 좌우 화살표가 제가 생각했을 때는 카테고리 탭이 넘치면 이동하기 위한 인터페이스인 것 같은데 넘치지 않을 때도 있으니 어색합니다. 탭의 갯수가 많아져서 탭이 창을 넘어가게 되면 보이게 하는 게 좋을 것 같습니다.

    너무 요구사항이 많아서 죄송합니다.



    ps : 프갤 화이팅!!

    • Favicon of http://www.seanlab.net BlogIcon seanlab 2009/07/22 21:56 Address Modify/Delete

      탭 이동 화살표 기능도 아주 좋은 아이디어 같습니다. 한번 반영을 하도록 해보겠습니다.

  4. 맥스폐인 2009/07/22 13:47 Address Modify/Delete Reply

    죄송합니다. 몇 자만 더 적겠습니다. -_-;

    일단 버그를 발견했습니다.
    작업 목록에서 완료 퍼센티지 수치가 나오는 막대 그래프를 더블클릭하면 프로그램이 오류가 나면서 죽습니다. 수정 부탁드립니다.

    그리고 다른 하나는 제안입니다.
    현재는 창의 크기와 위치를 변경한 후 프로그램을 종료하면 다시 초기화가 되어서 불편합니다.
    종료 직전의 창의 크기와 위치, 활성화 된 탭을 기억해서 프로그램이 종료되었다 다시 실행되더라도 그대로 복원이 되도록 부탁드립니다.

    감사합니다.

    • Favicon of http://www.seanlab.net BlogIcon seanlab 2009/07/22 17:32 Address Modify/Delete

      프로그램이 죽는다니 크리티컬 에러네요.
      빠른 시간 안에 수정하겠습니다.

      나머지 제안사항들도 접수를 했습니다.
      추후 버전에 반영토록 하겠습니다. :)

  5. 맥스폐인 2009/07/23 08:51 Address Modify/Delete Reply

    안녕하세요. 친절한 답변에 감사드립니다.

    TodoCategory.dat 문제에 대해서 조금 더 자세히 적도록 하겠습니다.

    일단 프로그램 구조가, 카테고리 탭 정보는 TodoCategory.dat 파일에 저장하고 각 카테고리의 태스크 정보는 설치 폴더에 따로 xml 파일로 저장하는 구조인 것 같습니다.

    xml 파일은 설치 폴더에 잘 생성이 되는데 TodoCategory.dat 파일은 프로그램의 바로가기 파일이 있는 위치에 생성되는 것 같습니다.

    그러니까 바탕화면에 바로가기 아이콘을 생성해서 그 아이콘을 더블클릭 하여 실행한 후 새 카테고리를 만들면 바탕화면에 TodoCategory.dat 파일이 생성되고, C:\ 루트 폴더에 바로가기를 복사해서 실행하면 파일이 C:\ 폴더에 생성이 됩니다.

    프로그램 상에서 파일을 생성할 때 경로를 잘못 받아오는 것 같은데 수정 부탁드립니다.



    아, 그리고 About Finish It이랑 프로그램 추가/삭제 항목에 뜨는 버젼이 각각 0.001, 0.1이네요. :)



    2주를 어떻게 기다리죠? ㅠㅠ
    부디 빠른 업데이트 부탁드립니다.

    좋은 하루 되세요!

뇌를 자극하는 알고리즘 원고 리뷰를 받으면서 느낀 바가 있는데, 그것은 "'내' 지혜보다 '우리'의 지혜가 더 월등하다"라는 것입니다. 리뷰를 시작하기 전에 저도 최종 원고를 두 차례나 검토 했습니다. 그 후에 자신 만만하게 7명의 리뷰어들에게 원고를 인쇄해서 보내드렸지요. 리뷰어들은 제가 볼 수 없었던 오류들을 100 여건도 넘게 찾아냈습니다. 여기에서 오류란, 오탈자가 아닌 내용상의 문제를 말합니다. (이 오류들이 사전에 발견되지 않고 그대로 출간되었더라면 어땠을까요? 생각만 해도 아찔합니다.) 제가 이 원고를 어느 교수님 한분에게 리뷰를 부탁드렸을 때 한 달 안에 이런 많고도 중요한 피드백을 얻을 수 있었을까요? 그럴 수 없었을 거라 생각합니다.

그래서 이번이 시작할 C# 4.0 서적 집필에는 초기부터 더 다양한 사람들이 참여할 수 있도록 오픈 소스 방식을 도입하면 어떨까 하고 생각해 봤습니다. 그러던 차에 장고서적이 오픈 소스로 집필되었다는 소식을 들었습니다. 사이트를 방문해보니 제가 생각하던 바로 그것이었던 것이었던 것이었던 것이었습니다!

DjangoBook은 오픈 코멘트 시스템이라는 것을 채택하고 있는데, 각 문단마다 독자들이 자신의 의견을 남길 수 있게 되어 있습니다. 이렇게 하면 같은 부분에 대해 다른 생각을 갖고 있는 독자들의 의견을 쉽게 보고 비교할 수 있다는 장점이 있습니다.

이 녀석을 어떻게 사용해볼 수 없을까 하고 이리 뒤적 저리 뒤적 해봤는데, 이 오픈 코멘트 시스템이 오라일리에서 개발되었다는 사실을 알 수 있었습니다. 이름은 The Open Feedback Publishing System(OFPS)이더군요. 희망에 가득차 OFPS가 오픈 소스인지를 더 알아봤는데, 결론은 "OFPS isn't open source today, although we're discussing that internally." 였습니다.

급 우울해져서 다시 글을 읽는데, Bryan O’Sullivan’s 이라는 용자가 Mercurial에 대해 책을 쓰면서 만든 장고 기반의 피드백 시스템을 공개했다는 희소식이 눈에 들어 왔습니다.

Bryan has since open sourced his Django-based feedback system as part of the development of Mercurial: The Definitive Guide.

브라이언 용자가 만든 이 시스템도 오라일리의 OFPS와 거의 비슷합니다. 차이점이라면 OFPS가 코멘트를 문단의 앞에 달게 하는 반면, 브라이언의 시스템은 문단의 끝에 달게 한다는 정도입니다.

문제는, 이것을 어디에 어떻게 설치해서 사용하느냐는 건데 그것은 따로 생각해봐야겠습니다. 이런 시스템이 존재한다는 것을 알았으니 다른 대안과 비교해서 집필 시스템 구축을 시작해야겠지요. 어이쿠, 벌써 출근할 시간이 되었네요. 집필을 어떤 체계로 할 것인지를 결정하면 다시 글을 올리겠습니다. 그럼 전 회사로~

저작자 표시 비영리 변경 금지
Posted by seanlab

Trackback Address :: http://www.seanlab.net/trackback/30 관련글 쓰기

댓글을 달아 주세요

  1. Favicon of http://www.filepang.co.kr BlogIcon DMW 2009/07/21 01:47 Address Modify/Delete Reply

    헐 쉬지도 않고 새 책을 향해 달리시는건가요?

    • Favicon of http://www.seanlab.net BlogIcon seanlab 2009/07/21 18:49 Address Modify/Delete

      뇌를 자극하는 알고리즘을 탈고한 이후 많이 쉬어서, 몸의 리듬이 많이 깨졌어. 잠이 늘어난 거 같애. 그래서 다시 몸을 추스려서 리듬을 만들려구. 안그러면 영영 읭여모드에 빠져서 못 헤어 나올거 같아 ㅜㅜ

저만 그런가요? Finish It을 쓰고 있어도 그날 하기로 마음 먹은 일들을 못 끝내는 경우가 많습니다. 제 경우에는 DueDate를 초과한 할일들이 점점 쌓이고 있는 실정입니다. 회사 일은 다 끝내는데, 집필을 위한 자료조사라든가, Finish It 코딩, 블로그에 글 쓰기 같은 개인적인 일은 대게 계속 미뤄지기 마련입니다.

답답함에 구글에 "To Do List"로 검색을 해봤더니 좋은 글들이 많이 나왔습니다. 저랑 같은 고민을 하신 분들이 전 세계에 많이 계시더군요. ^^ 전 그 중에서도 다음의 링크에 있는 Carson 씨의 "어떻게 커다란 투두 리스트를 효율적으로 관리하는가?"라는 제목의 포스트가 가장 마음에 와 닿았습니다. 아마 이 분의 방식이 가장 쉬워 보여서일겁니다.

 http://carsonified.com/blog/features/how-to-effectively-manage-your-huge-todo-list/

읽기 귀찮은 분들을 위해 이 포스트를 요약해놨습니다.(사실 아래의 요약은 저 포스트에서 그대로 가져온 겁니다.)

1. Spend time every Monday morning to organize and prioritize your todos for the upcoming week. You have to do this before you get into the office and everyone starts asking for your attention.

매주 월요일 아침에 그 주에 할 일들을 정리하고 우선 순위를 정하세요. 당신은 반드시 사무실에 들어가기 전에, 그리고 사무실 내의 모두가 당신의 관심을 끌기 시작하기 전에 이 일을 해둬야 합니다.

2. Organize and prioritize your todos for the day before you do anything else.

다른 일들을 진행하기에 앞서 그 날에 할일들을 정리하고 우선 순위를 정하세요.



3. Knock out at least two todos before checking email.

이메일을 확인하기 전에는 최소한 두 개의 할일은 처리하세요.

1과 2는 매일, 매주를 시작하기 전에 투두 리스트를 점검하고 확인하라는 뜻입니다. 사무실에 들어가기 전에 하라는 것은 유도리 있게 받아들여야 할 것 같습니다. 30분 일찍 출근해서 점검을 해도 좋겠고, 혼자 조용히 하는 직무를 맡으신 분이라면 출근 후에 해도 좋겠죠? 아무튼 투두 리스트를 무조건 등록해놓는 게 장땡이 아니고, 매일/매주 관리를 계속 해주는 것이 필요해 보입니다.

3은 이메일에 관한 것인데, 이메일은 사실 새로운 To Do와 같습니다. Finish It에 "팀장님에게 답장 쓰기", "AA 보고서 작성하기." 등이 등록될테니까요. 그래서 새로운 일이 쌓이기 전에 최소 두 개정도의 일을 처리하라는 겁니다. 그렇지 않으면 제 Finish It처럼 미완료 업무들이 늘어나는 슬픔을 맛보게 될겁니다.

1, 2, 3도 이미 요약된 3계명(?)이지만 더 간략하게 추려보겠습니다.

  • 매알/매주를 시작하기 전에 할일들을 정리하고 우선 순위를 정하라.
  • 이메일을 확인하기 전에는 최소한 두 개의 일은 처리해라.

어렵지 않아 보입니다. 하지만 아무리 간단한 것이라도 습관으로 배이게 하는 것은 쉽진 않은 일이지요. 당분간 저 두 가지 항목을 실천하는 데에 신경을 써야 하겠습니다. ^^

 

 

 

저작자 표시 비영리 변경 금지
Posted by seanlab

Trackback Address :: http://www.seanlab.net/trackback/33 관련글 쓰기

댓글을 달아 주세요

To Do List 프로그램, Finish It의 개발 로드맵입니다. 이제 본격적으로 C# 4.0의 집필이 시작되면 짬을 내기가 어려울 것 같지만, 그래도 특별한 일이 없는 한 꾸준히 업그레이드를 해나가려 합니다.

Version 0.8, 0.9

  • 그룹핑을 현재 Due Date에서 긴급도, 완료/비완료로 확장/선택할 수 있도록
  • 완료/비완료 필터링 기능 추가 예정.
  • 리스트 선택후 DEL 버튼(삭제), Enter 버튼(수정) 이벤트 처리 기능 추가
  • 달력 개선.
  • 옵선 영구 저장 기능 추가.

Version 1.0

  • 히스토리 관리 기능 추가. 
    히스토리는 기본 2주에서 최대 3개월(사용자 옵션)까지 저장 가능하도록 지원.
  • User Manual 제공(근데 필요하려나?).

Version 2.0

  • Blogging API 지원.
  • To Do List 레포트 기능 지원. (현재로써는 RTF와 HTML 고려)
  • 첨부 파일 기능 지원.
저작자 표시 비영리 변경 금지
Posted by seanlab

Trackback Address :: http://www.seanlab.net/trackback/32 관련글 쓰기

댓글을 달아 주세요

안녕하세요? 박상현입니다.

오늘 아침에 테스트를 마친 따끈따끈한 이번 업데이트는 할일 목록의 상태 관리에 초점이 맞춰져 있습니다. 어떤 변화가 생겼는지는 다음 목록을 참고하세요.

  • 카테고리 삭제시 카테고리 내에 있던 작업 목록이 파일로 남겨지는 버그 수정
  • 컨텍스트 메뉴를 통한 작업의 완료율 변경 기능 추가
  • 컨텍스트 메뉴를 통한 작업의 긴급도 변경 기능 추가
  • 컨텍스트 메뉴를 통한 작업의 카테고리 변경 기능 추가
  • 컨텍스트 메뉴를 통한 카테고리 이름 변경 기능 추가.(카테고리 탭 헤더위에서 마우스 오른쪽 버튼을 클릭해보세요.)
  • 그리고 마지막으로... 컨텍스트 메뉴의 스타일 변화.

다음은 스크린샷입니다.

 

그리고 다음은 제일 중요한 설치 파일입니다. ^^

Finish It을 사용하면서 발견하신 버그가 있으시거나, 이렇게 하면 더 나아지겠다 싶은 의견들을 댓글로 남겨주세요. 추후 업데이트에 반영하도록 하겠습니다. 감사합니다.

 

저작자 표시 비영리 변경 금지
Posted by seanlab

Trackback Address :: http://www.seanlab.net/trackback/31 관련글 쓰기

댓글을 달아 주세요

  1. 홍기맨 2009/07/20 10:32 Address Modify/Delete Reply

    안녕하세요... 님이 만드신 Finish It! 정말 잘 쓰고 있습니다. 쓰기 간단하면서도 있을 것 다 있는 to do 관리 프로그램이 항상 아쉬웠었는데 (그동안 쓰던 프로그램들은 쓰다보니 나중에는 할일 자체보다 할일 등록하고 관리하고 수정하는데 더 많은 시간이 들더군요... -_-;;) 정말 가려운 곳 다 긁어주는 프로그램 감사합니다.

    한가지 말씀 드리고 싶은 것이, 저만 그런 것인지 모르겠는데, task 편집 시 달력이 깨져서 나오더군요. 그러니까 토요일 열에 날짜가 하나도 배정이 안되어 전체적으로 달력이 밀려진 형태로 표시되네요. 현재 제 화면에 표시되는 달력 상으로는 7월 20일이 목요일로 표시가 되는군요. (물론 20일 선택을 하면 월요일로 바르게 표시는 됩니다. 즉 달력 상에만 잘못 표시돼 있네요.)

    항상 감사하게 사용하고 있고, 더욱 더 멋지게 변화하는 모습이 보고 싶어서 (그만큼 저도 이 프로그램에 대한 애정이 남다른 듯 합니다) 버그라고 생각되는 점 한가지 올립니다.

    언제나 감사 드리며 항상 건강하세요!!

    • Favicon of http://lpld.tistory.com BlogIcon seanlab 2009/07/20 11:14 Address Modify/Delete

      버그 알려주셔서 감사합니다. 달력 문제를 하루빨리 해결해서 업데이트 하도록 하겠습니다.
      아마 하루/이틀 정도 걸릴 것 같아요.

      감사합니다. ^^

말씀해주신 개선 사항과 버그 리스트 덕에 Finish It이 점점 더 완성도를 더해가고 있습니다. 이번 업데이트에서 달라진 점은 아래와 같습니다.

  • 할일 수정 창을 컨텍스트 메뉴를 이용해서 뜰 수 있게 했습니다.
  • 할일 삭제도 컨텍스트 메뉴를 이용해서 할 수 있습니다.
  • 듀얼 모니터 사용시 수정창이 안드로메다로 날라가버리는 문제를 수정했습니다.
  • 추가한 할일 항목을 자동으로 선택되고 스크롤 되게 했습니다. 확인하기가 한결 편해졌습니다.

설치 파일은 아래의 링크에서 내려 받으시면 됩니다.

저작자 표시 비영리 변경 금지
Posted by seanlab

Trackback Address :: http://www.seanlab.net/trackback/29 관련글 쓰기

댓글을 달아 주세요

  1. 임민수 2009/07/17 15:49 Address Modify/Delete Reply

    좋은 프로그램 배포 해주셔서 잘 쓰고 있습니다.
    감사합니다.

    몇가지 수정 되었으면 하는 내용이 있어 글 남겨 봅니다.

    1. 탭메뉴로 추가 되는 카테고리 이름을 수정 할 수 있으면 좋겠습니다.
    2. task내에 하위 task를 생성할 수 있으면 좋겠습니다.

    • Favicon of http://lpld.tistory.com BlogIcon seanlab 2009/07/17 18:00 Address Modify/Delete

      의견 감사합니다. ^^
      1. 탭메뉴로 추가 되는 카테고리 이름을 수정 할 수 있으면 좋겠습니다.
      ==> 현재 탭 헤더를 더블 클릭하면 카테고리 이름을 변경할 수 있습니다. 다음 업데이트 때는 오른쪽 마우스를 이용해서 변경하는 기능을 넣으려고 합니다.

      2. task내에 하위 task를 생성할 수 있으면 좋겠습니다.
      ==> 하위 태스크를 생성하는 방법은 지금도 고민중입니다. 애초에 만들 때는 고려하지 않았던 기능인데, 몇몇 분들이 같은 말씀을 해주시네요. 시간이 좀 걸리더라도 매끄럽게 반영될 수 있도록 하겠습니다.

  2. 오클라호마호 2009/08/19 18:49 Address Modify/Delete Reply

    프겔에서 왔습니다!
    좋은 프로그램 이렇게 배포 해주시니
    그저 감사감사~
    감사하는 마음으로 잘 쓰겠습니다~

기능상 달라진 점은 없고, 소소한 버그와 인터페이스 상의 변화가 있었습니다.

  • 할일 편집 창을 띄운 뒤, 작업 표시줄에서 Finish It을 선택하면 편집 창이 뒤로 숨어 버리는 버그 수정.
  • 텍스트 상자, 날짜선택 상자, 중요도 선택 상자 등 현재 포커스를 갖고 있는 컨트롤이 눈에 잘 띄도록 후광 효과 추가
  • 새 할일 목록을 추가했을 때 새로 추가된 항목이 자동 선택되도록 수정.

기능이 찬란한 소프트웨어 보다는 사용하기 편한 소프트웨어가 더 낫다는 것이 제 생각입니다. 그런데 아직 저는 사용하기 편한 UX를 만드는 공부가 많이 부족합니다. Finish It을 개선시켜 나가면서 UX 설계 감각이 더 나아졌으면 하는 바램입니다.

녹화한 동영상에서는 후광 효과가 매우 이상하게 나오네요. 원래는 아래와 같이 깨끗하게 나옵니다.(Urgent 선택 상자의 뒤가 푸르딩딩하게 빛나는 것, 보이지요?)

설치 파일은 아래의 링크에 있습니다.

프로그램의 버그나 기능 개선을 알려주시려면 이 포스트에 댓글로 남겨 주세요. 감사합니다.

저작자 표시 비영리 변경 금지
Posted by seanlab

Trackback Address :: http://www.seanlab.net/trackback/28 관련글 쓰기

댓글을 달아 주세요

  1. Favicon of http://blog.naver.com/masque BlogIcon 날자고도 2009/07/12 17:43 Address Modify/Delete Reply

    어디에서나 동기화할수있었으면 좋겠습니다

    • Favicon of http://lpld.tistory.com BlogIcon seanlab 2009/07/12 23:28 Address Modify/Delete

      쓰기는 FTP, 읽기는 HTTP를 하도록 하면 언제 어디서든 웹에서 접근이 가능하도록 할 수도 있습니다. 하지만 멀티 클라이언트, 보안 문제등 정리해야 할 것들이 있어서 고민을 계속 하고 있습니다.

  2. Favicon of http://iamdobi.net BlogIcon 도비 2009/07/13 11:09 Address Modify/Delete Reply

    위의 이유 때문에 요새는 웹 통합이 대세인데,

    웹으로 마이그레이션 하는것은 어떻습니까.

  3. 2009/07/13 18:01 Address Modify/Delete Reply

    비밀댓글입니다

    • Favicon of http://lpld.tistory.com BlogIcon seanlab 2009/07/13 22:18 Address Modify/Delete

      대분류 파일을 삭제한다고 할일 목록도 자동으로 없어지지 않습니다. 분류를 삭제할 때 파일을 생성하도록 되어 있어요.

파이썬은 동적 객체 지향 언어입니다. 동적이라는 말의 의미는 이미 파이썬 일기의 초장에 정리해놨으니, 이번엔 객체 지향이라는 말의 의미를 알아봅시다. 객체, 지향, 이 두 단어는 따로 떼어 놓으면 전혀 어려운 뜻이 아닌데 붙여 놓으니까 무슨 말인지 하나도 이해가 안 갑니다.

이럴 때는 위키 피디아님에게 도움을 청하는 것도 하나의 방법입니다.

Object-oriented programming (OOP) is a programming paradigm that uses "objects" — data structures consisting of datafields and methods — and their interactions to design applications and computer programs. Programming techniques may include features such as information hiding, data abstraction, encapsulation, modularity, polymorphism, and inheritance. It was not commonly used in mainstream software application development until the early 1990s. Many modern programming languages now support OOP.

라는군요.

요약하자면, 객체 지향 프로그래밍은 프로그래밍을 할 때 "객체"를 중심으로 사고, 생각을 한다는 것입니다. 객체 지향 프로그래밍 이전의 프로그래머들은 명령을 중심으로 생각했었죠. 그나저나 여기에서 말하는 객체는 또 무슨 의미일까요? 그냥 단순하게 우리가 앞에서 살펴봤던 변수와 메쏘드를 함께 갖고 있는 "무엇"이라고 생각하면 됩니다. 앞에서 인용한 설명대로, 객체 내의 변수와 메쏘드는 긴밀하게 상호 동작합니다(그렇지 않으면 한 객체 안에 엮어놓을 이유가 없겠죠!).

인용구의 나머지 부분은 나중에 다시 한번 이야기하기로 하고, 이제는 클래스에 대해 이야기를 시작하겠습니다.

클래스와 객체의 관계는 자료형과 변수의 관계라고 생각하면 딱 맞습니다. 파이썬에서는 모든 것이 객체이므로 자료형이 클래스이고 클래스가 자료형이며, 변수가 객체고 객체가 변수라고 할 수 있습니다. 우리가 지금까지 만들어 왔던 객체들은 모두 파이썬에 내장되어 있는 클래스들을 이용한 것입니다. int, float, string, tuple, list 는 파이썬의 내장 클래스의 일부입니다. 이들은 다시 새로운 클래스를 만들 때 재료로 사용되곤 합니다.

파이썬의 클래스는 다음과 같이 class 키워드를 이용하여 선언합니다. 그리고 그 안에 클래스의 멤버들(변수, 메쏘드)를 선언하면 기본적인 클래스가 완성됩니다.

>>> class A :
    a = 0
    b = 0
    def printMembers(self) :
        print( self.a, self.b )

         >>> obj = A() >>> obj.a = 3 >>> obj.b = 4 >>> obj.printMembers() 3 4

위 코드에서 중요한 건 class 키워드입니다. 우리는 위에서 A라는 클래스를 선언했고, A 클래스 변수 두 개(a와 b), 함수 하나(printMembers)를 정의했습니다. a와 b에 대해서는 특별히 볼 것이 없습니다. 클래스 안에서 선언되었다는 것 말고는 특별한 것이 없습니다. 하지만 printMembers()는 보통의 함수와 다른 것을 갖고 있습니다. 보이나요?

예, self 입니다. self 는 객체 자신을 가리키는 변수로써, self라는 이름은 파이썬에 키워드로 예약되어 있습니다. (즉, 우리는 self라는 변수를 임의로 만들어 쓸 수 없다는 뜻입니다. ) 파이썬은 클래스의 메쏘드로 하여금 반드시 self 매개 변수를 받는 꼴로 구현하도록 강요합니다. 대신 이 메쏘드를 실제로 호출할 때는 self 에 아무것도 대입하지 않아도 됩니다. 마치 self 매개 변수는 없는 것처럼 사용하면 됩니다.

self가 객체 자신을 가리킨다고 했는데, 그럼 self를 통하면 객체의 멤버와 메쏘드 모두에게 접근이 가능하겠죠? self 뒤에 마침표(.)를 찍고 변수 또는 메소드의 이름을 적어주면 됩니다. 다음과 같이 말입니다.

>>> obj = A()
>>> obj.a = 3
>>> obj.b = 4
>>> obj.printMembers()

아, 중요한 것을 빼먹었네요. 위 코드에서 obj를 생성하기 위해 A()라는 함수를 호출해서 그 결과를 대입하는 부분이 있죠? 여기에서 A()를 생성자(Constructor)라고 합니다. 생성자는 클래스와 같은 이름을 가지며, 클래스를 만들어주는 역할을 하는 함수입니다. 생각해보니, 우리는 A() 생성자를 구현한 적이 없습니다. 하지만 우리는 호출을 했고, A() 생성자는 우리가 원하는 대로 객체를 만들어 반환했습니다. 이것은 기본 생성자(Default Constructor) 때문입니다. 우리가 생성자를 따로 만들지 않아도 파이썬에서 기본 생성자를 제공합니다.

클래스를 사용하다 보면 어떤 때는 객체를 생성할 때 일부 멤버 변수를 원하는 값으로 초기화하고 싶을 때가 있습니다. 이런 경우에는 생성자를 직접 구현하는 것이 좋은 답이 됩니다. 생성자를 호출할 때는 클래스의 이름 뒤에 ()만 붙이면 되지만, 구현할 때의 생성자는 __init__()라는 이름을 가집니다. __init__()을 구현하면, 우리는 클래스() 로 호출해서 사용하는 것이죠.

한편, __init__() 도 클래스의 메쏘드이기 때문에 self 매개 변수는 반드시 있어야 합니다. 추가적인 매개 변수는 self 뒤에 콤마(,)로 구분해서 열거하면 됩니다. 다음 코드의 NameCard 클래스를 보면 이해가 금방 갈 겁니다.

>>> class NameCard : 
           name = "" 
           cp_number = "" 
           def __init__(self, name, cp_number) : 
               self.name = name 
               self.cp_number = cp_number 
>>> sean = NameCard( "Sean", "010-5555-7777" ) 
>>> sean.name 
'Sean' 
>>> sean.cp_number 
'010-5555-7777' 

자, 이렇게 해서 간단한 클래스를 만드는 데까지 공부를 했습니다. 본격적인 객체 지향 프로그래밍을 위해서는 상속이나 오버로딩, 오버라이딩에 대해 공부를 해야 하는데, 벌써 여기까지 오는 데도 상당한 시간이 걸렸습니다. 앞으로 지금처럼 일기 형식으로 글을 남길지는 고민입니다. 파이썬 일기는 온라인 문서만으로 공부했을 때 어느 정도 시간이 걸리는지, 얼마나 스트레스를 덜 받으면서 새 언어를 익힐 수 있는지를 보고자 하는 개인적인 실험이었습니다.

실험의 중간 결과를 말씀드리자면, 온라인 문서만으로는 제대로 공부하는 것은 어렵다는 판단이 섰습니다. 이런 식으로는 제 스스로 공부하는 데에도 어려움이 있고 의미 있는 문서를 남기고자 하는 취지도 살리질 못할 것 같습니다(그래서 #6 파이썬 일기부터는 일기 형식이 아닌 강좌 형식을 취했습니다.).

뭔가 더 좋은 방법을 찾아봐야겠습니다. 방법이... 있겠죠? ^^;

저작자 표시 변경 금지
Posted by seanlab

Trackback Address :: http://www.seanlab.net/trackback/25 관련글 쓰기

댓글을 달아 주세요