TextMate 한글 폰트 문제 해결

2007. 1. 22. 10:28
TextMate 에서 한글 폰트를 제대로 쓸 수 없는 문제점을 해결할 수 있는 방법

장혜식님의 글 : TextMate 한글 반쪽으로~
@Story 블로그의 글 : TextMate를 위한 한글 고정폭 글꼴 만들기

먼저 혜식님의 글을 보고 링크되어있는 폰트를 사용해보니 줄간격이 마구 커지는 문제가 발생하여 어쩔 수 없이 X11  과 fontForge 를 설치해서 다시 폰트를 만들 수 밖에 없었습니다.

아래는  TextMate에서 한글을 쓰는 모습입니다. 문제가 해결될때 까지는 이런 식으로 보기에는 조금 어색하지만 사용하면 될 것 같습니다. 최소한 겹쳐보이지는 않으니까요.

사용자 삽입 이미지


,

궁극의 Task Planner (시간관리차트)

2007. 1. 5. 15:18
여러가지 시간관리 방법에 대한 글도 있고 방법도 있고 프랭클린 플래너도 존재하고 있지만 "류비세프" 라는 학자가 (아래 도서 참조)
시간을 정복한 남자 류비셰프
다닐 알렉산드로비치 그라닌 지음, 이상원.조금선 옮김/황소자리

사용했던 정말 평생을 걸쳐서 시간을 관리해서 효율적으로 썼다는 글을 본 뒤로는 몇가지 시도를 해보다가 포기하곤 했었습니다. 프랭클린 플래너도 써보고, 온라인 플래너도 써보고, 그날그날 시간관리 차트도 그려보고 ... 오래하진 못했던 기억이 있네요. 그런 와중에 또다른 Time / Task 를 Planning 할 수 있는 도구 (사실은 양식)이 보여서 잠시 봤는데, 상당히 한눈에 들어오는 것이 사용법도 명확한 것 같고, 맘에 들어서 소개해볼까 합니다. 이름하야 Emergent Task Planner / Time Planner 입니다. David Seah 의 블로그 에 올라온 글 The Printable CEO™ VI.1: Emergent Task Planning에 나온 포멧인데 아래 그림에서 보는 것과 같이 상당히 잘 작성된 포멧인 것 같습니다.
사용자 삽입 이미지

Task Planner 작성 예

또다른 시도를 하기에는 좋은 시간이죠? 연초이니 ^^;;; 잠시 하다가 또 멈출지는 모르겠지만, 다시한번 새로운 해에 새로운 시도들을 해보실 분들에게는 추천할만한 시간관리 방법 같습니다.

위 블로그 사이트에 가시면 Task 관리 뿐만 아니라 Time 관리에 관련된 각종 포멧들을 배포하고 있습니다. 온라인 버젼도 존재하는데 아직은 알파 버젼이네요.
,

웹표준 관련 참고 사이트 정리

2006. 12. 27. 15:59
,

기본이 중요하다.

2006. 12. 26. 11:32
드왈라 타프의 책 "천재들의 창조적습관" (번역제목이 맘에안들지만) 에서도 항상 강조하는 것이  기본에 대한 것이다. 기본, 왜 기본을 연습해야 하는지 나름대로 무용을 예를들어서 설명해놓은 것이 맘에 와닿는다. 기본에 충실하지 않고 기본에 충실하게 연습이 안되어있다면, 창조적인 행위를 할 수 없다. 즉, 창조적인 행위는 기본의 실천과 습관화에 달려 있다고 봐도 과언이 아니다.

개발자로서의 기본이 안되어있다는 생각을 주말내 해보게 되었다. 쩝 창피하다 ㅋ. 기본 내공 쌓기를 매일 실천하지 않은 티를 내고 다니다보니 역시나 맘에 또 찔린다. 에궁 기본에 더욱 충실해져야겠다.

맨날 쓰는 접근제한자 정리

클래스 접근 제한자
  • public : 어느 클래스에서라도 접근할 수 있다.
  • abstract : 불완전한 클래스로 직접 객체를 생성할 수 없는 클래스이다.
  • final : 상속을 할 수 없는 클래스이다.
  • default : 접근제한자를 생략할 수 있으며 같은 패키지에서만 접근할 수 있다.

맴버변수 접근 제한자
  • public : 모든 클래스 및 패키지에서 접근이 가능하다.
  • private : 해당 클래스내에서만 접근이 가능하다.
  • protected : 같은 패키지 내에서는 접근이 가능하며 상속을 받았을 경우 다른 패키지에서도 접근이 가능하다.
  • default : 같은 패키지 내에서는 접근이 가능하다.
  • static : 클래스 단위로 존재하는 변수로 모든 객체가 공동으로 사용한다.
  • final : 값을 변경할 수 없다.

메소드 접근 제한자
  • public : 모든 클래스 및 패키지에서 접근이 가능하다.
  • private : 해당 클래스내에서만 접근이 가능한다. 가장 제한적인 방법이다.
  • protected : 같은 패키지 내에서는 접근이 가능하며 상속을 받았을 경우 다른 패키지에서도 접근이 가능하다.
  • default : 같은 패키지 내에서는 접근이 가능하다.
  • static : 클래스 단위로 존재하는 메소드로 모든 객체가 공동으로 사용한다.
  • final : 상속할 수 없다.
  • synchronized : 하나의 스레드만을 접근할 수 있도록 허용
  • abstract : 추상메소드로 중요한 역할을 한다. 불완전한 메소드를 body가 없이 선언부만 있다. 상속을 받은 클래스는 반드시 재 정의해서 사용해야 한다.
위에는 없는 내용: 파라미터 시그너쳐에 접근 제한자가 들어간 경우 (특이하다 - 이렇게 쓰는 경우가 어떤 경우일까?)도 별다른 고민 없이 로컬 스코프에서는 동일하게 적용된다. (주의!! 쩝 초기화 정도는 가능할 줄 알았다고 착각했었음 ㅡㅡ;;;)


OOP 기본중의 하나인 상속의 두가지 종류 정리 :
  • Class inheritance: 상위 클래스에 정의된 속성과 동작을 하위 클래스로 복사한다. 새로운 속성과 동작을 하위 클래스에 추가하려는 경우에 사용한다. 하위 클래스는 상위 클래스에 정의된 속성과 동작 이름을 그대로 사용함으로써 상위 클래스를 오버라이딩 한다.
  • Interface inheritance: 추상화된 동작의 시그너쳐만 상속받는다. 즉, 각각의 하위 클래스에서 다른 구현을 준비하기 위해서 상위 클래스와 동일한 시그너쳐로 invoke 한다.


,

보통 명필이 붓 탓하는 것은 아니라고 늘상 들어왔던게 있어서 그런지 여러가지 분야에도 대략 이런 비스무리한 논리로 몰아세우는 사람들이 있다. 뭐 내공이 부족한 사람들이 댓구를 하면 더욱 치부하고 말아버리는 경향도 있곤 한다.

그럼 프로그래밍의 대가께서 말씀하시길 ~~ 하면서 요런 말씀을 하셨더랬다. 라구 함 얘기해보자.

마틴 파울러님께서 Bliki 에 최근에 올린 글(
BigScreen)을 보면 누가 개발 생산성을 향상 시키려면 어떻게 해야하나요? 라는 질문에 수년간 이런 얘기를 해주셨단다.


큰 모니터를 써라 - 20인치 넘는걸루다가 그것도 최소한 듀얼 모니터로 개발할 수 있게 해야한다.


ㅎㅎ ... 직접 특정 제품의 가격까지 언급하시면서 얘기하신걸 보니 정말 많은 생산성의 향상을 경험하신듯 ...

요즘처럼 수많은 프레임웍과 각종 툴, 늘어나는 각종 표준들, 각종 API/메뉴얼 및 웹브라우저 등등등을 띄워놓고 작업을 하게되면 정말이지 듀얼모니터 같은게 절실히 필요해 지기도 한다.

그나마 난 맥을 쓰고 있어서 익스포제' 의 기능을 도움받아서 쓰고는 있는데, 아아 정말이지 좁디좁은 화면에서 코딩하고 있노라면 넓은 미로에서 좁은 영역만을 바라보며 헤메이는 느낌이 종종 들때가 있다.

개발자들의 노후장비는 신경 안써주시는 분들에게 이런 글을 보여주고 싶다. (고참일수록 더 노후 장비를 가지고 일한다 ㅡㅡ;;; 경력이 늘어가면 노후장비 손보는 능력도 따라서 상승한다.)

'문제&해결' 카테고리의 다른 글

웹표준 관련 참고 사이트 정리  (0) 2006.12.27
기본이 중요하다.  (0) 2006.12.26
MacOSX - ruby+rails+mysql+~~~~  (0) 2006.11.23
JSOC: JavaScript Object Cache  (0) 2006.11.14
구글 검색 활용하기 (구글 커맨드)  (0) 2006.11.04
,

MacOSX - ruby+rails+mysql+~~~~

2006. 11. 23. 16:35
아아.. 정목님의 글을 보다가 갑자기 다시 환경을 설정해보고 싶어서 시작한 일이 커졌다 ㅡㅡ;;
  1. niceview(정목)님의 정리문서 : 링크
  2. Pascal Belloncle의 글 : 링크
  3. Evan Weaver : 링크
  4. Hivelogic : 링크
  5. 기타 : 링크, 링크1
  6. MySQL on Mac OS X : 애플개발자사이트
위 링크된 문서를 몽조리 참고해보고 삽질을 계속하는 중이다.
이전에 설치되었던 것의 삭제가 제대로 안되었던 것일까... 하여간 결론은 mysql 데몬이 뜨질 않는다 ㅡㅡ;;
권한 문제인지도 모르겠다는 생각도 들고, 어쨌든 다시 설치를 해봐도 그렇고 흐
로그를 찾아봐야 하는데 음... 어디에 있는지 /var 밑을 뒤져봐도 속시원히 보이는 내용은 없어보이는데, 주말까지 기다렸다가 물어봐야겠다. 에공

,

JSOC: JavaScript Object Cache

2006. 11. 14. 10:26
요즘 Ajax 를 적용한 스크립트 코드들을 많이 생성하면서 고민되는 문제중의 하나는 처음과는 달리 성능 부분이나 메모리 관련 부분이다. 사실 메모리야 수백메가 이상 올라가지 않는 이상 크게 고민하지 않아도 (ㅡㅡ;; 브라우저 정말 생각보다 잘 안죽는다 대단하다), 성능 부분은 점점 고민의 폭이 증가되는 부분이다.
async 로 호출하는 부분을 따로 브라우저 단에서 큐 처리를 한다던지 뭔가 꽁수들을 지속적으로 적용하다 보면 점점 지저분해 지는 코드들을 보면서 이걸 누가 어떻게 유지보수를 할 수 있을까? 라는 의문이 들면 다시 회의에 빠져들곤 한다.

그런 고민을 어느정도 해소시켜줄만한 깔끔하고 괜찮게 보이는 넘이 나타났다.  JSOC (JavaScript Object Cache). 오픈소스인데다가 확장하는데 굉장히 유연한 형태라서 한번 써볼만한 것 같다.

어느정도 성능이 개선될지 한번 적용해봐야겠다. 성능 비교에 대한 자료가 될만한 것이 나오면 다음 기회에 공개를 ~~~
,

구글 검색 활용하기 (구글 커맨드)

2006. 11. 4. 21:08
구글 페이지는 썰렁하다 입력할 수 있는 공간만 덜그러니 놓여있다보니, 그냥 아무생각 없이 타이핑하고 나타나는 수많은 검색결과들을 눈으로 스캐닝 하곤 하는 사람을 많이 본다.
사이트, 블로그내용 등등 수도없이 돌아다니면서 필요한 내용을 찾을 순 없지 않겠는가?
어쨌든 "구글링" 이라는 말이 의미있는 용어로 통용될 정도이니 구글에 대해서는 더 말해 뭐하겠는가. (구글링이라는 말이 단적으로 검색엔진에 대한 신용과도 같은 의미를 갖는다고 생각한다 - 왠지 브리태니커에 의하면 ~~ 과 같은 뉘앙스가 느껴지지 않는가?)

단지, 주변에 있는 사람들에게 "구글은 모든 검색엔진의 슈퍼셋이다." "구글링 해봐라" 이런 말을 해도 Nxx 지식검색을 더 자주 하는 모습을 보면서 약간은 구글을 십분 활용하지 못하는 것 때문에 누군가가 걸러준 내용중에서 검색함으로써 사용자들에게 좀더 빠르게 원하는 것에 접근하는 듯한 착각을 주고 있는 것 같아서, 구글 검색 부분에 대해서 활용할 수 있는 내용을 약간 정리해본다.

구글 검색엔진창에 입력할 수 있는 커맨드(검색을 좀더 스마트하게 해주기 위한 옵션기능)의 종류가 많다보니 대부분의 사람들은 그냥 검색어만을 나열해서 입력하는 경우가 대부분이다.

커맨드를 알려줘도 자주 사용하지 못하게 되면 잊어버리게 마련이니, 아래와 같은 사이트의 도움을 받는 것도 방법이겠다.


유용한 커맨드 몇몇개 정리

  1. filetype : 파일타입별 검색 파일의 타입별로 검색한다.
    (예) pdf 파일중에 ruby 라는 단어가 포함된 것 ==> filetype:pdf ruby
  2. site : 특정 사이트내 내용 검색
    (예) apple.com 사이트에서 macosx 검색하기 ==> site:apple.com macosx
  3. define : 단어에 대한 정의 검색하기
    (예) early adopter 에 대한 정의 검색 ==> define: early adopter
  4. link : 누가 사이트를 링크하고 있는지 보기
    (예) link:jimanryu.wordpress.com
  5. related : 입력한 url 과 관련된 페이지 찾기
    (예) related:jimanryu.wordpress.com
  6. cache : 페이지가 없어지거나 한 경우 구글에 캐시된 내용 보기
    (예) cache:jimanryu.wordpress.com
  7. bsd, linux, mac, microsoft: 특정 OS 관련 검색
    (예) mac:macosx
우선 위정도만 가볍게 ~~
그럼. 즐거운 구글링 ~~~

'문제&해결' 카테고리의 다른 글

MacOSX - ruby+rails+mysql+~~~~  (0) 2006.11.23
JSOC: JavaScript Object Cache  (0) 2006.11.14
티스토리로 이주중  (0) 2006.10.09
Spring MVC - JSTL view 사용시 오류나는 경우  (0) 2006.07.02
MoinMoin - UnicodeDecodeError  (0) 2006.06.19
,

티스토리로 이주중

2006. 10. 9. 13:36
그동안 blogger.com -> wordpress.com 등으로 이사다니다가. 이제 급기야 티스토리에 도달하는 지경에 이르렀다. 글쎄 악필이 붓 탓하는 것은 아니라 하지만, 새로운 도구가 나에게 활력을 불어넣어 주는 건 사실이다.

기존에 사용하던 블로그 서비스에서 문제가 되었던 것은 무었일까? 이전에 사용했었던 두군데 모두 "내 맘대로" 부분이 조금은 미흡했던 것 같다. 2% 부족함을 느꼈던 때문인지는 몰라도, 뭔가 땡기는 것이 생기면 바로 옮겨가야지 하고 노려보던 찰나에 평소에는 눈여겨 보지 않던 국내 서비스중에 티스토리가 눈에 들어오게 되었다.

부족한 부분을 티스토리가 충분히 채워줄 것인가? 라는 질문에는 지금은 언뜻 답할 수는 없지만 벌써부터 이래저래 데이타를 이전할 방법을 찾아보는 걸로 봐서는 조만간 메인 블로그로 사용하게 될 것 같은 생각이 든다. 그리도 티스토리에 애책을 갖고 시작할 수 밖에 없는 요인중 또하나는, 너무나도 얻기 힘든 계정 ㅡㅡ;;; 이런 것도 무시못할 요인이다. (정말 힘들게 얻은 것 같다... 하여간 계정을 만들게 해준 dongki님에게 감사하는 맘을 가지면서)

이제 또다시 시작이다.
,

Spring MVC 셈플 코드 연습중 첫번째 문제..

뷰와 컨트롤러를 분리하기 위해서 JstlView 클래스를 사용해서 분리하려고 테스트 하다가 아래와 같은 오류가 발생하였다.

2006-07-02 20:25:16 StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception
java.lang.NoSuchMethodError: javax.servlet.jsp.tagext.TagAttributeInfo.<init>(Ljava/lang/String;ZLjava/lang/String;ZZ)V
at org.apache.jasper.compiler.TagLibraryInfoImpl.createAttribute(TagLibraryInfoImpl.java:568)
at org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:401)
at org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:248)
......

쩝 이리저리 설정을 봐도 잘못된 곳은 없었는데, 문제점은 servlet.jar 파일을 클래스 패쓰에 넣어두었던 것 때문에 발생하는 것이었다.

위와 같은 문제가 발생하면 클래스 패쓰에 servlet.jar 또는 struts.jar 같은 파일이 잡혀있는지 주의 깊게 살펴보자.

,