다음을 통해 공유


골수 Unix 쟁이의 Windows 개발 환경 삽질 보고서 #1

윈도우즈(Windows) 한 번도 안 써봤다면 거짓말이겠다. 어떻게든 윈도우즈는 쓸 수 밖에 없지, 이 나라에서는.

허나, 솔직히 말하건데, 지금 글을 쓰고 있는 나는, 적어도 지난 여섯 해 동안 윈도우즈에서 진지한 프로그램을 짜 본 일이 거의 없다. C#은 고사하고, C++로도. 한 술 더떠서, 편지 보내고 글 쓰고 웹 서핑 따위 일도 거의 Unix에서. 그 밖에 꼭 윈도우즈 써야할 일은, Die Hard 윈도우즈 유저이신 마눌님께서 해주시옵고. (Olleh!) 그래서 본래는 글 제목을 “Die-Hard Unix 유저…” 어쩌고 저쩌고 하려고 하다가, “Die Hard”란 낱말이 마음게 걸려 바꿨다.

어쨌든, 어떤 까닭에서 건, 나는 지금 아주 오랫만에 윈도우즈에서 소프트웨어 개발을 해야만 한다. 그 것도 신기술을 가능한 한 껏 끌어들이면서…

사실 이런 일로 블로그 글까지 써야 할까 하다가, 몇 년 전에 Apple Forum을 자주 들락 거릴 때 (빈도수는 줄었지만 나는 여전히 이 포럼의 오랜 회원이기도 하고 틈 나는 대로 들려서 좋은 정보도 많이 얻고 있기도 하다.),  “Die-Hard Windows 개발자의 Mac 적응기” 던가… 하여간 그런 제목의 연속된 블로그 글을 재밌게 읽었던 기억이 났다. 좀 더, 털어 놓자면, 나는 지난 거의 10년 동안 Mac OS X을 썼다. 대충 SCO Xenix –> SCO Unix –> NextStep –> 386BSD –> Linux -> Solaris –> FreeBSD로 이어지는 내 스무해 넘는 Unix 여정의 종착역인 셈이다. 따라서 Objective C를 모르지는 않지만, 그렇다고 Mac OS X 개발자라 하기는 어렵다. 아직도 내 집에는 두 대의 맥킨토시가 있다. 듀얼 G5 데탑 한 대, 검정 맥북 한대. 최근에 검정 맥북 한대에는 Windows 7을 깔았다. 이 정도면 내 “골수”의 깊이를 더 이상 늘어 놓지 않아도 될 듯.

{ 마이크로소프트 직원이 아직도 Mac OS X을 쓰면 되겠냐고? 호호, 안될게 뭐있나? 그럼 이건 뭐라고 설명할까? https://www.microsoft.com/mac/default.mspx (Mactopia). 그리고 iPhoneActiveSync 라이선스는 왜 해줘쓰까? 더불어, Google에는 또 왜 ActiveSync 라이선스는 왜 해줬으까? 이 밖에도 기술 편가르며 말싸움하기 좋아하는 버릇을 못버리는 사람들로서는 이해 못할 수많은 “적과의 동침”이 하루가 멀다하고 자연스레 생겨나는 곳이 바로 이 판이다. 기술과 제품의 성패는 생태계의 건전성으로 판가름 나는 것이지, 그 자체의 기술적 우수성과 소수 집단의 비 논리적 충성도로 지켜질 수 있는 것이 아니다. 지금 까지 이 분야의 역사가 증명하듯이. }

아 뭐가 어찌되었던, 이 글에서 중요한 것은 어떤 필요에서건 (1) 이제 그간 죽자고 Unix / Java 환경에 더 가까운 방식으로 프로그램 짜던 사람이, 윈도우즈에서 과감히 삽질을 해보기로 마음 먹었다는 것이고, (2) 연배와 경륜이 어떠하던 간에 여하간 누군가의 도움이 절실히 필요하다는 것 (3) 그 과정에서 겪고 있는 궁금증과 난점을 눈 딱 감고 용감하게 떠벌이고 있다는 사실이겠다.

사실 옆자리에 전문가들이 즐비하지만, 사실 내겐 거의 도움이 되질 않는다. 내가 물어보는 것이 “하도 오래전이라 기억이 안나는데, C# 컴파일러 이름이 뭐유?” 또는 “cmd 창에서 굴림체 말고 다른 글꼴은 쓸 수 없수?” 같은 너무 잡스럽고 촌스런 것이기도 하거니와 일단 너무들 바빠서 얼굴 보기도 힘든 사람들에게 어이없는 질문을 던지기가 선뜻 내키지가 않는다. 그리고, “당신이 왜 이제와서 윈도우즈 프로그래머가 되려고 하지?”라고 대놓고 물으면 뭐 딱히 대답할 답이 떠오르지 않는다. ( 내가 뭔가 열심히 몰래 준비하고 있다는 것만은 사실이지만.)  이 무슨 황당한 풍요속의 빈곤이던가? 그래서 용감한 척 (뭐 모르는 것은 모른다고 해야지…) 하면서 이렇게 공개적으로 대놓고 물어보는 거다. 혹시 안팎으로 누군가 답해 주지 않을까 싶어서…

아래는 그 첫번째 삽질 보고서다 - 미리 말하건데 보고 웃지들 마시라. 그리고 플랫폼 전략이 어쩌고 저쩌고 하는 양반이, 3백만년 전 아해들이 고민하던 문제를 이제 와서 들먹이냐고 퇴박 놓지도 마시라. 그저 마흔 줄에 기꺼이 삽질하는 사람의 마음을 어여삐 여기사, 과감한 도움의 손길을… ^^;;

뭐, Simon Peyton Jones 같은 어르신도 윈도우즈 쓰시면서 https://research.microsoft.com/en-us/um/people/simonpj/win32-cheat.html 이러셨나 본데 나라고 별 수 있겠남? 뭐든 익숙하지 않으면 불편한게다. 예전 우리 할머니 이불 빨래를 하시는 데도, 세탁기 마다하고 손빨래 하셨듯이. 각설하옵고. 

  1. X Terminal을 완전히 대체할 기능을 찾다가 반나절만에 포기. Remote Desktop Connection으로 대체 가능? 이 기능을 한 두 쪽으로 잘 설명해 놓은 글은 웨 검색해도 잘 않나오는 거냐. 솔직히 Help 별 도움 안됐다. 어쨌거나, RDC로 연결했을 때, Server 쪽 GUI 다 뜨는 거 말고, Shell만 어찌 뜨게 할 수는 없을까? 그리고 그 쪽에서 실행시킨 어플 화면을 내 컴터 쪽으로 보이게 하려면 어찌해야 되지? 너무 어렵거나 잘 안된다면 하는 수 없는 일. 윈도우즈에는 나름의 사는 방식이 있을 터이지. 뭐 꼭 같은 기능 필요하다고 우겨댈 생각은 없다.
  2. Cmd로는 Unix shell를 대체하기는 좀 역부족인 듯. Powershell? 문뜩 배보다 배꼽이 더 클 듯한 느낌이… 아 무엇보다 Cmd를 실행시킨 콘솔 창에서는 Defaults 세팅에서 Codepage를 437로 바꾸니, Consolas나 Lucida 같은 글꼴을 쓸 수 있는데, 왜 Powershell 창에서는 Defaults 세팅에서 Codepage를 바꾸지도 못하는 거지… –;; 이거 VI 에디터 쓸려면 굴림체나 raster 글꼴은 좀 … 그런데… 아… 괴롭다. 좋은 코드는 좋은 글꼴에서 나오는 벱이야~~~(지발 글꼴 바꾸는 방법 좀 갈쳐 주시구랴.)
  3. 왜 IDE 안쓰냐고? Visual Studio 좋은지는 저도 알지라. 뭐 앞으로는 꼭 써볼 틴티…. 근디 olleh! world 정도로 간단한 실험 코드 쓸라는데, IDE 열고 프로젝트 만들려고 엉성한 이름 짓고 … 그 건 좀 아직 좀 그러하네… 익숙치 않아서 그런건가? 이럴 땐 EMACS 쓰기도 부담시려.
  4. .NET 공부하는데, 꼭 C# 써야하남? 이 번에 나온 .NET 4 버전부터는 Ruby나 Python 쓰면 안될까? 아직도 좀 쓰기가 좀 그런가? Ruby on Rails를 꼭 쓰겠다는 것은 아니지만, 가볍고 날렵하게 즐기기에는 Interpreter 방식으로 즉문 즉답하는 환경에서, Typing 신경 끄고 노는 것이 사실 더 맘에 드는데… 흠 고민
  5. Command line 컴파일러 쓰려다 보니, 환경 변수 세팅하는 것 때문에 고민 중이었는데, Visual Studio 2010 Ultimate Beta 까니까 PATH에 환경 변수 물어서 cmd 창 띄워주는 메뉴가 떡 하니 생기던데, 왜 Visual Studio 2010 Express 판에서 C# 판 깔고나면 왜 그런 메뉴 같은 것이 아예 뵈질 않은 겨… 사무실 데탑에는 Ultimate 판 몽창 깔고 싶지 않은데… –;; { cmd 대신 powershell 물려 띄울려면 어찌 해야하지? }
  6. cmd 창 뛰우니 Visual Studio 2010 설치된 폴더로 가는 군. 이거 C Shell의 CDPATH 처럼 자주 가는 directory로 한 방에 cd로 가도록 환경 세팅할 방법은 없는가? 아니면 나도 모르는 획기적인 뭔가가? … 이거 안되면 무쟈게 귀챦은데… –;;

이 번 삽질은 요기까지. 어쨌거나, 이거 쉽지 않군. oTL

2010 년 1월 13일, 사무실에서 퇴근 전 막판 1 시간 남겨두고 삽질하면서

Comments

  • Anonymous
    January 13, 2010
  1. 간단한 코드를 작성할때는 SnippetCompiler 추천합니다. VS의 필수적인 기능은 들어가 있고 설치 없이 바로 사용할 수 있습니다
  2. 저도 다른 언어를 사용해서 테스트 프로그램을 작성하지만 VB.NET이나 C#에 비해 언어적으로 부족하다고 생각됩니다. MS가 밀고 있는 언어이기에 관련 자료를 구하는 것도 쉽고요.
  3. ContextMenu(마우스 우클릭)에 메뉴를 등록하고 폴더에서 실행하면 해당 폴더 경로에서  CMD가 실행됩니다. Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOTDirectoryshellCommand] @="Command (VS2010)" [HKEY_CLASSES_ROOTDirectoryshellCommandcommand] @="cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86" reg 파일을 만들고 위의 코드를 입력 후 실행하면 ContextMenu에 Command (VS2010)이 추가됩니다. VS 10 경로가 틀리면 고치시고요.
  • Anonymous
    January 13, 2010
    6 번에 대한 팁, 주금이군요. 진짜 고맙습니다. 이게 딱 GUI에 맞는 방식일 듯. 근데, 첫째, 지정한 디렉터리가 패러미터로 안가고, 그 상위 디렉터리가 cmd process의 current path로 인식되네요. 한 번 바꾸어 보죠. 둘째, vcvars 파일이 실행 결과가 새로 뜬 아기 shell에 반영이 안되네요. 3번은 한 번 살펴보겠고, 4번은 생각 좀 해봐야 겠네요. 이거 오랜 간만이라서 그런지 은근히 재밌네요. :)