맥에서 emacs 설치하기

Posted by 大山 Wed, 13 Sep 2006 15:13:00 GMT

emacs는 뛰어난 텍스트 편집기이지만, 처음 시작할때 이것저것 장애물이 많은 것 또한 사실이다. 여기에서는 맥 OS X에서 emacs를 직접 컴파일하여 설치하는 방법을 설명해 보려고 한다. (맥 OS X에 이미 깔려있는 emacs는 무척 오래된 버젼인데다가, GUI 버전은 아예 설치되어 있지 않다.)

우선 터미널을 열어 /usr/local/ 디렉토리로 이동한 후, 다음을 입력한다.

$ sudo mkdir /usr/local/src
$ sudo chown daesan /usr/local/src
 

위에서 daesan 대신에 자신의 로그인 ID를 입력하면 된다. /usr/local/src는 새로운 애플리케이션을 컴파일하여 설치할때, 임시로 소스 코드를 보관하는 곳이라고 생각하면 되겠다.

이제 emacs의 최신 소스코드를 다운로드 받을 차례이다. (emacs의 마지막 정식 릴리즈는 2005년 2월이었지만, 이후에 많은 부분이 업데이트 되었다. 최신의 소스코드라 하더라도 꽤나 안정적이므로 특별히 염려하지 않고 설치해도 괜찮을 듯) 터미널 창에 다음을 입력하자.

$ cd /usr/local/src
$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs
 

emacs의 최신 소스를 다운로드 받느라 시간이 조금 걸릴 것이다. 소스코드의 체크아웃이 끝나면, 다음을 입력해서 컴파일을 진행하고 설치를 완료한다.

$ ./configure --enable-carbon-app
$ make bootstrap
$ sudo make install
 

이제 emacs 22.0.50.1이 /usr/local/bin/emacs에 설치되었다. 다음에는 ~/.bash_profile 파일의 마지막 줄에 다음을 추가하여 PATH를 설정한다.

export PATH=/usr/local/bin:/usr/local/sbin:$PATH
 

터미널 애플리케이션을 재시작하고 쉘 플롬프트에 'emacs'라고 입력하면, 이제 새로 설치된 emacs가 실행된다. 위에서 '--enable-carbon-app'이라고 지정을 해주었기 때문에 '응용 프로그램' 폴더에 GUI 버전의 emacs 또한 설치되어 있을 것이다. 쉘에서는 CLI(Command Line Interface) emacs를 쉘 바깥에서는 GUI emacs를 사용하면 되겠다.

나중에 간단한 emacs 튜토리얼도 만들어볼 생각임.

Posted in  | Tags ,  | 10 comments | 1 trackback

emacs를 사용해야 하는 이유

Posted by 大山 Wed, 12 Jul 2006 16:55:00 GMT

혹시 내 주변 사람들은 내가 고집불통이며 모든 일을 새로운 방식으로만 처리하려 한다고 생각할지도 모르겠다. 하지만 꼭 그렇지만은 않다. 물론 나만의 방식을 고집할 때도 있겠지만 알고 보면 나도 은근히 남을 따라하는 것을 좋아하는 편이다. 내가 해야할 고민을 누군가가 대신 해주었다는 것은 대단히 매력적인 일이 아니겠는가? 나는 단지 누구를 따라할 것인지 선택하는 것에 까탈스러울 뿐이다.

5년쯤 전이었나 리눅스를 사용하다 보니까 쉘에서 돌아가는 텍스트 편집기를 익혀야 할 필요가 있었다. 처음에는 pico를 사용했지만 곧 vi와 emacs 사이에서 고민을 하게 되었다. 열심히 웹을 뒤지며 검색해본 결과는 실용주의자는 vi를 선호하고 해커들은 emacs를 선호한다는 것이었다.

프로그래밍에 관심이 많았던 나로서는 해커들을 따라갔을 수 밖에. 그래서 emacs를 선택했다. 하지만 나는 관념주의에 빠지는 것을 대단히 경계하는 사람이기도 하다. 그런 내가 지금까지 emacs를 계속해서 사용하고 있는 것은 emacs만이 가지고 있는 이점이 여럿 존재하기 때문이다. 여기서는 보다 실용적인 관점에서 emacs를 사용해야 하는 이유를 살펴보고자 한다.

이유 1. emacs 키 바인딩은 유니버설하다

emacs는 vi와 다르게 모드가 없다. 때문에 Ctrl 키와 Meta(Alt) 키를 사용해서 소스 코드를 쉽게 돌아다닐 수 있다. 그런데 이러한 emacs의 키 바인딩을 지원하는 것은 emacs만이 아니다. 유닉스 쉘, Readline 라이브러리, 리눅스와 맥 OS X의 모든 텍스트 입력창, 이클립스 등의 GUI 텍스트 편집기 등은 모두 emacs의 키 바인딩을 지원한다.

마우스를 사용하지 않고 100% 키보드로만 텍스트를 편집하는 것이 얼마나 효율적인지 경험해 보지 않은 사람은 알지 못한다. emacs 키 바인딩을 지원하지 않는 프로그램이라면 나는 아마 사용하지 못할 것 같다. (가끔 윈도우를 쓸때 울화통이 터지는 이유 중의 하나이다.)

어디서나 emacs 방식으로 텍스트 편집이 가능하기 때문에 가능하면 모든 편집 작업을 emacs에서 하게 되고 이는 작업 능률을 상당히 올려 준다. 개인적으로 코딩, 원격 서버 관리, 집필, 번역 등을 모두 emacs에서 하고 있다. (emacs에서 이메일을 보내고 채팅을 하는 등 미니 OS처럼 사용하는 시대는 나도 이제는 지나갔다고 생각한다.)

이유 2. emacs는 쉘 위주의 개발 환경을 유도한다

어떤 개발자들은 IDE 개발 환경을 선호한다. 자바와 같이 언어의 한계 때문에 IDE 사용이 불가피한 경우도 있기는 하다. 하지만 IDE를 사용하기 시작하는 순간 개발자는 워크플로우와 관련된 수많은 컨트롤을 잃어버리게 된다. GUI 애플리케이션 개발과 같이 특수한 경우에는 모르겠지만 그런 경우가 아니라면 쉘 기반의 개발 환경이 훨씬 더 유리하다. 모든 개발 프로젝트마다의 복잡한 워크플로우를 모두 지원할 수 있는 IDE는 없기 때문이다.

emacs를 쓰다 보면 자연스럽게 쉘과 친해지게 된다. 이는 emacs가 쉘에서도 구동될 수 있다는 점, emacs 내부에서 쉘을 실행할 수 있다는 점 때문에 편집을 하면서도 다양한 유닉스 유틸리티를 편리하게 이용할 수 있기 때문이다. 일정 부분은 심리적인 면도 작용하는데 이는 emacs의 전반적인 인터페이스가 쉘과 같은 CLI 환경이라 그런 것 같다.

쉘은 구닥다리 인터페이스라고 치부하던 MS 조차 윈도우 비스타에 모나드(Monad)란 이름의 쉘을 탑재하기로 한 것은 괜히 그러는 것이 아니다. 쉘은 개발자의 친구라는 사실을 잊지 말자.

이유 3. 무한대에 가까운 emacs의 기능

emacs에는 정말로 편리한 기능이 많다. 금상첨화로 이런 기능들이 마우스 한 번 까딱하지 않고 키보드에서 직접 사용할 수 있다. 명령어를 입력해서 실행시키는 방식을 쓰므로 자주 쓰는 기능이 아니라면 키 바인딩을 모두 기억해야 할 필요도 없다. 명령어 입력 조차도 탭 자동완성 기능이 있기 때문에 대강만 기억해두면 된다.

GUI 인터페이스로 이런 기능을 모두 구현한다면 아마 MS 워드보다 더 사용하기 힘들어질 것이다. emacs의 기능은 무한대에 가깝기 때문이다. 게다가 필요하면 언제든지 새로운 기능을 추가할 수 있다.

emacs의 단점

emacs가 장점만 있는 것은 아니다. 사실 왠만큼 기술적으로 자신이 있는 사람이 아니라면 emacs를 권하고 싶지 않다. emacs의 설계를 보면 해커만을 위해 만들어진 텍스트 편집기임이 분명하기 때문이다. 역으로 해커를 지향하는 사람이라면 꼭 emacs를 써보도록.

누군가 emacs의 내부 스크립팅 언어를 루비로 바꾸어 준다면 정말 가서 뽀뽀라도 해주고 싶을 것 같다. Lisp도 훌륭한 언어이긴 하지만 네임 스페이스가 없어서 Lisp 함수 이름을 외우는 것은 상당히 번거로운 일이다. 게다가 emacs는 Common Lisp이나 Scheme과 같은 표준 Lisp을 사용하는 것이 아니라 emacs만을 위한 elisp을 사용한다. emacs처럼 거대한 프로그램에서 내부 스크립팅 언어를 변경한다는 것은 쉬운 일이 아니겠지만 텍스트 편집기만을 위해서 새로운 언어를 익혀야 한다는 것 또한 상당한 부담이긴 하다.

결론

결론은 그래도 emacs를 쓰자이다. 개발자는 장기적인 안목을 가지고 자신의 연장을 관리할 줄 알아야 한다. emacs가 비록 처음에는 익히기 어려운 연장인 것은 사실이지만 전세계 최고의 해커들이 emacs를 사용해서 최고의 프로그램을 만들어오고 있다는 것 또한 분명한 사실이다. 해커를 지향한다면 짬을 내서 emacs를 배워 보자.

Posted in  | Tags ,  | 5 comments | no trackbacks

왜 개발자는 맥을 써야 하는가

Posted by 大山 Tue, 06 Jun 2006 15:06:00 GMT

내가 윈도우를 그만 쓰기 시작한 것은 아마도 2000년도 정도가 아니었나 싶다. 그때 즈음해서 마이크로소프트의 한계가 느껴지기 시작한 것도 있고 어찌하다 보니 다소 낭만적인 기분으로 BeOS란 운영체제에 푹 빠졌더랬다. 그런데 한 1년쯤이 지나자 Be사가 망해 버렸다. 근데 도저히 윈도우는 불편해서 못쓰겠더라. 그래서 잠시 리눅스, 솔라리스로 방황하다가 결국 파워맥 G4를 지르고 말았다.

맥에 푹 빠진지 한 반년이나 지났을까, 미국 O'Reilly 출판사의 사장인 Tim O'Reilly컴퓨터 전문가 관찰하기란 발표 원고를 접하게 되었다.

컴퓨터 전문가들이 무엇을 하고 있는지 관찰하면 기술의 미래를 예측할 수 있다 ... 컴퓨터 분야의 최고 전문가들이 점점 Mac OS X으로 몰려들고 있다.

한 삼년이 더 지나서 이번에는 Paul Graham맥의 컴백이란 에세이에서 다음을 언급했다.

내가 아는 최고의 컴퓨터 해커들은 하나같이 컴퓨터를 맥으로 바꾸고 있다.

곧이어 레일스를 만든 David Heinemeier Hansson맥의 현재 상황이란 블로그 글에서 이렇게 말했다.

아직도 윈도우를 쓰고 있는 개발자라면 나는 그사람을 채용하지 않을 것 같다. 2005년에 와서야 맥으로 바꾼다는 것 조차도 너무 늦다.

이들이 언급하고 있지는 않지만, 맥을 써야 하는 이유는 대략 간단하다. 맥 OS X의 코어를 차지하고 있는 유닉스(FreeBSD) 때문이다. 요즘 세상에 유닉스를 모르고 웹개발을 한다는 건 어불성설이다. 대부분의 오픈 소스 프로그램들이 유닉스 환경에 최적화 되어 있기 때문이다. 일상적으로 편리한 컴퓨터 사용 환경과 개발을 위해 최적화된 환경 모두를 충족시켜 주는 유일한 플랫폼은 아직 맥 OS X 밖에는 없다. 디자인이 예쁜건 그냥 덤일 뿐이다.

솔직히 한국에서 맥을 쓰는 건 이것저것 불편한게 많이 있다. 한국 시장은 아직도 마이크로 소프트의 영향력이 유난히 크고 호환이 안되는 웹사이트가 많은 것도 사실이다. 하지만 이제는 맥이 인텔 기반으로 바뀌었으니, 필요하면 듀얼 부팅이라도 하면 된다. 더이상 미루지 말고 개발자라면 이제는 맥으로 바꾸자.

Posted in  | Tags , ,  | 13 comments | 1 trackback