Korea Evangelist

Developer & Platform Evangelism, Microsoft Korea

January, 2010

  • Korea Evangelist

    Unix 골수가 Windows에서 사는 법 #4: SUA 삽질 – 코딩은 언제 할꺼냐? 당췌!

    • 0 Comments

    아직 재미있는 일은 시작도 안했건 만, 혹시나 그 동안 뭐하고 있었나 궁금할 지도 모를 양반들을 위해서 중간 보고 올리는 바이다. 요사이 ���부 무지하게 하고 있다. 역시나 셈말 꾼이 터전을 옮긴다는 것은, 그간의 삶을 옮기는 것 만큼이나 버거운 일이다. ( 실제로 조사를 해봐도 그렇게 나온다지? 주로 쓰는 셈말을 바꿔치는 일이 그다지 흔치 않다는 게다. 뭐, 사람말이든 셈말이든 처음 생각의 틀을 잡을 때에 배워 쓴 말은 “엄마 말"(Mother Tongue)”이나 마찬가지. 영어를 열심히 공부해도 머릿 속에서 일어나는 생각은 우리말로 하게 되어있는 게지. 그렇다 해도, 알맞은 일에 알맞은 셈말을 배워 쓸 줄 아는 것은 쟁이가 갖추어야 할 바탕 가운데 바탕이겠다. )

    아래는 그 간의 삽질 보고 되겠다.

    • 끝내는 SUA 의 모든 걸 다 깔아서, 거의 Unix 환경을 만들어 버렸다. ( .NET 공부한다더니 지금 뭐하고 있는 거냐?—;; 배보다 배꼽이 더 크쟎아~~. ) Windows 위에 Unix Subsystem을 만들어 올리는 방법은 다음과 같다.
      1. 맨 먼저 Windows 그 머시기냐 소프트웨어 깔고 지우고 하는 제어판가서 Subsystem for Unix Apps가 하는 놈을 깐다.
      2. Utils & Apps for SUA 이거 받아다 깐다.
      3. SUA에 가서 Complete Toolset 깐다. 이 때 괜히 패키지가 쓰임새 따라 아래 같이 여러 묶음으로 나누어 놓았는데 괜한 헛삽질 말고 “Complete Toolset” 받아 까는 것이 좋다. 이 때 준비할 것은 “무한한 참을 성”이다. 내image려 받는 속도가 가끔씩 살인적이다. ( 성질 급한 우리나라 네떡 꾼들에게는 주금인 것이지, 이런거 vv;; 어지간 하면 이런데도 돈 좀 들이지. 기왕 고생해서 만든 것을 뭐 이렇게 마무리하고 있냐.)
        • 특히 이거 깔 때, Local administrator로 깔아야 한다. 다시 말해, Administrators의 Group에 들어있는 id로 해서도 안된다. 그냥 앞뒤 가리지 말고, Domain에 등록된 id말고, 로컬 곧 컴터에서 administrator라는 id로 들어가서 돌려야 된다. (나 이거하다 무지하게 헛 삽질했다. vv;;)
        • pkg-current-bundlecomplete60.exe 돌리면 깔기 시작하는데 이거 역시 “느긋한 마음”이 가장 큰 준비물이다. ClaimsAV라고 병 걸린 놈(virus)이나 못된 놈(malware) 잡아내는 서비스(Unix 말로는 daemon이라고 하지들) 올리고 엔진 업데이트를 하나 본데, 이 오픈소스 프로젝트 하는 분이 잠적을 하셨는지 어쩐지 이거 계속 해볼려고 하다가 포기하고, 다음 단계로 넘어 가지 까지 시간 많이 걸린다. 그러니 그냥 놔두고 잊어먹고 있으면 된다.
        • 다 끝나면 Subsystem for Unix-based Applications라는 메뉴판에서 bash가 걸려있는 것을 볼 수 있다!! Olleh! 하지만 주로 쓰는 id에서 이거 별 문제 없이 쓰고 싶으면, administimagerator 계정에서 걍 항상 Run as administrator로 뜨도록 손봐주고, 또 글꼴 이쁜 거 쓰고 싶으면 코드 페이지도 손봐주고 화면 크기도 맞추고 해주는 게 속편하다. ( 다른 id로는 .lnk 파일 손도 못대게 묶어 놨다. 아 물론 삽질 좀 하면 되시겠으나 편하게 사시라고 ^^;; )

        • 옆에 DISPLAY라는 변수 보이시 것지들? X Window 뜬 다는 얘기 되것다. 진짜 뜬다. Xming이라는 이름인데, 이거 Minimalist GNU Win32. 줄여서 MinGW라고, GNU 컴파일러랑 갖가기 것들 Windows로 옮겨 놓은 꾸러미 있었는데, 그 힘을 빌어서 만든 것 같다. 역시 OSS의 “십시일반” 힘은 무시 못할 일이겠다. 여간 삽질 아니 었을 텐디. 그 토록 오랫동안.

        • 아 물론, 왼편 그림과 같은 Setuid 방식이나 어마 무시한 root power를 주는 것은 두 subsystem을 일치시키는데 한계가 있는 부분이다.

      오늘의 생각

      • Cygwin 같은 거 있다는 거, 나도 안다. 좀 쓰기도 했다. 패키지도 더 많고 깔기도 더 쉽다. 하지만 Cygwin은 dll 한 덩어리로 포장된 emulation layer 위에 올라간다. SUA와 처럼, 아래와 같은 아키텍처 image- 커널 위에 서브시스템으로 올라가는 구조가 갖는 장점을 누리지 못한다. 이러한 아키텍처는 끝내  “가상화(Virtualization)” 기술의 본질과도 깊은 관계가 있다. 이 것만 알아두자. 이런 연구 개발 노력이 일견 무한 삽질인것 처럼 보이지만, 현재의 어떤 뛰어난 기술도 과거의 우직하고 멍청한 삽질 없이는 생겨나지 않는다.
      • 아래는 SUA 시스템에 영향을 준 수많은 관련 기술 자산들이다. 마치 내 지나온 발자취를 그려 놓은 것 같아서 그냥 넘어갈 수 없었다.image
      • 어쩌다 보니 깔기는 했지만, 이 서브시스템이 얼마나 뛰어난 어플리케이션 호환성을 제공하는지, 실용성이 얼마나 괜챦은지에 대해서는 뭐라 말 못하겠다. 쓰다보면 알게 되겠지.
      • 살펴보니 적쟎이 공들인 것 인정한다. 하지만 할거면 이런 서비스 제대로 좀 했으면 한다. 어찌 어치 알아가지고, 내려 받고, 만져 주고… 아~~ 번거롭다. 그리고, 안정성 중요하지만 어떤 것은 너무 옛날 것들이다. image그냥 묵혀 버리기에는, 아래 같은 노력들이 너무 아쉽지 않은가? 가상화 기술로 VM에서 리눅스 올려 쓰라고? 하기사 cygwin 보다는 나은 방법인데… 아 나도 모르겠다.

     

    아~~ 이제는 Unix 삽질은 고만하고, 코딩을…. 할꺼나?

     

     

     

     

  • Korea Evangelist

    Unix 골수가 Windows에서 사는 법 #3: SUA (골수 Unix 유저를 위한 배려?)

    • 2 Comments

    일단 글 꼭지부터 바꾸었다. 너무 길어서다. 그 대신 딸린 제목을 더 길게 쓰기로 했다. 읽는 사람이 헛갈려도 할 수 없다. (누가 진짜 읽기는 하남? ^^;;)

    내가 처음으로 닷넷으로 연습삼아 해보고 싶은 놀이는, 2008년 PDC, The Future of C# 에서 Microsoft Technical fellow자 C# Chief Architect로 일하고 있다는 Anders Hejlsberg가 보여주었던 Compiler-As-a-Service 예제다. 데모에서 크게 감명을 받았다거나 그래서가 아니라, 앞으로 실험해 보고자 하는 놀이에 Meta-Programming 기술이 꼭 필요하기 때문이고, 그 과정에서 Mono 팀이 삽질하고 있는 C# Interactive Shell 이라도 만들어 가지고 놀 수 있으면 무지 즐겁겠다는 생각이 들어서다.

    문제는 이 맛갈나는 오프소스 자산을 가져다 쓰면서 tar, bzip은 아카이빙 도구들은 물론이고 make 등등 UNIX 프로그래밍 환경에서 거의 매일 쓰다시피하는 UNIX 명령어들이 줄줄이 등장하노니… 이 거 진짜 삽질이다.

    그리하여, 그간의 삽질보고 되겠다.

    • 아름드리님 가르침대로 GUI Shell command 만들어 넣는 삽질하다가 알게되었는데, Windows Registry Editor Version 5.00이라는 글귀를 파일 맨 첫머리에 넣지 않으면 이런 메시지 뜬다. 이 글귀가 없으면 이 파일 type 못알아 보나 브다. UNIX file system에서 말하는 Magic Number랑 비슷한 건가 이거?
    clip_image001

    • Meta-Programming을 지원하려면, (C#) Parser / Evaluator / Compiler Agent 같은 API set들이 필요하다. 결론은, .NET 4에는 아직 없다. 그리고 간단한 Command Line shell이라도 만들어 보려면 GNU의 readline 같이 line editor 기능이 갖추어진 Input Stream Reader가 있어야 한다.
    • 필요할 때마다, GNU Unix 유틸들 하나씩 찾아서 깔다가, 결국은 SUA (Subsystem for Unix-based Applications)라는 거 깔았다. Microsoft에서 이런 거 많들어 놓았는지 진짜 몰랐다. 왜 아무도 말 안해 주는 거냐!!! 한 술 더떠서, 이런 곳도 있다. 덩실 덩실! SUA Community라는 게 있는 거다. { 이제 이거보고 열심히 따라 해야 겠다. 그럴 바엔 차라리 그냥 Unix 쓰라고 하고 싶으시겠지만 좀 참으시라. 뭐, 교육 비디오 두편도 Microsoft에서 만들어 준 거 같은디. 어쨌든 기쁨일지어다. }

      clip_image002

    • 오, Windows/SUA 밑에 널브러진 그 친숙한 디렉터리 생김새들과, bin 아래에 화면 가득히 펼쳐진 정겨운 이름들이여!! 땡스 어랏!
  • Korea Evangelist

    그냥 기술 이야기 : 새 글타래를 열며

    • 0 Comments

    새로 시작하는 글타래 이름을 “그냥 …”이라고 시작해 봅니다.

    이 바닥 만큼 거품 잔뜩 들어 기름기 잘잘 흐르는 낱말이 사람 어지럽게 만드는 곳도 드물기 때문에, 무슨 뜻으로 굳이 왜 저런 이름 붙였는지는 제가 군말하지 않아도 잘 아실겝니다. 이 바닥 사람들 연설하는 걸 듣고 있자면 적쟎이 어지럽고 메슥거릴 때가 적지 않죠. ‘저 사람은 진짜 저 말이 무슨 뜻인지 알고 뱉어내는 걸까?’ 갸우뚱 하신 적이 적지 않을 겝니다.

    “그럼 그러는 당신은 안그랬수?.”

    사실 누군가 제 얘기를 한 번이라도 들어보신 분이 이렇게 되 쏘아붙인다면, 저 역시도 할 말 없습니다. 저 또한 안팎으로 이런 저런 기술 얘기 떠들어 대면서 아는 낱말은 다 같다 붙여 써대고, 거품끼고 기름기 덕지 덕지한 얘기 적지 않게 즐기며 살아 왔습니다. 그보다 되려 “아, 누구세요? 나는 당신 얘기 들어본 적 없는데?”  그러시다면 저로서는 차라리 맘 편한 일이겠습니다.

    그래서 이제부터, 기름 뺴고 거품 뺀 쉬운 기술 얘기, 차 한 잔 마시며 전화기로도 슬슬 읽어 넘길 수 있는 담백한 기술 얘기 시작해 보려고 합니다. 그 첫 애깃 거리는 “클라우드 컴퓨팅 (Cloud Computing)”입니다. 버터 기름 쭉 빼고 그냥 “구름 셈법”이라고 할까요? ^^

    2010년 새해부터 클라우드 컴퓨팅. 참 오랜 만에 이 바닥이 시끄럽습니다. 여기 저기서 구름 얘기가 뭉게 뭉게 피어납니다. 구름의 생김새가 꼭 “거품”을 닮았습니다. 여러 큰 장사꾼들이 저마다 자기 구름이 좋다고 말합니다. 사람마다 좋다는 구름도 가지 가지 입니다. 높새 구름, 하뉘 구름, 먹구름 … 심지어는 열린 구름(public cloud)이니 닫힌 구름(private cloud)이니 하는 얘기도 떠 돕니다.

    마이크로소프트도 그 가운데 하나입니다. 저도 어쩌다 보니 그 한 가운데서 자못 목소리를 높여야 할 처지에 있습니다. 더 크게 떠들어야 먹고 살 수 있는지라, 너나 할 것 없이 떠들어 대는 구름 이야기를 저 또한 덩달아서 아니할 수야 없겠지만, 이제 부터 제가 하려는 얘기가 “밥을 물에 말아서, 된장 찍은 청량 고추”로 한 끼니 때우는 마냥, 담백하고 때로는 톡쏘는 먹을 거리로 다가갔으면 합니다. 

    어떻게 얘기를 시작할까요? 어… 그러니까… 이제부터 고민 좀 해봐야 겠습니다.

  • Korea Evangelist

    클라우드 컴퓨팅에 관심을 가져야 할까요?

    • 0 Comments

    zik

    클라우드 컴퓨팅에 대한 이야기가 여기 저기에서 많이 나오고 있습니다. 과연 이 기술에 관심을 가져야 할까요? 혹시 잠시 버즈만 일으키고 사라져 버렸던 다른 IT 용어 들 중의 하나로 기록되지는 않을까요?

    아래 제가 포스팅을 하고 링크를 건 클라우드 컴퓨팅과 관련한 내용들은 그런 의문에 대한 답을 얻는데 자그마한 참고가 되실 것으로 생각 합니다. 개인적으로는 지금 당장 모두에게 클라우드 컴퓨팅이 필요한 것은 아니겠지만, 어느 누군가에게는 정말 필요한 기술이며, 향후에도 중요한 기술이 될 것이라고 생각을 합니다.

    첫번째 포스팅인 클라우드 컴퓨팅과 마이크로소프트 윈도우 애저 에서는 처음 클라우드 컴퓨팅에 관심을 가지시기 시작한 분들을 대상으로 클라우드 컴퓨팅에 대한 간단한 개념과 마이크로소프트의 클라우드 컴퓨팅 기술인 애저에 대한 소개와 관련 링크들을 넣어서 .

    그리고 클라우드 컴퓨팅으로써 Azure가 활용되고 있는 사례를 몇가지 알아보았는데요, Azure 사례 - 구름위의 트위터 클라이언트 TwittZure 에서는 twitter와 같은 소셜 애플리케이션을 클라우드에 왜 올렸는지, 어떤 이득이 있는지에 대해서 기술해 보았습니다.

    세번째 Azure 사례 - 구름을 통한 소프트웨어 배포 Siemens 에서는 Siemes 같은 글로벌 업체에서 수많은 장비들에 설치된 소프트웨어를 업데이트 하기 위해서 클라우드 서비스를 활용한 사례를 알아보았습니다.

    세가지 정도의 추가 Azure 를 통한 클라우드 컴퓨팅 사례를 더 알아보고 그 이후에는 Azure 를 통해 클라우드 개발을 위해서 필요한 간단한 가이드 들을 포스팅하도록 하려고 합니다. 클라우드 기술에 관심 있는 분들께 도움이 되기를 바랍니다.

    끝으로 위의 포스팅 들이 올라가는 제 개인 블로그 주소는 중스닷넷(http://joongs.net) 이며, 각 포스팅에 대한 질문이 있으시면 댓글로 남겨주시면 답변 달아 드리겠습니다.

  • Korea Evangelist

    골수 Unix 쟁이의 Windows 개발 환경 삽질 보고서 #2: VI + Visual Studio?

    • 0 Comments

    오늘의 삽질기

    늙다구니 왕초보를 보살피실 줄 아는 “아름드리” 님의 친절한 댓글 덕택에 오늘의 틈삽질 - 틈나는 대로 하는 삽질 ^^;;은 꽤 즐겁다.

    • Command Line은 아니지만 서도, CDPATH 나름 대체하는 방법은 해결,

    오늘은 아침부터 삽질 시작. 댓글 보고 곧바로 Registry 고치기 부터 시작. 어제 깔아 두었던 VI(VIM)로 아래 같이 reg 파일 만들어 start로 실행. 꾹꾹! 뱅!

    [HKEY_CLASSES_ROOT\Directory\shell\Command]

    @="Code Here"

    [HKEY_CLASSES_ROOT\Directory\shell\Command\command]

    @="cmd.exe /k \"C:\\Program Files\\Microsoft Visual Studio 10.0\\VC\\vcvarsall.bat\" x86"

    오, 그리고 짜잔. Live Mesh로 공유된 JoP(Joy Of Programming) 폴더를 클릭하니, “Code Here”이라는 아이템이! 헉 그런데 왜 이거 실행시키니 왜 JoP가 아닌 그 위 Documents로 떨어지는 것이냐… 새로 태어난 아기 쉘 프로세스의 Current Working Directory를 클릭했던 폴더로 잡아주는 방법은 없으..까나… 뭐 꼭 또 갈켜 달라는 것은 아니고…

    • SnippetCompiler로 VI를 대체?

    - 아름드리 님이 갈쳐 주신 “SnippetCompiler”를 살펴보다 여기 저기 뒤져 보니, 나같이 생각하는 생각하는 사람들이 적지 않았던 모양. 그럼 그렇지! 2004년 6월 MSDN에 날마다 필요한 10가지 개발자 도구 가운데 하나로 꼽힌 것을 보니 제법 오래된 듯 한데. 다만, 아쉽게도 내가 만져보려는 .NET 4 판은 아직인듯.

    - 그래서 결국 다시 손에 익은 VI로 돌아왔으나, 산처럼 쌓인 뱀처럼 긴 이름의 API 이름들을 주무르려면 곧 힘에 부칠 듯. Mac OS X에서 쓰던 TextMate 비스무리 한 에디터만 있어도 딱일 터인데 하는 생각이.

    • 그 밖에

    - 서버 급히 만질 때 써보려고 X Terminal 비스무리 한 걸 찾았으나, 이 문제는 골치아파 무기한 연기. RDC는 아무래도 내 타입이 아냐… oTL. 프로그래밍 언어 문제는 아무래도 오늘 고민 좀 더해야 할 듯.

    오늘 느끼기를

    • 여전히 \랑 /의 차이는 이겨 내기 쉽지 않고나. 비슷하게 clear vs. cls, 무심코 find 해보다가 허걱하는 일 되풀이 하고 있고, dir vs. ls는 각기 오래 익어서 헛갈리지 않지만 서도.
    • cd 해놓고 왜 프롬프트가 그대로인지 멍하니 지켜보는 스스로를 또 한심하게 지켜보는…
    • 그런다고 cd ~하는 것은 또 뭐냐
    • csc가 C# compiler 이름이라는 거, 참 오랜만에 기억났다. 그래도 cl은 무심코 떠오르더만
    • 고작해야 환경 변수를 ��루는 것인데 – Registry도 Enviroment요, Shell 변수도 Environemnt요, 다 본질도 같고 역할 도 같것만, 고치는 방법도 다르고, 관례도 서로 다르고… 이건 여전히 문제. 반드시 그래야 할 까닭도 없이 단순한 것을 어렵게 만드는 이 분야의 고질적인 버릇은 Unix, Windows, Mac OS X 할 것 없이 여전.

    중딩 시절부터 1년 만땅으로 코딩 한 줄 안하고 세월을 보낸 것은 여기 와서 처음.

    그럼 이제부터는 코딩 시작!? 할 수 있으까…?

     

Page 1 of 2 (7 items) 12