Blog | Tag | Local | Media | Guest | Login  RSS
그동안 PowerPoint, OmniGraffle, 종이를 이용한 웹페이지 프로토타입에 만족을 못하다가 찾은 프로그램입니다.

프로토타입의 그래픽이 너무 깨끗하면 디자이너의 최종 디자인에 영향을 끼칠 수도 있는데, 스케치 느낌으로 그릴 수 있어 콘셉이라는 느낌을 전할 수 있습니다.

예제로 me2day 페이지를 한번 그려 봤습니다. 앞으로 주력툴로 사용할 예정입니다.




크리에이티브 커먼즈 라이선스
Creative Commons License

 태그 : 
이 글의 관련글(Trackback) 주소 :: http://ksjun.tistory.com/trackback/13 관련글 쓰기
Tracked from ksjun's me2DAY | 2009/01/09 20:17 | DEL
웹페이지 프로토타입툴 - Balsamiq Mockups
Name
Password
Homepage
비밀글 (Secret)
어플리케이션 또는 웹서비스를 세상에 알린 후에 해야 하는 다음 행동은 유저의피드백을 받는 일입니다.

유저의 피드백을 받아 이를 서비스에 반영하여 더 많은 사용률을 이끌어 내어야 합니다.

피드백 게시판 또는 메일로 다음과 같은 내용을 받을 수 있습니다.
  1. '너무 좋아요. 잘쓸께요.'
  2. '이 기능이 아쉽군요. 쉬운 일이니 일주일 안에 반영해 주세요.'
  3. '이런 XXX. 왜 내말을 안듣는 거야. 잘되나 보자.'
  4. '에러가 나서 더 이상 진행할 수가 없어요.'
4번째를 제외하곤 반영할 내용이 없습니다. 2번으로 들어온 내용이 처음 보는 내용일 경우 내가 내 제품에 대해 깊이 생각했었나를 고민해 보아야 합니다.

First Rule of Usability? Don't Listen to Users


크리에이티브 커먼즈 라이선스
Creative Commons License

 태그 : 
이 글의 관련글(Trackback) 주소 :: http://ksjun.tistory.com/trackback/12 관련글 쓰기
Name
Password
Homepage
비밀글 (Secret)
사용자 삽입 이미지

The Django Book

일년 정도 beta로 공개되어 왔던 Django에 관한 책이 드디어 정식 출간되었습니다.

모든 chapter들이 완료되었고, 실제로 인쇄도 완료되었다고 합니다.

온라인으로도 모든 내용이 공개되어 있습니다.

http://www.djangobook.com/

크리에이티브 커먼즈 라이선스
Creative Commons License

 태그 : 
이 글의 관련글(Trackback) 주소 :: http://ksjun.tistory.com/trackback/11 관련글 쓰기
Name
Password
Homepage
비밀글 (Secret)
JavaScript 언어는 JavaScript: 세상에서 가장 오해가 많은 프로그래밍 언어의 내용처럼 많은 오해를 받고 있습니다.

제가 내린 결론은 "JavaScript는 굉장히 어려운 언어이며, 실수하기 쉬운 언어입니다. 제발 그냥 사용하지 마세요!" 입니다.

실제로 JavaScript 언어를 사용해야 한다며 다음 사항은 알고 시작해야 합니다.
  • 클로저
function make_counter(i) {
    return function() { return ++i; };
}
var counter = make_counter(5);
var c1 = counter(); // <-- 6
var c2 = counter(); // <-- 7
  • 변수의 범위
function test() {
    var i=5;
    if (true) {
        var i=7;
    }
    var x = i; // <-- 5가 아니고 7이다.
}
  • 상황에 따른 this의 의미
var x = this; // <-- global object
var o = {
    fn:  function() {
        var x = this; // <--  x === o === this
        var  fn2 = function() {
            var x = this; // <--  global object
        }
    }
};
  • 오브젝트의 prototype 프로퍼티의 의미
  • ==와 ===의 차이점
Yahoo!의 JavaScript 아키텍트인 Douglas Crockford의 강의 비디오가 많은 도움이 됩니다.


크리에이티브 커먼즈 라이선스
Creative Commons License

 태그 : 
이 글의 관련글(Trackback) 주소 :: http://ksjun.tistory.com/trackback/10 관련글 쓰기
Name
Password
Homepage
비밀글 (Secret)
jQuery는 Y!UI, Prototype, Dojo와 같은 자바스크립트 라이브러리입니다.

DOM, Event, Effect, Ajax와 같은 기능을 지원하는데 클래스는 단 한 개입니다. 전역 함수가 있는 것도 아니고 모든 함수는 다 그 하나의 클래스에 다 들어있습니다. Y!UI의 100여개 클래스에 비해 엄청나게 monolith한 디자인입니다.

또한, 하나의 메소드가 인자에 따라 다른 기능을 합니다. html()의 경우 인자 없이 호출한 경우 getter로 작동되며, html("<div></div>")는 setter로 동작합니다. click()의 경우 핸들러를 인자로 주었을 경우 이벤트를 등록(bind)고, 인자 없이 불렀을 경우 이벤트를 발생(trigger)시킵니다. 대부분의 메소드가 이런 패턴으로 동작하고 있습니다.

하지만 jQuery는 잘 디자인되고 쉽게 사용할 수 있는 강력한 라이브러리입니다. GoF의 디자인패턴에서 보면 나쁜 냄새를 풍기는 이런 디자인이지만 알고 쓰면 장점도 많이 있습니다.
크리에이티브 커먼즈 라이선스
Creative Commons License

 태그 : 
이 글의 관련글(Trackback) 주소 :: http://ksjun.tistory.com/trackback/9 관련글 쓰기
Name
Password
Homepage
비밀글 (Secret)
파이썬의 웹프레임워크인 Django 이야기입니다.

사용자 삽입 이미지

Django

Django의 현재 공식 버전은 0.96으로 계속 새로운 기능들이 추가되고 있는 프로젝트입니다.  0.95에서 0.96으로 변경될 때에도 newforms가 새로 되었고 현재 svn 버전에는 모든 내부 문자열이 unicode화 되었습니다.

1.0의 출시 소식이 연초부터 있었지만, 아직 마무리가 덜된 부분이 조금씩 있어 계속 늦어지고 있습니다.

그래서 이번에 Django 커뮤니티에서 Django Sprint 행사를 9/14에 연다고 합니다. 이번 행사는 세계적으로 온라인-오프라인에서 진행됩니다.

Django Sprint에서는 newforms-admin, ORM aggregate support, multi-DB support와 GeoDjango들을 비롯한 큰 기능들의 마무리와 1000여 개의 남아있는 이슈들의 해결을 목적으로 한다고 합니다.

아직 Django를 사용만 했을 뿐 패치에 참여하지 못한 분들도 환영한다고 하니 저도 이번에 참여하려 합니다.

같이 참여하실 분 있으신가요?

크리에이티브 커먼즈 라이선스
Creative Commons License

 태그 : 
이 글의 관련글(Trackback) 주소 :: http://ksjun.tistory.com/trackback/8 관련글 쓰기
Name
Password
Homepage
비밀글 (Secret)
즉시 실천의 힘
할 일 관리 방법인 GTD 에서는 '2분룰'이 있습니다. 해야 할 일들을 모두 수집한 후에 이를 분류할 때 2분안에 할 수 있는 일이라면 바로 실행하라고 합니다.

이 법칙은 대부분의 다른 자기경영법에서 나오는 방법입니다. '다수의 사람들이 옳다고 하면 옳은 것이다.' 법칙에 의거해서 옳은 말입니다. :)

어떤 서비스를 계획할 때 처음부터 '어떤 요소가 필요한가', '어떻게 멋지게 만들까'를 생각하기 보다는 처음 떠오르 아이디어의 에너지를 가지고 프로토타입을 만들어 보아야 합니다.

이 프로토타입이 다수의 사람들이 재미없다고 하면 '다수의' 법칙에 의거 없던 일로 해야 합니다. ^^
크리에이티브 커먼즈 라이선스
Creative Commons License

 태그 : 
이 글의 관련글(Trackback) 주소 :: http://ksjun.tistory.com/trackback/7 관련글 쓰기
Name
Password
Homepage
비밀글 (Secret)
서광열님의 글에서 소개된 싱글톤 구현은 __init__가 매번 실행되는 문제가 있습니다.

여러 방법 중에 아래것이 멋지게 보여 소개합니다.
class Spam:
def __call__(self):
return self

Spam = Spam()

>>> s1 = Spam()
>>> s2 = Spam()
>>> s1
<__main__.Spam instance at 0xb7ad534c>
>>> s2
<__main__.Spam instance at 0xb7ad534c>
>>> Spam
<__main__.Spam instance at 0xb7ad534c>

물론 type(Spam)이 'type'이 아닌 'function'이고, Spam이 실제 사용되기 이전에 생성된다는 문제점은 있습니다.

그런데 이렇게 일반적인 객체를 만드는 방법으로 싱글톤 객체를 사용하는 방식은 문제가 있습니다.

s1 = SpamWithOption(1)
s2 = SpamWithOption(2)

위와 같이 생성시 인자를 받는 경우 어떻게 처리해야 할까요? 인자가 같을 때만 같은 객체를 반환할 수도 있고, 처음 생성될 때 받은 인자만 의미를 가지게 할 수도 있습니다.

차라리 Java, C++ 스타일의 명시적으로 Spam.init(...), Spam.getInstance()을 사용하는 것이 좋을 것 같습니다.

하지만 가장 추천하는 방법은 싱글톤을 사용하지 않고 class 대신 파이썬 모듈을 만들고  function을 제공하는 것입니다.
크리에이티브 커먼즈 라이선스
Creative Commons License

 태그 : 
이 글의 관련글(Trackback) 주소 :: http://ksjun.tistory.com/trackback/6 관련글 쓰기
Name
Password
Homepage
비밀글 (Secret)
만들고 싶은 서비스 이야기입니다.

저는 GTD 방식의 할 일 관리를 좋아합니다. 우선순위나 종료일을 명시하지 않고 할 일들을 수집, 정리하여 '이제부터 시간이 있는데 무엇을 해야 하지?'라는 물음에 답을 주는 할 일 관리법입니다.

사용자 삽입 이미지

GTD


GTD는 Getting Things Done의 약자로 우리나라에도 '끝도 없는 일 깔끔하게 해치우기'라는 이름으로 번역서가 있습니다.

머리 속에 항상 할 일들이 쌓여 있고 여기서 헤어나고 싶으시다면 이 책을 권해드립니다. (물론 책이 일을 대신 해주지는 않겠죠. ^^)




사용자 삽입 이미지

Life Balance


Palm TC를 사용할 때는 Life Balance를 사용하여서 할 일을 관리했습니다. 무척 만족한 애플리케이션으로 액정이 깨지는 바람에 요즘에는 사용하지 못하고 있습니다.

한동안 할 일을 관리를 안 했더니 할 일은 많은 것 같은데 나는 놀고 있고, 막상 일하려고 하면 무엇을 먼저 해야 할지 모르겠으며, 잠을 자려니 다음에 해야 할 일들이 머리에서 브레인스토밍을 하고 있어서 다시금 GTD를 보았습니다.


사용자 삽입 이미지

MyLife Organized




지금은 Windows Mobile로 작동되는 Dell의 X51V를 사용하고 있어서 MyLife Organized를 사용해보고 있습니다. 물론 어느 정도 만족하며 사용하고 있습니다.

하지만, 만약 이 PDA가 고장 나면 또다시 애플리케이션을 바꿔야하고 웹이나 휴대전화와의 연동이 안되는 등 몇 가지 욕심이 있어 시간이 나면 서비스를 만들었으면 하는 욕심이 납니다.








다음과 같은 기능이 있어야 저처럼 터무니없는 고객의 입맛을 맞출 수 있습니다. :)
  • Windows Mobile 기기에서 작동할 수 있어야 한다. ( WxPython으로 작성하자~ )
  • 웹에서도 사용 가능해야 한다. 물론 휴대전화에서도 보여야 한다. ( Django 화이팅 )
  • 데스크탑에서도 사용 가능해야 한다. (Adobe AIR로 윈도, 리눅스, 맥에 대응 !!)
  • SMS MO를 이용해서 휴대전화에서 쉽게 SMS를 이용해서 할 일을 올릴 수 있어야 한다.
(물론 iPhone에서도 볼 수 있어야 하고, OpenAPI를 지원해서 다음 버전 MS Outlook에서 기본 기능으로 탑재되고 ;;;; )


크리에이티브 커먼즈 라이선스
Creative Commons License

 태그 : 
이 글의 관련글(Trackback) 주소 :: http://ksjun.tistory.com/trackback/5 관련글 쓰기
Name
Password
Homepage
비밀글 (Secret)
1. 매일 자주 방문할 수 있는 웹사이트어야 한다.

매일 오지 않으면 처음 몇 번만 방문할 뿐이다.


2. 블로그, 게시판, 포럼과 같은 기존 미디어와 융합되어야 한다.

새로운 것을 좋아하는 유저도 현재 자신이 사용하는 것을 버리기 싫어한다. 위젯이나 플레시 동영상과 같이 기존틀안에서 사용할 수 있게하여 유저를 끌어들이자.


3. 의미있는 컨텐츠가 쌓여야 한다.

'서비스=플렛폼=컨텐츠' 이다. 가령 구글이 서비스를 사고 싶다고 할 때는 대부분 컨텐츠를 사가고 싶을 때 뿐이다.

또한 자유게시판에 글이 100만개있어도 오늘 이전 글은 이제 의미가 없다. 분류가 잘된 의미있는 컨텐츠가 재산이다.


4. 컨텐츠를 남기는 일이 재미있어야 한다.

유저는 알바가 아니다. 서비스가 신기해서가 아니라 정말 재미있어서, 필요해서 이용하게 하여야 한다.


5. 유저들은 완성된 서비스를 보기 원한다.

빠른 피드백을 얻는 것도 중요하지만 첫인상이 중요하다.
크리에이티브 커먼즈 라이선스
Creative Commons License

 태그 : 
이 글의 관련글(Trackback) 주소 :: http://ksjun.tistory.com/trackback/4 관련글 쓰기
Tracked from goigoi's me2DAY | 2008/11/07 23:58 | DEL
미투데이는 완벽하게 성공한 웹서비스
Name
Password
Homepage
비밀글 (Secret)