예전에 개발자 시절에 봤던 예광탄 부분을 찾을려고 뒤적거리다 보니 기술 리더에 관한 글이 있더군요. 그때는 관리자로서 살아갈 생각을 못했기 때문인지 스쳐 지나갔던 내용이 이제 관리자 입장에서 보니 새록 새록 눈에 들어오네요. 그래서 정리해 보기로 했습니다.

기술리더의 역할

- 팀이 나아갈 방향을 설정합니다.
 * 기술리더가 프로젝트의 가장 큰 그림을 그리며 진행과정을 추적합니다.
 * 일정 목록을 만들고 관리합니다.

- 프로젝트의 기능 목록을 관리합니다.
 * 팀이 어떤 일에 힘을 쏟아야 할지 이끌어 감
 * 기술적 요청이 들어왔을 때 그것이 필요한 것인지 중요한 것인지 판단해서 잘라내는 일도 함
 * 새로운 요청이 들어오면 목록에서 최우선 항목들과 비교해서 중요한 일인지 아닌지 판단하는 일이 필요함

- 기능 요구사항에 우선순위를 부여합니다.
 * 이해관계자와 협력해서 기능 우선 순위를 부여합니다.
 
- 정신을 산만하게 만드는 외적인 요소로부터 팀을 보호합니다.

제대로 기술리더 일을 하고 있는지 체크 하기

 - 팀 구성원 각자가 무슨 일을 하고 있는지 알고 있는가?
 - 5분 이내에 프로젝트의 현 상황에 대한 개요를 작성해낼 수 있습니까?
 - 다음에 추가해야 할 기능이 무엇인지 5개 내지 10개 정도를 댈 수 있습니까?
 - 우선순위가 가장 높은 결함을 서슴없이 열거할 수 있습니까?
 - 팀 구성원을 위해 여러분이 해결한 가장 최근의 문제는 무엇이었습니까?
 - 해결해야 할 중요한 이슈가 있을 때 팀 구성원이 여러분을 찾아옵니까?


책을 읽는 다는 것이 도움이 되는건 은연중에 읽었던 내용대로 하고 있는 것을 발견할 때의 기쁨이랄까요? ㅎㅎ
맥을 얼마전에야 샀습니다. 그런데 주문한 날 새로운 OS가 나오더군요. 그래서 맥을 산곳에 전화를 해서 새로운 OS (Snow Leopard) 가 나온 것을 알고 있다. 빨리 한개 보내달라고 했습니다. -ㅅ- 물론 그쪽에서는 정중하게 되묻더군요 "머리에 구멍이라도 나셨습니까? 손님?" 네 그렇습니다. 저는 진상짓을 제대로 하기 시작했습니다. 회사에서 재무 보는 친구가 제 등쌀에 못이겨서 전화기를 들고 이야기를 하고 있고 저는 옆에서 어떻게 하겠다는 협박만 알려줬습니다. 착한 제 친구는 (재무 보는 친구) 땀을 뻘뻘 흘리면서 저의 온갖 진상짓을 마이너한 버젼으로 항의를 하더군요. 결국 '걍 환불하고 조금 기다렸다가 새 OS 장착 되는거 확인하고 사겠다' 라는 아주 멋진 협박을 알아내서 이야기 했더니 그쪽에서 바로 '이거나 먹구 떨어져라' 라는 식으로 OS 업그레이드 비용을 통장으로 부쳐주더군요.

뭐 열심히 얻어낸 쾌거였기 때문에 즐거워 하면서 운영체제를 업그레이드 했지만 새로받은 OS 는 64비트 전용이라 기존의 OS 에서 설치했던 프로그램들이 충돌나는 것이 몇개 있었습니다. 예전에 제가 올렸던 [[예전 포스팅]] 같은 경우 말이죠.

항상 새로운 것이 문제입니다. 새로운 것을 그냥 쓰는 것은 사실 문제가 되지 않지만, 잘 쓰거나 또는 뭔가 사람들이 잘 안하려는 것을 할려고 할 때는 더욱 더 문제가 되기 마련입니다.

아이폰 어플리케이션 개발이 바로 그런것이라고 볼 수가 있습니다.  예전 버젼이라면 문제가 없겠지만 아이폰 OS 가 최신인 3.1.2 를 쓰면 문제가 되고, 개발하는 OSX 가 10.6 (즉 Snow Leopard)가 되면 문제가 되기 마련이지요. 이 두가지가 결부된다면? 아 끔찍합니다..

바로 이러한 짜증을 바탕에 두고 이 작업을 시작했습니다. 결국 논점은 그것입니다. 개인용 제작시 우리돈으로 대략 년당 12만원 , 상업용 제작시 우리돈으로 대략 년당 120만원 이돈을 아껴볼려고 하기 때문입니다. 제가 상업용을 제작할 것도 아니고, 그렇다고 제작한 것을 외부에 공개할 것도 아니고 그냥 간단하게 제작해서 제 아이팟 터치에 넣어서 가지고 싶은 것인데 너무 돈이 비싸지요. 즉 라이센스 작업은 나중에 공개할 때 해도 충분하다는 것입니다.

물론 쉬운 작업은 아니였습니다. 해놓구 보면 쉽지만 하기까지의 과정이 쉽지 않더군요. 물론 어려운 이유는 자료가 없어서 입니다. 정말 찾기 힘든 자료들과 된다고 쓰여져 있는데 안되는 것들 이러한 것들이 총체적으로 난항을 겪게 했습니다. 더러워서 돈 내고 받아볼까? 라는 생각까지 해봤습니다. ^^;;

아이폰 jailbreak 에 대해서는 굳이 설명 드리지 않겠습니다. 하는 법도 어렵지 않고 또 jailbreak 도 못하신다면 거기서 돈안내고 개발은 포기하시는게 정신 건강상 좋습니다. 제가 쓰는 방법은  blackra1n 이라는 툴을 쓰는것입니다. 지금까지 나온 방법중에서 가장 혁신적인 원버튼 해킹이 됩니다. 구글에서 'blackra1n'을 검색해보시면 바로 프로그램 뜹니다.

아이폰 (또는 아이팟 터치)이 '탈옥'이 됐으면 이제 개발에 들어갈 차례입니다. apple 의 Developer 사이트에서 iphone_sdk_3.1.2_with_xcode_3.2.1__snow_leopard__10m2003.dmg 를 다운 받습니다. 버젼과 OS 확인하시고 받으시면 됩니다. 이 글을 쓰는 당시는 저 버젼이 최신이였습니다. 그리고 바로 설치해 주시고요. 그러면 컴퓨터에 Xcode 3.2.1 버젼이 설치되었을 것입니다.

XCode 를 실행하고 다음 그림과 같이 "Create a new Xcode project" 를 선택합니다.

Welcome to Xcode

이런 툴을 공짜로 배포하는 애플이라니!! 하지만 인증서로 돈 계속 받으니 MS 가 나은건가?..



테스트할 것이기 때문에 프로젝트 종류는 아무거나 선택합니다.


Window-based Application

윈도우 베이스 어플리케이션으로 테스트



프로젝트 이름을 정하는 것입니다. 이거도 아무거나 선택합니다. 저는 "Crazy World" 라고 정했군요.


New Project

헬로 월드가 식상해서...



자 일단 컴파일을 해보면 Simulator 로는 잘 되는 것을 확인할 수 있습니다. 이제 Device - 3.1.2 로 바꾸고 컴파일을 해봅니다. 잘 컴파일이 되고 인스톨이 된다면 성공이겠지만. 당연히 안 될 것입니다. 


Device - 3.1.2

디바이스에서 프로그램을 돌릴꺼라는 이야기입니다.




정확히는 컴파일이 안될 것입니다. 일단 컴파일 부터 되게 만들어 보겠습니다.

참조: http://networkpx.blogspot.com/2009/09/compiling-iphoneos-31-apps-with-xcode.html

여기에서 참조하실 부분이 'I want to compile' 부분 입니다. 조금 정리를 하자면

1. 자체 제작할만한 인증서가 필요합니다. 인증서를 만드는 방법은 여기에서 인증서를 만드는 방법이 있습니다.  인증서 만들때 Name (이름) 을 'iPhone Developer' 로 만들어 주는 것만 확인하시면 됩니다.

2. 만들어진 인증서는 '로그인' 키체인에 존재해야 합니다. 절대 '시스템' 키체인이 아닙니다. 그리고 모든 사용자에게 신뢰하겠냐는 부분은 하겠다고 체크하셔야 합니다.

3. 인증서가 만들어졌으면 다음과 같은 작업을 해줘야 합니다.

   3-1. /Developer/Platforms/iPhoneOS.platform/Info.plist 파일을 열어서
   3-2. 46 번째 줄에서 XCiPhoneOSCodeSignContext 를 XCCodeSignContext 로 바꾸어 줍니다.
   3-3. 79 번째 줄에서 XCiPhoneOSCodeSignContext 를 XCCodeSignContext 로 바꾸어 줍니다.
   3-4. 파일 저장합니다.
   3-5. XCode 를 재시작합니다.

4. 이제부터 컴파일이 아주 부드럽게 될 것입니다.


그리고 그 다음부터 참조한 페이지에서 나오는 'I want to install and debug too' 부분은 열심히 따라 했지만 아이팟 터치만 두 세번 복원하고 안된다는 것만 확인했습니다. 모름지기 하는 방법이 복잡한 것 치고 좋은 방법이 없다는 것을 다시 한번 확인한 셈이라 볼 수 있습니다.참조 페이지를 쓰신 분은MobileInstallation.framework 을 안좋아 하신다는 것이 힌트가 되서 MobileInstallation.framework 방법으로 성공했습니다. 그 방법을 알아보기로 하지요. 매우 쉽습니다.

참조: http://www.iphonedownloadblog.com/2008/08/18/mobileinstallation-for-iphone/

위 참조 사이트에서 'MobileInstallation patch for iPhone 3.1.2 Firmware:' 부분을 참조하시면됩니다. 

1. 아이폰이나 아이팟 터치에서 Cydia 를 실행시킵니다.

2. 아래쪽 탭에 있는 'Manage' -> 가운데에 있는 'Sources' -> 상단 오른쪽에 있는 'Edit' 클릭 ->  상단 왼쪽에 있는 'Add' 클릭

3. http://cydia.hackulo.us 입력하시고 'Add Source' 버튼 클릭

4. 'Add Anyway' 버튼 클릭 후 안정적으로 추가되면 아이폰(아이팟 터치)을 리부팅 시킵니다.

5. Cydia 를 실행시키고 하단 탭의 'Search' 를 클릭하고 "AppSync for OS 3.1' 을 설치합니다. 그리고 리부팅을 다시 한번 해줍니다.

이제 정상적으로 컴파일이 되고 아이팟 터치에 인스톨까지 되는 것을 확인하실 수가 있습니다. 년당 12만원을 아주 손쉽게 아꼈군요..


연일 맥을 가지고 놀다 보니 발견하게 되는 개발 환경과 작업 환경 세팅시의 문제점들이 발견 되는 군요. 저는 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


왜 인지 모르지만 너무 잘 돌아갑니다. -ㅅ-;;
osx 를 사용할 때, svn 을 사용해서 소스나 레파지토리에서 파일을 check out 을 하게 되면 영문 파일들은 잘 내려받고 서버와 동기화도 잘 되는 반면 한글 파일명을 가진 파일들은 오동작을 일으킵니다. 쉽고도 간단하게 확인이 가능한데

svn st


라고 입력을 하면 분명히 방금 checkout 을 한 경우라도 같은 파일이 레파지토리에 추가가 안되어 있다고 나옵니다. 이 문제는 osx 에서 쓰이는 utf-8 방식이 svn 과 달라서 발생하는 문제라고 합니다. 계속해서 reporting 되고 있는 문제긴 하지만 subversion 측에서 적용을 안하고 있는 것 같습니다. 최초 발생과 패치를 일본 프로그래머가 내놓은 시점이 1.4.4 버젼이였는데 현 버젼인 1.6.5 까지 아무런 적용이 안되고 있는 것을 보면 쉽게 추측이 가능합니다.

그 발생한 문제에 대한 이슈는 원문보기 에서 잘 나타나 있습니다. 그 달려있는 내용중에 보면 힌트가 나와 있습니다. 그 내용을 조금 정리하자면
curl -O
 http://www.opensource.apple.com/darwinsource/tarballs/other/subversion-16.tar.gz
curl -O http://www.opensource.apple.com/darwinsource/tarballs/other/neon-8.tar.gz
curl -O
http://subversion.tigris.org/nonav/issues/showattachment.cgi/780/utf8precompose_macosx.path

tar xzf subversion-16.tar.gz
tar xzf neon-8.tar.gz
patch -p0 < utf8precompose_macosx.path
mv neon-8/neon subversion-16/subversion
cd subversion-16/subversion
./configure --with-ssl
make
sudo make install

# patched version of svn will be installed on /usr/local/bin,
# make sure you have /usr/local/bin in your PATH environment variable.

이렇게 하라고 되어 있는데 , 실제로 잘 구동하지가 않습니다. 그래서 curl 명령 뒤에 붙어 있는
링크들을 클릭해서 직접 파일을 받아서 패치를 적용해 보았는데 제대로 동작을 하지를 않더군요. 게다가
버젼이 1.4.4 라 너무 낮습니다. 그래서 이 내용을 참조해서 1.6.5 버젼용 패치를 만들어 보았습니다.
이 패치는 오로지 osx Leopard 를 기준으로 합니다.

subversion 1.6.5 를 여기 를 클릭해서 내려받습니다. 적절한 곳에다 옮겨주시고

tar xzf subversion-1.6.5.tar.gz

하시고 그리고 패치파일을 받습니다. 그리고 패치를 적용해 줍니다.

patch -p0 < utf8_mac.patch
cd subversion-1.6.5/subversion
./configure
make
sudo make install


이제 문제가 해결된 svn client 를 소유하게 되앴군요.





일을 시작할 때 매뉴얼 좀 그만봐라. 세상은 급변하고 상황은 시시각각으로 달라지는 데
모른다는 이유로 매뉴얼을 처음부터 읽고 있으면 대체 언제 만들것인가? 목차가 있는
이유는 찾아보라는 뜻이고 매뉴얼이 있다는 것은 항상 찾아볼 수 있는 준비가 되어
있다는 이야기다. 꼭 공부 못하는 애들이 사전을 처음부터 읽으면서 외운다니까. 뭐하는
짓이람? 찾아보라고 만들어 진것을 공부하다니 말이지 - C 군

요새는 다른 의미로 자주 쓰여서 부정적인 이미지가 강하긴 하지만 사실 '실용'이라는
단어는 아주 좋은 말이지요.형식에 구애받지 않고 바로 결과를 얻어내는 비용을 최소화
하는 뭐 그런식의 느낌이지요.그래서 현학적으로 유명한 그래서 읽기가 난해했던
'실용주의 프로그래머' 라는 책이 프로그래머들 사이에 인기를 끌었던 적이
있었습니다. 저두 그 책을 보며 많은 감명을 받았습니다. 그 때는 그리 열심히 읽었던
책인데 지금은 하나도 기억이 안나는 군요. 이 것이 '장삼봉' 이 말하던 '태극검'의
요지겠군요. 잊으면 잊을 수록 강해지는.. ^^;

실용주의 프로그래머

이 책이지요. 선물도 많이 했던 기억이 ^^

중요한 것은 그리 열심히 '실용주의 프로그래머' 라는 책을 읽고 나서도 정작
'실용적'으로 행동을 못하는 데 문제가 존재합니다. 잘 보면 주변 개발자들 중에서
프로젝트를 진행할 때 잘 모른다는 이유로 그리고 기초를 탄탄히 해야 한다는 이유로
매뉴얼 또는 기초부터 다루는 책을 열심히 처음부터 읽어갑니다. 이러한 것은 시간이 매우
많이 필요한 일이지요 또한 열심히 해야 합니다. 저도 이런 식으로 처음부터 기초를
다지려고 하다가 바쁜 시간에 쫓기거나 무엇인가 해야 하는 당위성 같은 것이 희미해져
중간에 그만 둔 적이 매우 많습니다. 이렇게 열심히 기초부터 닦기에 적합한 곳이
있습니다. 바로 '학교' 이지요.

실용적으로 개발을 하려 함은, '다급함과 독함'으로 자신을 밀어 넣는 일이라고
생각합니다. 이런 방식을 통해서만 배우는 속도가 상향되고 그 과정을 통해서 나오는
산출물이 좋아집니다. 그렇다면 '다급함과 독함'으로 자신을 밀어 넣는 일이 무엇인가?
라는 의문이 들 것입니다. 쉽게 말씀드리자면 '일단 시작하라는 것'입니다. 새로운 기술을
배울때나 공부를 해야 할 필요가 있을 때 일단 그 기술을 쓸 것을 가정하고 그 것을
이용하는 일을 시작하라는 것입니다. 사람에 따라 스타일의 차이는 있지만 예를 들어 C#
으로 뭔가 해야 할 일이 있을때 일단 프로젝트 부터 만들고 시작을 하는 것이 실용적에
가깝다는 것이지, 처음부터 C# 문법책 꺼내놓구 공부를 시작하는 것은 실용적에 가깝지
않다는 것입니다.

실례로 제 주변에서 있었던 일입니다. 10년이 넘게 알고 지내던 친구가 있는데 그 친구가
두벌식 자판에서 세벌식 자판으로 바꾸고 싶어서 거의 5년전부터 세벌식 자판을 슬쩍 슬쩍
보더군요.그런데 결정적으로 못 바꾸는 이유가 일할때나 놀때 두벌식 자판이 손에 익어서
절대 세벌식이 안 익혀진다는 것이 그친구가 항상 하는 말이였습니다. 그러다 최근에
무슨 바람이 불었는지 과감히 IME 를 세벌식으로 바꿔버리더군요 그리고 일할 때나 놀 때
떠듬거리고 세벌식만 쓰는 것을 노력하더니 드디어 5년의 숙원사업을 쟁취하더군요!! 딱
일주일 걸릴 일이였습니다.세벌식으로 치다가 막힐때마다 키배열 보면서 익혔다고 하더군요.

비슷하게 어떤 프로젝트를 생각하시고 그 기반의 배경을 알 필요가 있는 경우가
많습니다. 뭐부터 해야 할까? 공부할 것도 많고 봐야 할 것도 많은데. 이럴 경우에도
'그냥 만드십시오' 그리고 막히면 그때 가서 찾아보세요. 진행하다 막혔을 때 찾아보는
'다급함'이 시작도 안하고 공부하면서 상상의 나래만 펼치는 것보다 훨씬 '생산적'
입니다.

그냥 시작하세요. 그게 실용입니다. 겉돌지 마시고 한방에 핵심을 찌르고 시작하시는
것입니다. 그리 하는 것이 여러분의 시간을 절약하고 빠른 결과의 보람을
알려드립니다. 제가 겪어왔었던 처음부터 공부하다 좌절하는 경우 의 밀어닥치는 후회감과
좌절감은 자신을 좀 먹습니다. 여러분의 시간은 무엇보다 소중하고 비싼 시간입니다. (또한
윗 상사의 시간이기도 합니다 ㅎㅎㅎ) 이 바쁜 세상에서 시간을 절약하는 것 만큼 강점이
없기 때문이지요.


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

예전에 가난한 사람들을 위한 개발 환경 갖추기의 일환으로 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군: 무지 불 천절하구만 ? 이거 보고 어떻게 따라하나? 그림 한장도 없구만..
나: 걍 설치해 둔거 안 잊어먹을려고 로그 남긴건데 까탈스럽게 굴긴. 그리고 진짜
설명이 필요 없을 정도로 쉽다고..


 

사전이 필요할때마다 dic.daum.net 에 가서 찾어서 하는게 귀찮아서 아예 emacs 에서
검색이 되면 참 좋겠다고 생각했더니 역시나 패키지가 있더군요.

요기에서 패키지 받기

여기에 가시면 download 메뉴에 가시면 최신 메뉴를 받으 실 수가 있습니다. 받아서
압축을 풀어주시고 적절한 곳에(대기 스타일!!) 복사해줍니다. 그리고 .emacs 파일에
설정을 잡아주시면 바로 사용이 가능합니다.

;; dictionary added
(add-to-list 'load-path
                   "~/.emacs.d/dictionary-1.8.7")


저는 .emacs.d 디렉토리 밑에다가 복사해줬습니다.

(load "dictionary-init")


이렇게 해주면 모든 사전 설정들을 세팅해줍니다.

;; dictionary key bindings
      (global-set-key "\C-cs" 'dictionary-search)
      (global-set-key "\C-cm" 'dictionary-match-words)


기본 사용에 관한 키 바인딩을 해 줍니다. 이러면 기본적으로 국제 사전을 찾아가서
'영-영 사전'을 기본으로 단어를 보여줍니다. '영-한 사전'을 찾아야 하는데 말이죠 -ㅅ-

M-x customize-group RET dictionary RET 를 입력해서 설정을 바꿔줄 수도 있습니다.

coLinux 에서 윈도즈 파티션(ntfs) 를 마운트 하는 방법에 대해서
알아보겠습니다.

윈도즈 파티션 자체를 마운트 해야 합니다.

그런데 config 파일에 설정하는 방법 말고 서비스를 띄울때 띄우는 방법이
있습니다. (config 에서 하는 방법은 아직 못 찾았습니다) 서비스를
등록할때 기존 방식으로 등록하는 대신 실행할때 볼륨을 알려주는 방식으로
해야 합니다.

colinux-daemon.exe @example.conf cofs0=c:\ --install-service "coLinux"

이런 방식으로 서비스를 등록합니다. 그리고 coLinux 콘솔창에 접속해서
prompt 상에서

mount -t cofs 0 /mnt

일반 유저는 sudo 를 포함해서 실행시키면 됩니다.

서버(unix 계열) 일은 해야겠고 그러자고 Linux 를 깔자니 귀찮고,
그렇다고 항상 서버에 접속해서 일을 할 수는 없는 것이고.. 이럴때를 위한
획기적인 방법이 존재합니다.

바로 colinux 라는 솔루션입니다. vmware 에 가깝다고 보시면 되는데 가상의
리눅스 머신을 윈도안에서 띄우는 솔루션이지요. 자 이제 이것을 설치하면
서버머신이 없더라도 윈도에서 놀면서(!) 서버일을 할 수 있는 멋진 장점이
있습니다.

http://www.colinux.org/ 에서 좌측 프레임의 Downloads 링크를 따라가면
나오는 페이지에서 coLinux-0.7.3.exe 를 받아서 설치합니다.
설치중에 어디에다 설치할 것인지 물어보는 부분이 있는데 기본으로
"c:\Program Files\colinux" 입니다. "c:\colinux" 가 여러모로 편하다고
하지만 기본으로 해도 별 지장은 없습니다.

root file system 을 다운 받을까 하는 물음이 있습니다. 나중에 따로
받기가 매우 귀찮을 꺼라는 생각이 팍팍 들더군요. 다루기 쉬운 애로
받아서 깔도록 하지요. 전 'Debian XXX' 를 선택해서 받았습니다.

설치가 끝나고 '시작메뉴' 나 '프로그램 설치정보'를 찾아봐도 colinux 가
설치됐다는 정보가 없습니다. 조금 더 뒤져보면 "c:\Program
Files\colinux' 관련 파일들이 있다는 것을 알게 됩니다.

Debian-4.0r0-etch.ext3.1gb.bz2 이게 위에서 다운 받은 루트 이미지
입니다. 이것을 압축 해제 하고 나온 파일의 이름을 root_fs
수정합니다. 물론 이 파일은 colinux 가 설치된 곳에 저장이 되어야
합니다.여기까지 기본 준비는 끝나고 이제 실행에 옮겨보기로 하지요

"c:\Program Files\colinux" 로 이동해서 콘솔상에서
'colinux-daemon.exe @example.conf'

라고 실행합니다. 이건 어플리케이션 형태로 colinux 를
실행하는 방식인데, 뭔가 될려고 하다가 중지됩니다. "c:\colinux" 밑에
설치했다면 제대로 동작하지만 "c:\Program Files\colinux" 밑에 설치했으면
동작하지 않습니다. example.conf 파일을 열어보기로 하지요.
cobd0="c:\coLinux\root_fs" 라고 되어 있는 부분을 다음과 같이 바꾸어
줍니다.  cobd0="c:\Program Files\coLinux\root_fs" 다시 콘솔에서

'colinux-daemon.exe @example.conf'

라고 실행하면 colinux 가
부팅됩니다. 아이디 패스워드는 루트로 바로 접속이 가능합니다. root/root
이니 로긴해서 사용 아이디 만들어서 사용하시면 됩니다.

저는 어플리케이션 형태로 실행하는걸 테스트 목적으로 쓰고, 그 다음부터는
서비스 형태로 등록해서 필요할때만 서비스를 실행시켜서 리눅스를 부팅하고
사용하는 방법을 즐겨 합니다.  colinux 가 설치되어 있는 디렉토리
콘솔창에서

colinux-daemon.exe @example.conf --install-service "coLinux"

라고 입력합니다. 이러면 'coLinux' 라는 이름으로 서비스가 등록됩니다.

colinux-daemon.exe @example.conf --remove-service "coLinux"

하면 서비스가 해제됩니다.
서비스가 등록되어 있는 상태에서 리눅스를 부팅시키려면

net start "coLinux"

라고 콘솔에서 입력하시면 리눅스가 부팅이 됩니다. 그러면

colinux-console-nt.exe

를 실행해서 콘솔로 연결해서 사용이 가능합니다.



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

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