딱히 대단한 내용은 아니지만 제 경우와 관련된 사항입니다. 별 다른 방법이 없는 분들에게 추천입니다. 


항상 그렇듯이 젊을 때는 괜찮더니 (진짜 진짜 젊을 때를 말합니다) 30대 중반이 넘어서부터는 갑자기 피부가 가렵기 시작합니다. 그것도 여름은 괜찮더니만 가을부터 겨울되면 가렵기 시작합니다. 별의 별 소리를 다 들었습니다. 나이들어서 그렇다 . 좀 씻어라.. 뭐 등등.. 


자주 씻기는 하지만 정말 더 씻어야 하나? 해서 샤워 비중을 늘렸더니 더 가렵더군요. 가려워서 손톱이 긁어서 상처가 끊이지를 않더군요. 


또 피부 노화가 진행중이라 해서 로션을 발라줘야 한다더군요. 열심히 사서 발라줬습니다. 발라주고 2시간 이내에 가려움증이 급습합니다. 역시 이것도 아닌거군요. 


나이들어서 그렇다. 뭐 답이 없군요. 안그래도 서러운데 말이죠.. (더 나이드신 분들한테는 죄송합니다) 


의외였습니다. 저한테는 간단한 해결책이 존재하더군요. '물 마시기' 였습니다. 생각보다 물을 많이 안마시더군요 제가. 젊을 때는 괜찮더니만 나이들어서는 안되는 거였어요. 차, 커피, 콜라랑은 다릅니다. 진짜 생수 = 물 입니다. 


얼만큼 마시느냐? 하는 문제가 있는데요. 이것도 쉬운 지표를 알려드리겠습니다. 화장실을 (소변이겠죠?) 보고 와서 다시 '화장실을' 가고 싶을 때까지 마셔주면 됩니다. 


저런 간단한 방법으로 몇년간을 괴롭혔던 가려움이 박멸됩니다. 지금도 가끔 까먹고 가을이나 겨울때 물을 잘 안마셔줘서 가려움이 올때 아무 생각 없이 마셔주니 해결이 됩니다. 





민트 리눅스를 잘 쓰고 있었습니다. 그러다가 갑자기 로그인을 하는데 화면이 검게 나오고 아무것도 진행이 안되더군요. 다른일을 하는 중이였기 때문에 침착하게 기다렸습니다. 한시간이 지나도 역시 검게 되어 있는 형태더군요. (한시간은 마치 그렇게 느꼈다는 뜻입니다. 저는 개발자 답게 인내심이 많지가 않습니다 ㅋㅋ) 


그 검은 상태에서 마우스 오른쪽을 누르니 메뉴가 나오긴 하더군요. - 브라우져, 터미널 등등 - 이거 저거 다 눌러 보지만 별다르게 쓸만한 것은 없더군요. 


그중에서 'Terminal Emulator' 를 선택하면 터미널 창이 하나 나오는데 거기서 


sudo apt-get remove openbox 


를 입력해서 지워주고 다시 시작하면 정상 복구가 됩니다.  저와 같은 현상이 벌어진 분들에게 바치는 팁입니다. 

어둠의 경로로 가끔 뭔가를 구해서 볼 때, gif 로 되어 있는 경우가 있습니다. 기본적으로 보기가 불편해서 jpg 로 바꿔서 볼려고 할 때 일일이 (수 백장이나 되니) 바꾸기 힘들때 편하게 콘솔에서 바꾸는 방법이 있습니다. 

$ find . -type f -name '*.gif' | while read filename; do echo "converting ${filename}" ; convert "${filename}" "`echo "${filename}" | sed -e 's/\.gif$/\.jpg/'`"; done 

 
참고로 imagemagick 은 설치 되어 있어야 합니다.  
 
  오픈소스를 만지작 거리다 보면 남의 소스를 볼 일이 무지하게 많습니다. 가장 최근만 해도 이동통신 관련한 소스를 줄기차게 보고 있는데 (지금까지 본것중에서 난이도가 openssl 에 필적합니다.) 이러한 소스는 보통 여러 사람이 몇년동안 작업을 한 것이 대부분 이기 때문에 처음부터 전부 이해하려고 하다보면 들어가는 시간이 엄청 걸립니다. 단기간에 필요한 부분만 꺼내서 이용할 수 있는 신공을 익혀야만 제대로 쓸 수가 있다는 이야깁니다. 이러한 오픈소스 (그 중에서 특히 C 로 만들어진) 들이 어려운 이유가 몇가지가 있습니다. 그중에서 개인적으로 어렵게 만드는 요인이라고 볼 수 있는 것 몇가지만 이야기 해 볼까 합니다. 

  1. 엄청 많은 매크로 
     
     코드를 이해하는 것만큼 이 엄청난 수의 매크로도 이해해야 합니다. 

  2. 핸들러(handler)로 표현되는 다양한 함수 포인터 (Function Pointer)
     
    왜 C 로 C++ 형식처럼 짜는지 대충 이해가 갑니다만 (속도를 위해서겠지요..) static 키워드를 이용해서 C를 마치 OOP 처럼 구현해 놨습니다. 물론 이해하기는 OOP 보다 어렵습니다. (OOP 도 남의 소스는 보기가 쉽지 않지요) 다양한 구조체와 이에 연관된 함수 포인터를 마치 멤버 함수처럼 이용하는 형식으로 구현했기 때문에 추적하기도 쉽지가 않고 어디서 어떻게 불리는 지 파악도 어렵습니다. 


  이 외에도 몇가지는 있겠지만 제가 느끼기에는 이것들이 중요한 요인입니다. 그렇다고 해도 소스를 못 따라갈 정도는 아니지만 일일이 따라가기에는 너무나 방대한 양이기에 제대로 추적하기가 쉽지가 않습니다. 

  그래서 이러한 오픈소스를 분석하거나 자신이 필요한 기능을 추출할 때 쓸만한 팁을 드릴까 합니다. 사실 팁이라고 할만한 것도 아닐 수 있습니다. 일단 '돌아가는 소스를 받아서 구동시켜야 한다' 가 전제가 되어야 하며 이 때 돌아가는 '흐름'을 추적해야 합니다. 너무 난해할 수도 있는데 세부적인 것을 다 파고 들어가는 것이 아니라 필요한 기능이 어떻게 흘러가는지 전체적인 흐름을 파악하고 나면 그 때서야 어디를 어떻게 시작해야 할지 목표를 설정할 수가 있는 것입니다. 흐름을 파악해야 하는 주요 목적은 어디를 어떻게 봐야 하는지 목표를 설정하는 것과 일맥 상통한다고 볼 수 있습니다. 이리 되면 필요한 부분에 Log 를 심는다던지 디버거를 이용한 다던지 하면서 데이터가 어떻게 흐르는지 파악을 하고 자세하게 필요한 부분을 살펴볼 수가 있습니다. 즉 정리하자면 

 

1. 프로그램이 어떻게 구동되는지 흐름을 파악한다. 
2. 세부 프로세스가 어떤식으로 함수가 호출되는지 파악한다. 
3. 함수에서 사용되는 데이타가 어떤식으로 흘러가는지 파악한다. 
4. 그 데이타가 어떤 구조체 (structure, class)에 담겨있는지 파악한다. 


  이런식으로 굵직하게 흐름을 파악하는 식으로 나아가면 단기간에 빠르게 소스를 분석할 수가 있습니다. 어느 정도에 이르신 분들에게는 필요 없는 팁일 수가 있지만, 이제 막 프로그램의 재미를 익혀나가서 다른 고수들의 프로그램을 살펴볼 필요가 있는 분들에게는 도움이 될 것입니다. 

ps. 
 
요즘 블로그에 소홀한 이유는 변명 아닌 변명이겠지만 지금 하고 있는 일이 바쁘고 난이도가 높기 때문입니다. 간만에 청춘으로 돌아간 듯 밤 늦게 까지 모니터를 쳐다보며 지내는 시간이 많아서 입니다. (물론 그렇다고 놀지 않는다는 말은 아니지요 ㅎㅎ)  
몇가지는 아주 도움이 되는 군요. (특히 피자) 

 
원래 의도는 이런게 아니였습니다. 하지만 같은 효능을 가지고 있더군요 쿨럭.. 
특정 사이트에 기생하는 충(蟲)분들이 열심히 일러 바쳐서 못 들어가지는 사이트가 있었습니다. 저를 번뇌에 들게  만드는 자료를 주로 구하던 곳(?) 이라 막힌게 가슴이 아팠지만 이 방법을 쓰니 다행히 접근이 되더군요.

완벽한 방법은 아니지만 토렌트 관련 자료들이나 자석 관련 자료들이 몰려 있는 곳이라면 충분히 사용해 볼만 합니다.

방법은 쉽습니다.



위 사이트에 들어가서 URL 입력하라는 곳에 들어가시고 싶은 주소를 적으면 됩니다.  거듭 말하지만 완벽한 것은 아닙니다. 

자매 사이트로 

http://www.1proxy.de/



가 있습니다. 사용법은 동일합니다. (다만 이쪽이 더 월등히 성능이 좋아 보이더군요 ㅎㅎ) 


 
골치 아프게 고민하지 마시고

http://localhost:631

에서 모든 것을 전부 설정해 줄 수가 있습니다.


가지고 있던 맥북 프로를 지금 일하는 곳에 묶이게 되버려서 새로 노트북을 장만했습니다. 맥북 에어를 장만 했는데  Lion 이 기본으로 설치되어 있습니다. 아무 생각 없이 Mac port 를 설치해 줬는데 동작을 안하는 것입니다. 그래서 예전 기억을 더듬어 봤더니 XCode 를 설치해 줘야지만 동작했던 게 기억이 났습니다.

그래서 App Store 에서 XCode 4.3 을 설치하고 돌려봤지만 여전히 동작을 안합니다. 이유를 알아봤더니만 예전에 추가로 설치해 줬던 'System Tools' 가 없기 때문에 발생하는 문제였습니다.

XCode 4.3 가 설치되어 있다고 가정합니다.

1. XCode 를 실행시키고 메뉴중에서 "XCode" -> "Preferences..." 을 선택합니다.

2. "Downloads" 탭 (Tab) 으로 이동합니다.


3. 위 그림에서 보는 바 와 같이 "Command Line Tools" 를 클릭해서  설치해 줍니다.

이상입니다
예전의 복잡했던 방법에서 탈피해서 MS 의 CoreFonts 들을 쉽게 설치할 수 있는 방법이 열렸습니다. 너무 쉬어서 쓰기도 부끄럽군요. 

 우분투 (Ubuntu) 11.10 에서 테스트 했습니다. "Oneiric Ocelot"(몽환적 시라소니) 라고도 하지요. 
 
$sudo apt-get install cabextract



로 다운 받으시면 됩니다.  제 경우에는 이미 설치되어 있더군요. 
 
그리고  스크립트를 한개 만듭니다.  vista-fonts-installer.sh 로 만들어 줬습니다. 다음은 그 파일에 저장될 내용입니다.




#!/bin/sh
# Copyright (c) 2007 Aristotle Pagaltzis
# 
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.

set -e

exists() { which "$1" &> /dev/null ; }

if ! [ -d ~/.fonts ] ; then
	exec 2>&1
	echo 'There is no .fonts directory in your home.'
	echo 'Is fontconfig set up for privately installed fonts?'
	exit 1
fi

# split up to keep the download command short
DL_HOST=download.microsoft.com
DL_PATH=download/f/5/a/f5a3df76-d856-4a61-a6bd-722f52a5be26
ARCHIVE=PowerPointViewer.exe
URL="http://$DL_HOST/$DL_PATH/$ARCHIVE"

if ! [ -e "$ARCHIVE" ] ; then
	if   exists curl  ; then curl -O "$URL"
	elif exists wget  ; then wget    "$URL"
	elif exists fetch ; then fetch   "$URL"
	fi
fi

TMPDIR=`mktemp -d`
trap 'rm -rf "$TMPDIR"' EXIT INT QUIT TERM

cabextract -L -F ppviewer.cab -d "$TMPDIR" "$ARCHIVE"

cabextract -L -F '*.TT[FC]' -d ~/.fonts "$TMPDIR/ppviewer.cab"

( cd ~/.fonts && mv cambria.ttc cambria.ttf && chmod 600 \
	calibri{,b,i,z}.ttf cambria{,b,i,z}.ttf candara{,b,i,z}.ttf \
	consola{,b,i,z}.ttf constan{,b,i,z}.ttf corbel{,b,i,z}.ttf )

fc-cache -fv ~/.fonts


그리고 


$ chmod a+x ./vista-fonts-installer.sh 




를 해주고 자신의 $HOME 에서 임시 폰트가 저장될 위치를 만들어 줍니다. 


$mkdir ~/.fonts




그리고 파일 다운로드를 위해서 curl 이라는 명령을 설치해줘야 합니다. 


$sudo apt-get install curl 




그리고 마지막으로 위에서 만들어준 스크립트를 실행시켜 줍니다. 


$ ./vista-fonts-installer.sh



만약 에러가 발생한다면 다음 명령을 수동으로 한번 실행해줍니다.

fc-cache -fv ~/.fonts




이상입니다. 이렇게 하면 아주 간단하게 폰트가 설치됩니다. 




크롬에서 보이는 글들을 '맑은 고딕'과  고정폭은 'Consolas' 를 이용해서 웹 컨텐츠의 가독성을 높이며, 이뻐보이는 화면으로 인한 만족감을 높이는 방법입니다. 

먼저 폰트를 받아야 하겠지요? (Windows7 을 사용하는 분은 이 부분 패스)


맑은 고딕 폰트는 윈도즈 XP 정식 사용자여야만 합니다. 정품 인증을 하기 때문이지요. 정품이 아니시라면 구글에서 '맑은 고딕 다운로드 (클릭)' 로 검색하시면 받을 수 있는 사이트가 주르륵 뜹니다. (어둠의 세상 만세!!)

1. 크롬에서 그림에 보이는 연장 아이콘을 클릭합니다. 



2. 옵션 을 클릭합니다. 


3. 고급 설정 탭을 클릭합니다. 


4. '글꼴 및 언어 설정 변경'을 클릭합니다. 


5. 아래 그림과 같이 글자 폰트를 선택해 줍니다. 



이제 훨씬 부드러워진 웹 서핑이 가능해 집니다. 물론 위 두개의 폰트를 제대로 이용할려면  

'바탕화면에서 오른쪽 클릭' - '속성' - '화면 배색' - '효과' - '화면 글꼴의 가장자리를 다듬는 방법' 에서 ClearType 을 선택해 줘야 합니다. 




+ Recent posts