맥북 신제품 지르다

몇 일의 고민끝에 결국 지르고야 말았다. 때마침 신제품이 어제밤 출시되는 바람에 ‘신제품을 기다릴까? 기존의 모델을 살까?’ 하는 고민을 덜어 주었다. 이전모델에 비해 동일한 원가에 메모리와 하드용량 그리고 시피유 클럭이 업그레이드되어 출시되었다.
 
사용자 삽입 이미지 
어제 민규형에게 부탁해서 잠시 맥북 프로를 가지고 놀 수 있었는데 다만 반응속도가 윈도우에 비해 다소 느린 것에 약간 실망했지만 익스포저 등 사용자에게 편리한 인터페이스에 감동 받았다. 게다가 더욱 놀라웠던 것은 터미널에서 gcc, make등의 gnu 개발 도구가 동작하고, ssh, sftp 접속에도 문제가 없었으며, 심지어 x11을 설치하면 리눅스 GUI 어플리케이션도 자연스럽게 동작했다. 심지어 요즘 내가 주로 사용하는 도구인 lex, yacc까지 설치되어 있었다. 한마디로 맥북 로컬에서 리눅스를 설치한 것 처럼 내가 하는 작업을 할 수 있다는 사실에 매료되었던 것이다.

새로운 운영체제에 대한 호기심을 충족시킬 수 있다는 것은 또 하나의 보너스. 심심하면 죽어버리는 익스플로어와 수년째 사용해온 윈도우 고전 테마도 이제 지겨울 때가 되었다. 그리고 이제 게임도 그만 둘 나이가 되지 않았는가.

애플스토어에서 동생의 도움(?)으로 교육할인을 받아 Apple Mini-DVI to VGA Adapter 컨버터를 포함하여 110만원에 구매했다. 다음주에 도착할 듯 한데 맥북이 도착하면 맥으로의 완전한 스위칭을 실행에 옮길 것이다. 회사에서 지급해준 윈도우가 깔린 고사양 컴퓨터는 맥에서의 원격데스크탑 접속용으로 전락할 것인가?

MAC OSX에 대한 호기심

내일은 회사의 10주년 기념식이 있는 날이라 몇 일동안 계속해서 공연 연습을 했다. 입사 동기가 광고 패러디 퍼포먼스(?)의 영상을 맥북에서 키노트를 사용해서 구성했는데 처음보는 맥북과 키노트의 프리젠테이션은 나의 호기심을 자극했다. 특히나 가장 나의 시선을 끌었던 것은 바로 터미널의 존재!

그리하여 요즈음에는 지름신의 강림에 시달리고 있다. ‘어차피 사택에 컴퓨터가 없어서 불편하지 않은가’하는 자기 합리화 메커니즘을 가동하며. 그리고 지금까지 월급탄 이래로 나를 위해 지른 것이 없기도 하고. 게다가 아무 이유 없는 LG카드 6개월 무이자 할부 혜택까지 …

지금까지 웬만한 OS는 다 사용해봤는데 MAC OS만 경험이 없다. 내가 가장 궁금한 것은 ‘MAC OS가 프로그래머에게 적합한 운영체제인가?’ 하는 것이다. 내가 개발할 때 사용하는 것은 윈도우의 경우 거의 Putty 밖에 없다고 볼 수 있다. 그 다음으로 중요한 것은 운영체제의 안정성과 인터페이스의 간결함!

큰 돈(?)을 들이지 않고 MAC을 사용해 보기 위한 방법에는 2가지가 있다. 맥북을 구입하던지

사용자 삽입 이미지 혹은 맥미니를 구입하던지

사용자 삽입 이미지
맥북의 경우 100만원대, 맥미니의 경우 60만원대에 구입이 가능하다.

MAC OSX에 경험이 있는 여러분에게 묻습니다. SSH에 접속해서 콘솔에서 주로 작업하는 프로그래머에게 MAC OSX는 어떤 선택이 될까요? 물론 MAC OSX에서 게임할 생각은 없습니다. 안정성, 편의성, 간결함 등이 중요한 항목이 되겠네요.

Subversion(SVN)의 설치와 사용 (Ubuntu Feisty)

1. 설치

apache2와 svn과 apache2에서 svn을 사용하기 위한 모듈을 각각 설치한다.

sudo apt-get install apache2
sudo apt-get install subversion
sudo apt-get install libapache2-svn

이제 프로젝트 저장소(Repository)를 생성한다. 여기서는 tbpcb라는 프로젝트의 저장소를 /home/svn/tbpcb에 생성하는 것을 기준으로 설명한다.

/home/svn# sudo svnadmin create tbpcb
/home/svn# sudo chmod -R g+sw tbpcb
/home/svn# sudo chown -R www-data:www-data tbpcb

svn의 설정파일을 다음과 같이 편집한다. 예제는 아이디와 비밀번호를 통해 인증을 받아야 svn에 접근할 수 있도록 한다.

sudo vi /etc/apache2/mods-available/dav_svn.conf

<Location /svn/tbpcb>
  DAV svn
  SVNPath /home/svn/tbpcb

  AuthType Basic
  AuthName “Subversion Repository”
  AuthUserFile
/etc/apache2/dav_svn.passwd
   
  Require valid-user
</Location>

dav_svn.conf 파일에서 지정한 인증파일(dav_svn.passwd)에 아이디와 비밀번호를 추가하기 위해 htpasswd2를 사용한다. 여기서는 reshout라는 유저의 아이디와 비밀번호를 dav_svn.passwd에 저장한다. 유저를 추가하고 싶다면 -n 옵션을 써서 출력되는 내용을 dav_svn.passwd에 추가해 주면 된다.

/etc/apache2# sudo htpasswd2 -c -m dav_svn.passwd reshout

2. 사용

svn 저장소에 프로젝트를 처음 올릴 때 (import)

svn import -m “Initial Import” src http://192.168.12.12/svn/tbpcb

svn 저장소에서 프로젝트를 처음 받아 올 때 (check out)

svn co http://192.168.12.12/svn/tbpcb src

작업한 내용을 저장소에 반영할 때 (commit)

svn ci

저장소의 변경사항을 내 작업 공간에 반영할 때 (update)

svn up

코딩하기 좋은 폰트

소스코드를 들여다 보는 일이 삶의 커다란 부분이다 보니 코딩할 때 사용하는 폰트에 민감한 편이다. 심플하고 깔끔하면서도 수려한 것을 좋아하는 개인적인 성향도 무시할 수 없을 것이다. 아마 별로 이런쪽으로 무감각했다면 “굴림체”만 쓰고 있었겠지. “굴림체”의 한글은 여전히 아주 깔끔하고 만족스럽지만 코딩할 때의 영문 “굴림체”는 영 매력이 없다!

얼마전 웹서핑 중에 우연히 Finding the Best Programmer’s Font라는 제목의 웹페이지를 찾아가게 되었고 몇 가지 시도해본 중에 괜찮다고 생각되는 폰트 3가지를 소개하고자 한다. 개인적인 선호도 순서대로 나열해 보았다. 스크린 샷은 Putty로 해당 폰트를 사용한 것이다.

1. Monaco
귀여운 느낌이 들면서도 깔끔한 폰트로 최근에 애용하고 있다.

사용자 삽입 이미지
2. Bitstream Vera Sans Mono
참고한 사이트에서 1위를 차지한 폰트. 정갈하고 절제된 멋이 일품. 허나 다소 심심한 느낌.

사용자 삽입 이미지
3. Anonymous
힘이 느껴지면서도 깔끔한 맛이 있다. 숫자 0의 표현이 인상적인 폰트.

사용자 삽입 이미지

여러분은 어떤 폰트가 가장 맘에 드시나요?

스프링노트, 내가 찾던 바로 그 툴!

사용자 삽입 이미지
사람의 기억력이라는 것에는 한계가 있기에 한번 봤던 것들을 체계적으로 관리해 놓고 활용하는 것이 일 또는 공부의 능률을 향상시키는데 커다란 역할을 한다. 특히 한달 동안 파견근무로 SI일을 하면서 절실히 깨달았다. 개발과정에서 무수히 등장하는 이전 시스템의 테이블과 컬럼들 그리고 그 것이 매핑되는 새로운 테이블과 컬럼들을 매번 뒤지고 다니자면 짜증이 밀려오는 것은 시간문제! 이대로는 안되겠다 싶어 포스트잇을 활용해보기도 하고 엑셀파일에 기록하기도 하면서 나름의 효율적인 자료정리 방법을 찾아 나섰다.

종이에 정리하는 방법은 확실히 한계가 있다. 추가 및 삭제를 자주 하다보면 글자가 종이에서 옮겨가거나 지워질 수 없는터라 불편한 점이 이만저만이 아니다. 결국 컴퓨터에 정리하는게 정답이라 생각되지만 문제는 자료를 체계적으로 정리할 수 있도록 도와주는 툴이 있어야 한다는 것. 그동안 그나마 자료를 정리하기에 적합하다고 생각했던 툴이 바로 moniwiki 였는데 올블로그를 서핑 중 스프링노트의 동영상을 보고나서 감동 받았다.

moniwiki의 방식을 따라가면서도 사용의 편리함과 외모의 수려함을 더했다! 편집이 간편하고 쉬울 뿐더러 상위, 하위 페이지 개념이 있어 페이지를 찾아 이동하거나 페이지 사이의 관계를 체계적으로 관리하기에 유용하다. 많은 사람들이 스프링노트에 애정을 가지고 개선할 부분에 대하여 거침없이 의견을 쏟아내고 있으니 좀 더 완성된 서비스가 되길 기대해 본다.

스프링노트 사이트를 방문해보면 여러가지 활용예제들을 볼 수 있다. 나의 경우 프로젝트 관련 자료들을 체계적으로 정리하고 월간, 주간, 일간 계획을 기록한다. 앞으로 공부하면서 얻은 전산관련 지식들을 잘 정리해 두면 두고두고 요긴하게 사용할 수 있을 것이다.

자료정리에 어려움을 겪는 분들은 한번쯤 고려해보세요.