아직도 외국 리스퍼들 이나 커뮤니티에 가보면 Windows 에서 Lisp 개발 환경 꾸미느라 고생한다는 글이 종종 보이곤 합니다. 

예전에 Weblock 프로젝트 개발 환경을 Windows 에서 구현하는 것이 의미 있다고 생각해서 정말 열심히 노력해서 8시간만에 세팅한 적이 있었습니다. 뭔가 모잘란 듯 하지만 잘 구성되서 만족하며 썼었습니다. 

그 후로 잠시 잊고 있다가 , 다시 같은 개발 환경을 Ubuntu 에서 할 경우가 있었습니다. (CentOS 가 아닌 Ubuntu 입니다). 3분 걸리더군요..

8시간대 3분 , 게다가 8시간짜리 환경은 완벽한 환경도 아니였습니다. SBCL 윈도우즈 버젼은 그 때 당시에는 쓰레드 지원이 안됐습니다.

제대로 되지도 않는 개발 환경을 세팅한다고 8시간을 허비해야 할 가치가 있는 것일까요?  차라리 그 시간에 버추얼 데스크탑을 설치하고 거기다 우분투를 설치하는 시간이 더 빠를듯합니다. 한시간 안쪽에 모든 개발 환경이 설정 될 것입니다. 

ps.
 물론 이렇게 이야기 하지만 Emacs 환경 설정에는 특별히 공을 들이곤 합니다. 없는 기능이면 친절하게 코딩까지 다 해가면서 ㅎㅎ  
개발자로 살아 오면서 이거 저거 만지작 거리다 보니, 모바일 플랫폼쪽 개발을 자주 해보게 됐습니다. 윈도즈 모바일(Windows Mobile), 아이폰( iPhone)  , 안드로이드(Android) 로 이거 저거 만들어 봤습니다. 본의 아니게 자주 접하다 보니 이거 저거 장단점을 비교하게 되더군요.

나름 세개를 비교하는 오만을 저질를려고 하니 자신의 생각과 다르다고 하더라도 '이 사람은 이렇게 생각하는 구나' 하고 봐 주세요.

결론부터 이야기 하자면 개발자의 입장에서 가장 좋은 것은 안드로이드 라고 봅니다.

개인 개발자 측면에서 2가지만 이야기 하겠습니다. 추후에 상업화해서 돈을 얼마나 벌 수 있는 가에 대해서는 언급하기가 힘듭니다. 저 역시 그런 것으로 돈을 벌어본 적이 없어서요.

저는 그래서 개발자 측면에서 중요한 점을 돈과 개발 효율성 에 두고 있습니다.

첫째 돈에 관해서 입니다. 안드로이드는 개발하는 데 추가로 드는 비용이 전혀 없습니다.

Windows Mobile 개발할려면 돈이 듭니다. 다른건 모르겠지만 개발툴이 무지하게 비쌉니다. 모바일 개발 기능까지 포함한 Visual Studio 살려고 들면 몇백만원 이상으로 돈이 들 것입니다.

아이폰의 개발툴인 XCode 는 무료 입니다. 애플에 개발자 등록을 하면 바로 다운 받을 수 있습니다. 다만 개발을 하기 위한 OSX 가 깔려 있는 컴퓨터를 사야 합니다. 맥북 싼거부터 비싼 맥까지 가격은 천차 만별이지만, 맥 컴퓨터의 특성상 비쌉니다. 그리고 저 사양에서 개발은 쉽지가 않은 편이고요. 또한 맥북이 있다 하더라도 아이폰에 프로그램을 설치 하려면 '인증서'가 있어야 합니다. 개인 자격이니 1년에 10만원씩 인증서를 갱신하는 비용을 제공을 해야 아이폰에 자신이 개발한 프로그램을 설치 할 수가 있습니다.

"얘는 확실히 무료 입니다"



안드로이드는 사용하고 있던 피씨에 멀티 부팅으로 '우분투(Ubuntu)' 를 설치해주고, 이클립스(Eclipse) 를 설치하고, 안드로이드 SDK 를 설치해주면 개발 세팅 완료 입니다. 더구나 피씨 말고 전부 무료 입니다. 보통 피씨 없는 개발자는 없겠죠? 따라서 추가로 들어가는 돈은 전무 합니다. 개발을 잘 하기 위해서 새로 시스템을 갖추지 않는 경우에는 말이죠.

"개발 툴의 끝판 왕이라 불리는 이클립스"




둘째 개발 효율성 측면 입니다. 이것 역시 자바를 베이스로 하는 안드로이드의 압승입니다. 사실 돈 쓰는 것 이상으로 중요한 부분이기도 합니다.

윈도즈 모바일은 C/C++ 로 개발하게 되어 있습니다. (지금까지는 그래왔었습니다) C/C++ 은 개발 속도가 느리기 때문에 대부분의 개발자 들이 좋아하지 않는 언어로도 유명합니다.

아이폰은 C 에다가 Object Oriented 개념을 섞은 Object-C 라는 언어로 개발합니다. 엎어치나 메치나 제가 보기에는 C/C++ 계열입니다. 원래 인기 없는 언어였는데 아이폰 때문에 인기가 급 상승을 하고 있는 언어입니다.

안드로이드는 Java 로 개발을 합니다. 기존에 쓰고 있던 자바와는 좀 다르다고 하나 모바일 특성에 맞춘 것 외에는 일반적인 자바와 비슷합니다.

결국 개발할 때 세가지 플랫폼에서 가장 큰 차이는 포인터라고 볼 수가 있습니다.

저는 개발자로 살아온 인생 거의 모두를 C/C++ 개발하는 데 쏟았습니다. 저는 C/C++ 이 아주 몸에 익었기 때문에 포인터(Pointer)를 잘 이해하고 실전(?)에서도 자주 쓰는 편입니다. 그런데 이 포인터라는 것이 안 쓰다 보면 아주 귀찮아 지는 종류 입니다. 개발을 3년 넘게 쉬었다가 아이폰쪽 개발을 할 때 간만에 만나는 포인터가 저를 당황케 하더군요. 그런 의미에서 자바는 아주 훌륭하더군요. 가비지 컬렉션이 되는 것만으로도 이리 쉽게 프로그래밍을 할 수가 있구나. 라는 것을 느꼈습니다.

Java 나 Object-c 나 제 입장에서는 처음 배우는 언어인 데도 여타 다른 프로그래머 분들과 마찬가지로 자바쪽이 훨씬 쉽습니다.오죽하면 미국 버클리대에서 프로그래밍 기초 신청하는 학생들이 포인터 진도 나갈 때 60% 가 수강 철회를 하느냐는 말도 나오지 않겠습니까?

포인터를 완벽하게 이해하고 있으면 '전산형 인간' (Homo Computeres) 으로 기존의 사람들과 종이 다르게 분류되도 할 말은 없겠네요. 

간단하게 개발자 측면에서만 살펴 봤습니다. 하지만 오픈 마켓이 아이폰이 잘 되어 있지 않느냐는 말을 정말 많이 들었습니다. 그렇습니다 "왜? 개발을 하는가"도 중요하기 때문입니다. 결국 프로그램을 만들면 팔아서 돈을 벌어야 하는데 그런 제반 환경이 아이폰쪽이 잘 되어 있습니다. 하지만 굳이 팔려고 프로그래밍을 안하더라도 자신의 폰에 자신만의 프로그램을 만들어서 넣어보려는 용도로도 개발자들은 움직입니다. 그리고 그런 용도라면 정말 안드로이드를 추천합니다.

마음 편히 시작하고 아니다 싶으면 바로 접을 수도 있습니다.




연일 맥을 가지고 놀다 보니 발견하게 되는 개발 환경과 작업 환경 세팅시의 문제점들이 발견 되는 군요. 저는 Emacs 로 텍스트 파일들을 작성해서 svn repository 에 보관을 합니다. 그렇게 집 , 회사 , 노트북 세가지를 동기화 시켜왔는데 이제  osx 를 사용하다 보니 첨 쓰게 되는 환경에 당황하게 되는군요. 너무 쉽게 됐던 것들이 안되니 참으로 난감하기도 하고 -ㅅ-; 암튼 구글링 저헐라게 하다가 우연히 알게 되는 사실로 해결이 되는 군요.

.emacs 에서 한글을 쓰기 위해서 세팅하는 과정입니다.

(set-language-environment "Korean")

(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)


이렇게만 설정해 주면 기본적으로 osx 에서 emacs 사용시 별 문제 없이 utf-8 환경으로 작동하게 되는 군요.
여기에다가 svn 을 살짝 연결 시켜서 사용하게 되면 linux 나 window 와는 다르게 에러가 발생합니다. 이미 고쳐버려서 어떤 메시지 였는지 확실하지는 않지만

svn: Commit failed (details follow):
svn: Can't convert string from native encoding to 'UTF-8':


이러한 메시지 였습니다.
정말로 고쳐볼려고 별의 별 방법을 다 써봤습니다. 구글링도 얼마나 한지 모릅니다. 그러다가 우연히 발견한 팁을 적용시켰습니다. emacs + svn + utf-8 으로 검사하니까 절대로 안나오더군요..

.profile 에 다음과 같이 추가해 줍니다.

export LC_CTYPE=en_US.UTF-8
export LANG=en_US.UTF-8


왜 인지 모르지만 너무 잘 돌아갑니다. -ㅅ-;;

부자들을 위한 개발 환경 갖추기

예전에 가난한 사람들을 위한 개발 환경 갖추기의 일환으로 coLinux 를 소개 한 적이
있었습니다. 기반은 윈도 계열(XP 나 Vista )을 사용하고 있지만 서버 어플리케이션
개발을 위해서는 리눅스가 필요한 사람들을 위해서 쓰기에 좋다고 소개드렸습니다.

이제는 부자를 위해서 입니다. 리소스는 남아돌고 대체 어떻게 써야 하는지 모르겠다
라는 분들 많으시리라고 생각합니다. 저 또한 항상 씨피유 4개중에 3개는 남아돌고
메모리는 2기가씩 남으면 비디오 메모리는 넘치고 (현재 1기가) , 하드는 1테라
입니다.

C군: 그래서 컴퓨터를 키면 UFO 발진하는 소리가 들리는 게냐? -0-

그래서 PC 안의 작은 PC 버추얼박스를 깔아보기로 합니다. VMWare 라는 상용이 있지만
이건 공짜랍니다 ㅎㅎ .


== VirtualBox 설치 ==

http://www.virtualbox.org/wiki/Downloads

여기에서 자신의 사양에 맞는 클라이언트를 다운 받습니다. 제 경우에는 Vista 64비트 니까
AMD64 버젼을 받아서 설치했습니다.

== Ubuntu 이미지 설치 ==

http://www.ubuntu.com/getubuntu/download 에 들어가서 아래쪽에 보면

"Korea Republic of Daum Comunication." 이라고 (뭐? -0- ) 있습니다.

다운받아서 하드에 저장해 둡니다.

== VirtualBox 에 우분트 설치될 공간 마련 ==

메뉴에서 그냥 지원하는군요 ,
 - 설치될 OS 는 우분투로 설정 (전 매킨토시가 싫습니다..)
 - 운영체제가 설치될 공간은 고정으로 해서 30기가 설정 (예전에 해킨토시 쓸때 20기가
   했다가 개발툴 못 깐적이 있어서..)
 - 메인 메모리는 1024 MB ( 조금이나마 빨리 움직이는 게 보고 싶어서..)
 - 비디오 메모리는 100 MB (전체 화면을 하기가 좀 모자라더군요)

정도 줬습니다.

CD / DVD-ROM 에서 우분투 이미지를 마운트 해줄 수 있습니다. 그리고 시작하면 바로
우분투 설치모드가 뜹니다.

이제 우분투의 세계로 ~

쓰고 나니 초 쉽군요. 그렇게 쉽다는 이야기 입니다. 한번 간단하게 해보세요

C군: 무지 불 천절하구만 ? 이거 보고 어떻게 따라하나? 그림 한장도 없구만..
나: 걍 설치해 둔거 안 잊어먹을려고 로그 남긴건데 까탈스럽게 굴긴. 그리고 진짜
설명이 필요 없을 정도로 쉽다고..


 

- 솔라리스 서버 개발환경 세팅 -

1. 포르테 설치되어 있는 디렉토리를 .profile 에 기입해 줬다.
   /opt/SUNWspro/bin 이 cc 와 CC 가 설치되어 있는 곳이다.

2. emacs 를 설치하기 시작했다. emacs 는 configure 과정에서 에러가
   발생하는데 이는  GNU make 3.81 을 설치해서 해결을 보았다.

 2.1 GNU Make 3.81 을 설치하는데 문제는 없었으며 설치하고 나서
   .profile 에 path 설정하는 곳에 /home/rskrt/bin 을 추가하고
   이를 맨 앞으로 설정 해주고 /home/rskrt/bin 으로 이동해서
   ln -s /home/rskrt/make-3.81/make make 로 링크를 걸어주었다.

3. emacs 컴파일이 끝나고 /home/rskrt/bin 으로 이동해서
  ln -s /home/rskrt/emacs-22/src/emacs 를 링크를 걸어두었다.

4. 2번 3번 설치 결과로 어디에서든 make 를 치면 Gnu make 가 실행되고,
  emacs 를 실행하면 emacs 가 실행된다.

5. svn 을 설치중이다.
  http://subversion.tigris.org/getting.html#source-release 여기에서
  소스를 받아서 (솔라리스용) 서버에 올려두고 컴파일을 하는데 apr 이
  없다고 에러가 발생한다. 버젼은 1.5.0 버젼임

 5.1 http://apr.apache.org/download.cgi 이곳에서 apr (apache portable
  runtime) 을 다운 받아서 서버로 올리고 svn source 밑에 apr 이라는
  디렉토리를 만들고 복사해둔다.( 버젼은 1.3.0)  svn/apr 이 안에 있는 buildconf
  실행해주면 파이선이 없다고 에러를 뱉는다. (-ㅅ- 모냐.. 대체 svn 의
  정체는..)

  5.1.1 http://www.python.org/download/ 에서 파이선 2.5.2 를 받아서
   서버로 올려서 컴파일 해서 ln -s
   /home/rskrt/Python-2.5.2/python python 으로 링크도
   걸어두었다. 링크 파일은 /home/rskrt/bin 에서 생성

  5.1.2 autoconf 가 필요 http://ftp.gnu.org/pub/gnu/autoconf/ 에서
   autoconf-2.62 를 설치했음

   5.1.2.1 GNU M4 가 필요하다가 이야기가 나옴
   http://ftp.gnu.org/pub/gnu/m4/ 에서 m4-1.4.9.tar.gz 를 받아서
   압축과 (gzip -d m4-1.4.9.tar.gz) tar 를 푼다. (tar xvf
   m4-1.4.9.tar) 소스 설치된 곳에 가서 ./configure 하고 make
   실행한다. 컴파일이 끝난 후 /home/rskrt/bin 에 가서 ln -s
   /home/rskrt/m4-1.4.9/src/m4 m4 로 심볼릭 링크를 걸어준다.

  5.1.3 m4 를 설치하고 다시 autoconf 를 설치하기 위한 공정에
   들어간다. m4 를 제대로 패스 설정을 해줬으면 autoconf 가 제대로
   설치된다. ln -s /home/rskrt/autoconf-2.62/bin/autoconf
   autoconf 로 심볼릭 링크를 걸어준다. 물론 걸어준 장소는
   /home/rskrt/bin 이다.

 5.2 m4 까지 설치해 줬으면 다시 apr 을 컴파일
  시도한다. /home/rskrt/subversion-1.5.0/apr 로 이동해서
  ./configure 를 입력한다. (이번에는 걸리는게 재발 없기를 ..)
  apr-util 이 없다고 에러 발생 subversion 소스 밑에 apr-util
  디렉토리를 만들고 그 디렉토리로 이동해서 buildconf 를 실행하라고 함

 5.2.1 apr 을 설치해도 apr 은 라이브러리 기 때문에 , make install 안하고
  개인 계정용으로만 사용하는 방법을 모른다. (내공이 딸리기 때문에
  흑.. ㅜ.ㅜ ) 문제가 발생하는건 apr-util 은 apr library 를 필요로
  한다. 다만 뭐뭐가 필요한지 체크에 나오지 않아서 결국 , subversion 을
  단지 클라이언트 only 로 설치하기로 결정하였다. ( 지금까지  삽질한겨!!!)
  - ./configure --prefix=$HOME 을 하면 make install 시 내 로컬에 설치한다.

 5.3 subversion 디렉토리에서 ./configure --without-berkley-db 라고 치면
  svn 서버로서의 기능이 빠지고 클라이언트 기능으로만 사용가능하다. 단
  결점이 있다. https 타입의 서버로는 접근 할 수 없다는 점이다. (기능
  자체의 결함인지 , 서버에서 허용이 안하는지 알 수가 없지만 url type 이
  svn: 만 접근이 가능하고, https: 는 접근이 불가능하다. apr 과
  apr-util 의 미 설치에 따른 결과로 인식하고 있음)

6. ACE 설치하기 위해서 ACE 패키지를 다운 받아서 압축을 풀고 tar 를
 풀었다. cd ACE_wrapper 로 가서 mkdir build 하고 cd build 해서
 ../configure --prefix=$HOME --disable-ssl 하고 make 입력

7. vim 설치 http://www.vim.org/download.php 에서 vim 7.1 source 를
 받아서 설치한다. bz2 로 압축되어 있으니 bzip2 -d vim71.tar.bz2 로
 압축을 풀고 tar xvf vim71.tar 로 압축을 풀고 ./configure
 --prefix=$HOME 으로 컨피그 설정 , 그리고 make install 로 컴파일 해서
 설치해주면 끝

 7.1 Putty 에서 서버로 접속해서 vim 의 색을 나타나게 하는 방법이
  있다. 여러가지 방법이 있겠지만 솔라리스에서 색을 나타나게 하는 가장
  쉬운 방법이 있어서 소개할까 한다. TERM 정보를 xtermc 로 설정하는
  방법이다. 즉 vim 이나 emacs 를 띄우기 전에 export TERM=xtermc 로
  설정하고 실행하면 putty 에서도 색이 보인다. 계속해서 하기 귀찮으니
  .profile 화일에 적어줘서 매번 써줘야 하는 불편함을 제거하자.

+ Recent posts