Hello Windows Azure / Gallery of ‘Powered by Windows Azure Platform’

지난번 글 (http://vsts2010.net/294)에서 예고하였던 대로, 오늘은 Windows Azure Platform을 기반으로 만든 성공적인 응용프로그램들을 조명해보고 어떤 방법으로 Windows Azure Platform이 활용될 수 있는지를 살펴보도록 하겠습니다. 이 글에서 언급하는 프로그램들은 대부분 Visual Studio 2010과 Windows Azure Platform SDK for Visual Studio를 기초로 작성된 것입니다.

추로 (推路)

[#M_더보기|접기|

_M#]

지난 봄에 열렸던 클라우드 어플리케이션 경진 대회에서 대상을 수상한, (주)드원테크놀로지의 추로 (推路 – 밀 추, 길 로) – 자동차 보험회사 콜센터 편 응용프로그램입니다. 여러분께서 생각하시는 퍼블릭 클라우드 컴퓨팅의 전형적인 모습을 아주 잘 보여주고 있는 응용프로그램이라 할 수 있겠습니다. 이 솔루션에서 주목하실만한 부분은, Worker Role과 Web Role 사이의 유기적인 통신에 관한 부분입니다. Windows Azure Platform의 Compute 서비스와 Storage 서비스를 균형있게 잘 활용한 것이 특징입니다.

자동차 보험 회사에 가입한 고객이 어떤 사고를 당하였을 때, 고객은 자동차 보험 회사 콜 센터에 전화 등의 수단을 사용하여 긴급 연락을 취합니다. 콜 센터 직원은 CS 응용프로그램을 통하여 SQL Azure Database에 협력사에 전달할 정보를 저장합니다.

협력사 직원의 PDA – 또는 – 스마트 폰 단말에는 사고 Case ID가 할당되며, 단말에 내장된 GPS 수신 장치를 통하여 현재 위치에 관한 정보를 Windows Azure Web Role이 노출하는 WCF 서비스에 전송할 것입니다. 정보를 수신한 WCF 서비스는 최적 경로 계산을 담당하는 Role에 메시지를 전달하기 위하여 Queue Storage에 메시지를 Enqueue할 것입니다. 해당 Worker Role은 수신한 위치와 사고가 발생한 위치 사이를 조율하여 최적의 경로를 탐색한 후, 이를 다시 SQL Azure 데이터베이스에 저장합니다.

일련의 처리 과정이 모두 완료된 후에, 협력사 직원은 최적의 탐색 경로를 바탕으로 신속하게 사고 지점까지 이동하여 업무를 처리할 수 있을 것이며, CS 응용프로그램을 살펴보고 있는 콜센터 직원은 결과를 실시간으로 통지받을 수 있을 것입니다.

이와 같이 클라우드 기반의 인프라를 활용하여, 기존에 제공되던 위치와 상태 파악 기능을 좀 더 실시간에 가깝게 개선할 수 있고, 더불어서 저렴한 운영 비용까지 가져갈 수 있는 효과를 얻을 수 있을것입니다.

Time in the cloud

[#M_더보기|접기|








_M#]

Hugeflow의 Time in the cloud는 앞서 소개한 추로와 마찬가지로, 클라우드 어플리케이션 경진 대회에 참가하였던 작품으로, 금상을 수상하였습니다. 자칫 재미없고 식상하게 들릴 수 있는 근태 관리 솔루션을 재미있고 참신하게 접근했던 새로운 유형의 근태 관리 솔루션으로 인상 깊었습니다. 🙂

Time in the cloud는 우리가 일상적으로 사용하는 SNS (예를 들어, 트위터나 미투데이 같은)를 이용하여 손쉽게 “출근 도장”을 찍는 방식으로 근태 관리를 돕습니다. 출근만 관리하는것이 아니라, 근태에 관해서 변동 사항이 있을 경우 이를 승인받기 위한 목적으로도 활용할 수 있게 되어있습니다. 이러한 시스템이 어떻게 클라우드 환경 위에서 구현이 될 수 있을까요?

답은 간단합니다. 특정 SNS 서비스가 노출하는 API와 이를 지속적으로 모니터링할 충실한 Worker Role이 있기 때문입니다. 그리고 근태 관리 이력을 차곡차곡 저장하기 위한 데이터베이스로는 SQL Azure를 활용할 수 있습니다. 나중에 통계를 내거나 할 때에도 도움이 되겠지요. 여담이지만, Hugeflow 회사 내에서는 이 솔루션을 통해서 근태 관리를 실제로 재미있게 하였다고 합니다. 덕분에 지각 벌금으로 회식도 자주 하셨을 것 같네요. 🙂

클라우드 서비스는 대외적으로도 노출과 활용이 가능하기 때문에, 특별히 관리 도구의 경우에는 회사별로 관리할 수 있도록 하거나, 사용자 등록까지 동적으로 받아들일 수 있도록 만들어진 것도 특징입니다.

음악 가사 분석 통한 음악 추천 서비스

[#M_더보기|접기|















_M#]

 진성주님의 음악 가사 분석을 통한 음악 추천 서비스는 앞서 소개한 추로, Time in the cloud와 마찬가지로, 클라우드 어플리케이션 경진 대회에 참가하였던 작품으로, Time in the cloud와 같은 금상을 수상하였습니다. 누구나 한번 즈음 “오늘은 뭘 듣나”라는 생각으로 가지고 있던 MP3 플레이어나 여러분의 쥬크박스를 켰던 경험이 있으실 텐데요, 그럴 때 참 요긴하게 쓰일 수 있는 멋진 클라우드 기반 서비스입니다. 🙂

이 솔루션에 사용된 Lucene을 잠시 주목하여 주십시오. Lucene을 이용하여 단어 데이터베이스를 구축했다는 사실에 주목하여 주십시오. 클라우드 컴퓨팅은 여러분이 가지고 있는 On-Premise의 컴퓨팅 자산보다 기본적으로 “풍부”합니다. 비단 Lucene이라서가 아니라도, 인덱싱 작업은 기본적으로 많은 비용과 시간을 필요로 하는 작업이지만 클라우드 컴퓨팅을 이용하면 문제가 단순해질 수 있습니다.

참고로, 이 서비스를 통하여 음악을 추천받았을 때 측정된 만족도가 원래 예상치였던 65%보다 무려 18.6%가 높은 83.6%의 만족도를 기록하였다고 합니다. 혹시 상용화 계획이 있다고 한다면 저는 당장이라도 베타 테스팅을 신청해서 서비스를 마음껏 즐기고 싶습니다. 아, 그리고 기왕이면 이 서비스와 잘 연동되는 Windows Mobile 기반 플레이어도 있다면 더 편리할것 같습니다. 🙂

Shutomatic

Windows Azure Platform 팀의 Steve Marx님의 샘플 응용프로그램으로, Windows Azure Platform의 Interoperbility가 얼마나 유연한지를 잘 보여주는 멋진 샘플입니다. 그렇긴 합니다만 실로 복잡한 구성을 가지고 있는데요, 요약하면 아래와 같습니다.

  • PHP: IIS7 위에서 FastCGI를 이용하여 구동하고, 메인 웹 사이트를 보여주거나, Queue Storage에 트위팅할 메시지를 쌓는 프론드 엔드를 구현합니다.
  • C#: Worker Role 그 자체를 구현합니다. 하지만 내부적으로 Java Virtual Machine을 구동하는데에 필요한 Stub Loader로 사용하는 것 같네요.
  • Java: 실제로 Worker Role에서 수행해야 할 트위터로 메시지를 보내는 작업을 Java 코드로 구현하고 있습니다.
  • Python: Windows Azure Storage에 Queue Storage를 만드는데 필요한 간단한 Python Script 코드를 구현하고 있습니다.

Shoutomatic 소스 코드를 다운로드받고 싶으신 분들은 http://cdn.blog.smarx.com/files/shoutomatic_source.zip 에서 다운로드 가능합니다. 🙂

Phone’N Use

R3rwwKtabO8$

지난 3월 30일에, 폴란드에서 열릴 2010 Imagine Cup의 소프트웨어 디자인 부문 한국 대표 선발전이 있었습니다. 여기서 1위를 한 팀이 한국 대표 자격으로 2010 Imagine Cup의 소프트웨어 디자인 부문에 참가할 수 있는데, 제가 참여한 팀인 WeRain 팀이 대상을 수상하게 되었습니다. 지금은 한창 아이디어를 보완하고 수정하는 단계에 있습니다. 🙂

Phone’N Use는 경제적, 지리적 환경이 열악하여 출생 등록을 제 때 하지 못하여 보호받지 못하는 아이들을 위한 솔루션으로 대회 당시 저희 팀은 Windows Azure Platform을 이용하여 기본 시스템을 구축하고, Voxeo Corporation의 Cloud 기반 전화 통신 서비스인 Tropo를 이용하여 ARS 시스템을 구현하였습니다. 일반적으로 구축 비용이 비싸다고 알려진 ARS 시스템을 클라우드 환경에 어울리는 새로운 시스템으로 대치하여 비용과 효율성을 동시에 챙길 수 있었습니다.

다음 시간에는

이번 시간에는 Windows Azure 기반의 응용프로그램에 대한, 최근에 제가 발견하거나 작업하고 있는 주변 사례들을 들어서 이번 Article의 내용을 꾸며보았습니다. 클라우드 어플리케이션 경진 대회 수상작에 관련된 자료 참조를 허락해주신 한국 Microsoft의 박중석님께 감사드립니다.

다음 시간에는 Windows Azure Platform을 이용하여 어떻게 클라우드 기반 응용프로그램을 작성할 수 있는지 본격적인 실습 위주의 글을 올릴 예정입니다. 아직 우리 나라에 정식 출시되지 않은 서비스임을 감안하여, 별도의 서비스 비용을 들이거나 하지 않더라도 블로그에 올라오는 글 만으로도 손쉽게 따라해볼 수 있게 꾸며볼 예정이니 많은 관심 부탁드립니다.

감사합니다. 오늘도 좋은 하루 되십시오. 🙂

Hello Windows Azure / Gallery of ‘Powered by Windows Azure Platform’”에 대한 213개의 생각

  1. 일반 웹 페이지에서 장식을 위해서 넣었던 이탤릭체인데 블로그에 그대로 가지고온거예요. ㅎㅎ; 나중에 시간나면 돌아다니면서 이탤릭체를 지워야죠.

  2. 와우 벌써 롱혼에 관심을 가지시는 ^^’ 댓글 보고 놀러왔습니다. 오픈캡쳐말고 소개해주신것도 사용해봐야겠어요^^

    – core version에 관한 제 생각은 유료 기술지원을 받을 수 있는 리눅스 정도이지 않을까 합니다. S2 어쩌고 저쩌고란 세미나를 하던데 ms에서도 이제 Software의 시각을 Service로 전환시킨다는 점에서… (고객을 가르쳐서 팔아먹으려고 하고 있다는 생각이 듭니다.)

    개발자나 관리자들도 그렇게 준비해야 되지 않나 싶습니다. 물론, 개인적인 소회입니다. ^_^

    • 여러모로 요즈음 MS가 운영체제나 다른 제품군에 대하여 가하는 시도들이 상당히 파격적인게 많은것 같네요. 여러모로 주시하고 있어야 할게 많은 것 같습니다. ㅎ;

  3. 젠투 써본지가 오래 되어서 가물가물 하지만..
    시험용 대탑으로 쓰시려면 accept인가.. 뭔가가 있을겁니다.
    ~x86플래그를 지정 하신다면 그렇게 까지 엄격하게 의존성을 따지지 않습니다.
    (단지 그놈이 정리가 덜 된 느낌이 드실겁니다.)
    ~가 붙는건 stable이 아닌 것도 허용 한다는 것이기 때문에 최신 버전의 gnome등을 이용 하실 수 있습니다.

    64비트라면 아마 ~x64겠죠? 다음엔 성공 하시길 바랍니다!
    (아. emerge시 실페 된다면 메세지 잘 읽어 보셔야 하는건.. 아실거라 믿습니다.)

    • 젠투 리눅스 홈페이지 가보니까 2007.0이 새로 나와있더군요. nabi나 imhangul이 아닌 다른 국제화 IME가 있다는 것을 제 지인에게 나중에 듣고 젠투를 지운걸 좀 후회했습니다만 다시 공부할겸 설치해봐야겠네요. 🙂

    • yield는 2.0때 나온거라. ㅎㅎ

      C# 3.0 언어 사양이 그 전에 나왔던것들보다 굉장히 파격적인게 많은데 파이썬의 영향을 많이 받은것처럼 보여. 대표적인게 람다 표현식이지. ㅎ

  4. 병특 취업하셨나요? 전 현재 전문연구요원 근무중인데 산업기능요원보다는 대학원 석사학위 취득 후 전문연구요원으로 복무하심이.. 어떨까 싶네요. 석사 과정은 본인 관심사에 따라 소프트웨어공학이나 객체지향, DB 등… 물론 프로그래밍 기술 자체를 쌓기 보다는 좀더 학문적인 지식을 쌓는데 주력한다고 봐야죠. 코딩 기술 자체만 갖고는 큰꿈을 이루기 힘들다는걸 느낄거에요.. 적어도 이 나라에서만큼은..

    • 조언 감사합니다. 🙂

      개인적으로 병특을 결정하기까지 많은 고민이 있었습니다. 실제로 산업기능요원보다는 전문연구요원으로서의 활동이 더 이득이 크다는 것을 잘 알고 있습니다. 하지만 병역 문제를 좀 더 확실하게 마무리 지어야겠다는 생각이 좀 더 컸던것 같습니다.

      전문연구요원으로서가 아니라도 이후에 대학원으로 진학해서 좀 더 깊은 공부를 하고 싶은 생각은 지금도 간절합니다. 🙂

  5. 훌쩍… 트랙백이 안되네요. http://gongdosoft.com/193
    IE7에서는 클래스에서 var로 선언한 변수가 클래스의 멤버로 취급되지 않는 것 같아요.
    Gongdosoft = function() {
    var member=’공공도’;
    }
    Gongdosoft.prototype.func = function() {
    alert(this.member);
    }

    이런식으로는 안되더군요. 그래서 전 private으로 쓸 녀석들은 접두어를 붙여서 쓰고 있어요.
    private문제야 보고도 못본척 할 수 있지만 자동 set/get 처리가 이루어지는 property 구현이 불가능하다는 점이 가장 귀찮은 것 같아요. 🙂

    • 아무래도 시간내서 백업한 다음에 다시 태터툴즈 정판으로 옮겨야 겠습니다. 문제가 많네요. -_-;;

      개인적으로 JavaScript의 언어 사양에서 많이 아쉬움이 남는 부분이 공도님께서 말씀해 주신 private 멤버와 getter/setter Property쪽입니다. 이런 사양들은 JScript .NET 같은 확장 기술을 통해서만 가능하다는게 많이 아쉽네요.

      혹시 나중에 나올 IE 8.0이나 지금 개발 중인 Firefox 3.0이라면 ECMA JavaScript 최신 표준을 확장할 수도 있지 않을까 하는 기대도 살짝 해봅니다.

  6. 쥬크온 임대형 정액제 참 황당했죠. 저도 D2를 썼는데 (지금은 아이팟 터치로 갈아탔지만) 파일을 10곡 이하로 받고 다운받고 암호화하는동안 아무짓도 안하면 에러 안나더군요. 한곡을 받더라도 곡 진행률 99%에서 멈추어있는 잠깐동안 (이때가 암호화 하는거라고 생각되네요) cpu를 좀 많이 먹는 작업을 하면 dcf파일 자체가 이상하게 생성되는걸 보고 갈아타기로 결심…

    윈도우2000 호환성모드로 돌리면 나아지는건 처음알았네요

    • 저 방법도 결국 오래가지 않아서 실패했답니다. ㅠ_ㅠ

      그냥 쥬크온은 음악 감상용 서비스로만 만족해야 할듯 싶습니다. 돈벌이에만 급급해서 저렇게 완성되지도 않고 검증도 안된 서비스를 제공하고 있는 쥬크온의 태도가 상당히 거슬립니다만 엔드 유저는 그저 당할 수 밖에 없는것인가봅니다.

      역시 돈이 만사를 다 해결해주는군요.

    • 결국 상위 사양으로 업그레이드하도록 신청했어요.
      월 단위 최고 500GB 트래픽에 차단없는 사양으로 했으니 이젠 문제 없을것 같으네요. -_-;

    • 요즈음 웬만한 오픈 소스 프로젝트들은 VMware 패키지를 무상으로 배포해서 개발자들이 충분히 최적화된 환경 아래에서 프로젝트를 검증해볼 수 있도록 도움을 많이 주고 있습니다. 참 바람직한 일이지요. ㅎㅎ

    • 동의한다. 그런데 나는 개인적인 사정이 있어서 일반적인 웹 호스팅 환경이 필요하지. (Content Delivery Network나 동영상 스트리밍 호스팅은 티스토리로 해결이 안되는걸로 아는데. -_-;; )

      ps. 튠어라운드 BGM은 잘 쓰고 있다. ㅎㅎ

    • 태터툴즈 내부 구현을 참조해서 다음번 릴리즈때는 Provider XML까지 자동으로 렌더링하는 기능까지 넣어보려고 합니다. 그런데 분석이 쉽지 않네요. ㅎㅎ;

  7. 제 내이버 블로그에 담아갈께요. 물론 출처 표시하구요
    그럼 Creative Commons License 에 위배 되진 않는거죠?
    ㅎㅎ 수고 하세요 좋은 정보 감사합니다.

  8. 어쩌다 보니 다시 이 글을 보게 되었네요 ㅎ;;
    얼마 전 2008버전이 나왔습니다. 젠투 설치 후 안되는 프로그램이 있어서 우분투를 설치하게 되었지만.. 역시나 젠투가 좀 더 맘에드네요 ㅎ;;

    아참. 혹시나 다음에도 x64버전으로 설치 하실거라면 64비트 브라우저용 플레시 플러그인이 없어서 사용이 불가능 할텐데요. 그럴 땐 mozilla-firefox-bin을 설치하시면됩니다. 좀 더 허슬한 모양의 아이콘으로 구성 된 파이어폭스가 추가적으로 설치 되는데 bin버전은 32비트 버전입니다.
    혼자서 폰트가 기존 어플리케이션과 좀 다르게 적용되지만 임시로 사용하긴 문제없습니다. 요즘 모노를 접하시는거 같은데 혹시라도 직접 리눅스를 구축하시게 된다면 이점 알아 두시면 좋으실거라 생각됩니다. (문제는 우분투에선 32비트 브라우저를 어떻게 설치 하는지 모르겠네요 @_@)

    근데 최신 버전을 맘편하게 아무렇지 않게 쓰기 위해선 우분투가 더 좋더랍니다 ㅎㅎ;;
    (X설정을 건들지 않고도 그래픽카드 가속이 거의 완벽한 수준이더군요 ;;;)

    • 배포판마다 특성이 있고 장단점이 있는것 같아요. 🙂

      여러 배포판을 사용하다가 저는 요즈음 모노 쪽 리포지터리 업데이트가 가장 빠른 오픈수세 10.3에 정착했습니다. 닷넷 프로그래밍을 리눅스에서 하기 제일 편리한 환경을 택하게 되었네요. ^^

  9. 오픈소스 라이센스와 라이센스 한글 번역을 가지고 지난 몇달 동안 실제 비즈니스에서 사용할 때 주의할 사항을 정리하려고 고민하고 있었는데 위 자료가 도움이 될 것 같습니다.

    위 자료가 법률적으로 문제가 될 수 있는 부분에 대한 명확한 설명이 없지만 라이센스를 번역하고 이해하는데는 도움이 될 것 같습니다.

    • 원래 VC++ 2008에 없던 내용인데 Feature Pack으로 따로 소개되었었죠. 우리나라에서도 VC++ 세미나를 몇 차례하면서 소개했던 적이 있었을 겁니다. (MSDN 세미나였던걸로 기억나네요.)

    • 지금 다시 한번 살펴보니, 방임이라는 말 보다 전파 여부라고 하는 것이 더 옳은 표현이 될것 같네요. 해당 라이센스를 사용하는 저작물을 참조하거나 이용하는 경우 참조 대상이 되는 저작물이 사용하는 라이센스가 전파될 수 있는지를 의미합니다. 쉬운 예로, LGPL의 경우, 참조하는 저작물의 소스 코드를 어떤 형태로든 이용하는 경우, 해당 저작물에 대해서도 LGPL을 준수해야 한다는 의무 사항이 발생합니다. CC의 경우, 조건부이지만, 대체로 “동일 조건” 옵션 아래에서 2차, 3차 저작물에도 CC 라이선스가 부과됩니다.

  10. 아직도 오픈소스 라이센스 번역으로 머리를 싸매고 있습니다. 쵝근 기사를 보면 국내에서 오픈 소스를 사용하는 업체가 많아지면서 점차 오픈소스 라이센스에 대한 부분이 관심 사항으로 부각되고 있는 것 같습니다.

    그리고 추천하신 http://www.opensource.org/licenses 사이트는 예전부터 방문하던 사이트로 많은 도움이 되는 사이트 입니다.

    • 제가 올렸던 글은 알려주셨던 사이트의 내용과 다르거나 일치하지 않는 내용이 있을지도 모릅니다. 알려주신 사이트의 내용이 사실 가장 정확하다고 생각합니다. 🙂

  11. MIT Style license와 MIT 라이센스는 어떻게 차이가 나나요. 최근 vTiger CRM(Customer Relationship Management)를 연구하고 있는데, 여기서 사용하고 있는 구성요소 중 하나가 MIT Style license를 적용하고 있네요.

    MIT Style license와 MIT 라이센스의 차이점을 알고 계시면 좀 알려주세요.

    • 잘은 모르겠습니다만… 요즈음은 몇 가지 라이선스를 겹쳐서 사용하는 유형이 많이 있는듯 합니다. MIT Style License라 함은 MIT License를 전제로 하여 약간의 변칙을 적용한 것이 아닐까 싶습니다. 혹은 유사 라이선스를 일컬어서 칭하는 이름일 수도 있을것 같구요. 해당 프로젝트의 라이선스 전문을 확인할 필요가 있겠습니다.

  12. 웹브라우져컨트롤에 로딩된 html페이지 자바스크립트실행관련

    에디터
    HTML
    텍스트

    이렇게 되어 있는데요..HTML 이거를 선택되게 해야하는데요…..

    WebBrowser1.Document.GetElementById(“editorSelect”).SetAttribute(“value”, “S”);
    Object[] args4 = new Object[1];
    args4[0] = “this.value”;
    WebBrowser1.Document.InvokeScript(“tool_EditorChange”, args4);

    이렇게 해도 셀렉트박스가 변경이 되지를 않네요 ㅠ.ㅠ.
    조언을 다시한번더 부탁드립니다

    • 답이 조금 늦었네요. tool_EditorChange 메서드가 혹시 C#에서 작성한 메서드라면, 그리고 이벤트 메서드로 private 접근 제한자가 걸려있으면 ScriptingObject로 설정했어도 이벤트가 걸리지 않습니다.

      제 생각에는, DocumentCompleted 이벤트를 통하여 해당 SELECT 요소를 찾아서 onchange 이벤트를 C# 코드에서 걸어주는것이 좋지 않나 생각이 듭니다.

  13. VB.NET 의 mono 컴파일러는 없는걸로 기억하고있는데. Mono 2.0에서 지원하기 시작했군요…
    그런데 c#컴파일러는 C# 3.0 버전이고 VB.NET은 8.0이네요 지금 나와있는게 9.0일텐데.. 나중에 한번 해보고 싶긴한데.. 윈도판에는 모노 컴파일러가 없는거 같네요. 그냥 인터프리터만 들어있고..(XSP(ASP.NET)를 VB.NET 코드로 짜도 에러 안날려나.. (1.0에서는 에러났음))

    그리고 모노덕에 C#, VB.NET(이건 좀 불확실)이 멀티 플랫폼이 됬죠..

    • 닷넷은 속도가 좀 느리긴 하지만 CLR, CLI에 대한 대체 구현이 하나 둘씩 자바의 경우처럼 만들어지고 있고 각기 목적이 있습니다. 실버라이트, 닷넷 마이크로 프레임워크 (컴팩트 프레임워크가 아닙니다), GNU .NET 외에도 MS가 내세우는 비 윈도우 기반 OS인 미도리의 전신으로 추정되는 연구형 OS 프로젝트인 싱귤래러티가 채택하는 Bartok 컴파일러 및 관련 런타임 등등 상당히 많은 편입니다. 점점 선택의 폭도 넓어질 것이고 닷넷이 윈도 OS 전용이라는 편견도 더 빠르게 깨어질 것이라고 생각합니다.

      사설이 좀 길었습니다. ^^; VB.NET 컴파일러는 보신대로 8.0 버전에 머물러 있는 상태입니다. (많이 아쉽죠. ㅎㅎ) 약간씩 차이가 있는 것으로 알고 있습니다만 VB.NET 컴파일러가 포함되지 않은 배포판을 받으셨다면 모노 SVN 노드에서 VB.NET 컴파일러를 받아보실 수도 있을 듯 합니다.

      개인적으로는 모노의 모든 기능을 경험하고 이해하는 방법으로 VMware 기반 패키지를 사용하는 것을 권하고 싶습니다. 윈도우를 지우지 않아도 곧바로 원하는 환경으로 전환해서 개발하는 것도 가능하고 상당히 요긴하게 쓰입니다. 🙂

  14. 출시 언어엔 여전히 한국어가 없네요 ㅎ;; 델파이 개발자가 적어서 그런건지..;;
    RAD Studio가 가격만 더 내려가면 좀 더 개발자가 늘어나지 않을까.. 하는 생각을 종종합니다.
    그보다 VCL이 유니코드 기본지원으로 최근에 업그래이드 되더니 저건 또 과연 어떠한 기능으로 다가올지 기대가 되기도 하고 나름 걱정도 되네요. 그래도 델파이를 좋아하는 입장에서 성공 할 수 있길 바랄 뿐이랄까요 ㅎㅎ;

    • 델파이 프리즘은 원래의 VCL 기반 델파이나 델파이 닷넷으로 불리던것과는 다른 것입니다. RemObjects 사의 오브젝트 파스칼 컴파일러 기술을 도입하여 완전히 새로운 델파이 개발 툴을 만들었다고 보는게 맞을것 같습니다. 델파이 개발자분들의 입장에서 보면 네이티브 델파이와 매니지드 델파이 사이의 차이이며, 이것은 C++ 개발자분들의 입장에서 본 C++과 C#의 차이와 유사한 것으로 보입니다.

      그리고 제가 미처 언급하지 못했던 내용이 있네요. 기존 델파이 닷넷 런타임하고는 다르게 컴파일러만을 별도로 재배포하고 있습니다. 델파이 프리즘의 기능을 시험하기 위하여 RAD Studio 2009 전체를 구입하거나 내려받으실 필요가 없습니다.

  15. 핑백: dykin's me2DAY ~
  16. 우리촌장님께서..
    재미난 강좌를 준비하셨군요.

    일정이 어긋나지 않는한 꼭 참석해 보겠습니다. ^^

    • DOS를 사용하지는 않지만 기본 컨셉 자체는 Windows 7이 나오는 이 시점에도 여전히 유효한것 같아서 공부할 겸 올려보려고 합니다. 🙂

  17. 팁 감사합니다.
    (이제서야 알게 되다니..ㅋ)

    URL 말미에 (VS.71) (VS.80) (VS.90) 등을 추가하여, .NET Framework 버전별로도 접근이 가능하군요.

    유용하게 사용할 것 같습니다.

  18. Monovs를 다운받으려고 Sign을 했는데, 제출후에는
    “내 스프레드시트에서 확인하세여?”인가 나오더라구요.

    어떻게 하면 monovs를 다운받을 수 있을까여?

    그리고 VS2008에서 만든 Winform을 Suse Linux에서 Mono로 실행해보면 Winform UI가 너무 허접하게 나옵니다.
    monoVS 사진을 보면 리눅스/윈도우즈 모두 UI가 비슷하게 이뿐것 같은데 …
    정말 궁금하네요.

    • Mono VS Tool은 현재 Close Beta로 진행중입니다. 정식 출시까지는 시일이 좀 걸릴듯 합니다. 대신, Signup 신청을 하시면 메일링 리스트로 개발 상황이나 여러가지 피드백을 공유하실 수 있을 것입니다.

      Windows Forms의 UI Quality 향상이나 WYSIWYG 지원은 아직 실제 Windows 운영 체제에서 기동되는 것만큼 완전한 것은 아닐 것으로 생각됩니다. 조만간 출시되는 Mono 2.6 버전에서는 조금 더 개선될 것이라는 예상이 됩니다.

  19. 죄송합니다. 아마 태그에 한국어가 들어있어서 먼저 제가 보낸 것 같습니다. 삭제하여 주시면 감사하겠습니다.

    남정현님의 글은 저에게는 너무나 어려운 글입니다. 다만 한가지 관심이 있는 것은 현재하시는 작업으로 영어나 한국어 문단을 집어넣으면 단어별로 인덱싱하고, 나아가 그것을 어떤 전자사전과 연동시켜 그 문단의 맞춤형 사전(단어의 기본형, 뜻, 동의어,반의어, 예문)을 만들어 주는 프로그램이 가능한지 궁금합니다. 가능하다면 아파치 서버에서 돌릴수 있는 프로그램이면 더 좋겠습니다. 이러한 작업을 가끔 할 때가 있는데 그 때마다 엑셀에서 메뉴얼로 하니 그야말로 노가다입니다.

    전혀 관계없는 이야기라면 또 한번의 의미없는 댓글을 달게되어 너무 죄송합니다.^^;

    트랙백은 삭제 부탁드립니다. 다음부터는 트랙백을 보낼 때는 보다 신중하도록 하겠습니다.

    불편을 끼쳐 다시한번 죄송하다는 말씀 올립니다.

  20. 핑백: Prac's World~ ~
  21. 핑백: Prac's World~ ~
    • 초창기 광고부터 시작해서 지금에 이르기까지 윈도 제품군이나 윈도 관련 제품군들은 “쉽다” “재미있다” “편리하다”는 컨셉을 많이 강조하는 것 같습니다. 컴퓨터를 “쉽게” 만들자는 취지는 지금껏 변치 않는것 같습니다. ㅎㅎ

  22. 핑백: Afternoon Stroll ~
  23. 핑백: 덕후대로 D ~
  24. 핑백: 덕후대로 D ~
    • Internet Explorer 전용의 CSS Filter 기능 중에 Wave Filter라는 것이 있습니다. 웹 표준하고는 전혀 관계없는 부분이지만, 웹 2.0과 웹 표준이 등장하기 이전에 한 시대를 풍미했었던 DHTML 시절의 물건입니다. ㅎㅎ

      그리고 따옴표를 “”로 표기한 것은 문자열의 시작을 보시면 @” 으로 시작하고 있습니다. 이렇게 시작하는 문자열을 Verbatim String이라고 하고, 안에 어떤 문자가 오든 개의치 않게 지시할 수 있습니다만 단 하나 예외가 있다면 따옴표에 관한 것입니다. 따옴표를 한번만 쓰면 닫는 것으로 해석되기 때문에, ” 으로 이스케이프 처리를 하는것이 아니라 이 경우에는 특별히 “” 로 이스케이프 처리를 하게 된 것으로 결국 ” 로 실제 문자열에 나타나게 됩니다. 🙂

    • 리눅스 안에서도 Mono를 설치하거나 테스트하는데에 부담스러운 점이 있다면 VMware나 Xen, VirtualBox 같은 솔루션을 이용하여, 모노 다운로드 페이지에서 다운로드할 수 있는 가상 PC 패키지를 Guest로 올려써보는 것도 괜찮을겁니다. 🙂

  25. 아 순간적으로 X Windows라길래 X.org X Server라고 생각 [..]
    오픈API를 많이 공개한다고는 해도 어쨌건 네이버에 대한 제 안좋은 인상은 아직 남아있네요;;

    • 다음의 오픈 API도 다룰 수 있으면 참 좋겠지만 Windows Forms에서 다음의 오픈 API와 인증을 마치는 부분이 사실 상당히 어려운듯 합니다. 일반적인 웹 브라우저가 아닌 HTTP 모듈을 이용하여 세션을 처리할 수 있게 되면 같은 샘플을 한 번 더 올려봐야겠습니다. ㅎㅎ

  26. document.write() 호출 부분 같은 데를 보면, C# 코드와 자바스크립트 코드의 모양새가 거의 비슷해서 언어의 경계가 희미해보일 정도네요. 놀랍습니다 @.@

    • 예제로 사용한 언어가 C#이었기 때문에 조금 달라지는 점도 있긴 했지만, JScript.NET이 DLR에 바인딩되어 사용된다면 원래 사용하던 JavaScript와 동일한 구문을 그대로 사용할 수도 있을것 같아요. 여러모로 흥미로운 아이템이라고 생각합니다. ㅎㅎ

  27. 핑백: . ~
    • 감사합니다. 🙂

      MVP로 선정이 되는것은 기술적 능력 외에도, 커뮤니티에의 참여도나 공헌과 같은 부분도 큽니다. 그리고, MVP는 한 번에 끝나는 시상이 아닙니다. 계속해서 좋은 활동을 보여주시면 더 큰 혜택이 주어지게 될 것입니다. ^^

    • 방문해 주셔서 감사합니다. 아크몬드님 댓글 보고 인증샷을 올렸는데 보셨군요. ㅎㅎ

      MVP로 활동하는 분야가 반드시 개발 분야만 있는것은 아닙니다. 프로그래밍에 입문 중이시라면 개인적으로 카운셀링을 들어드리거나 할 수도 있으니 연락 주세요. ^^

  28. 핑백: GG 블로그 ~
    • 사실 닷넷의 기본 내용에 충실하게 접근하는 것이 가장 이상적인 프로그래밍 방식이겠지만, 유감스럽게도 닷넷 플랫폼을 있는 그대로 사용할 수 있는 경우는 흔하지 않은것 같습니다. 도움 되시면 좋겠습니다. ㅎㅎ

    • C++/CLI 역시 닷넷 프레임워크에서 사용할 수 있는 일반적인 프로그래밍 언어로 보고 개인적으로 많은 관심을 두고 있던 중에 찾게 된 기사라서 퍼오게 되었습니다. 궁금하신 점은 언제든 질문해 주세요. 🙂

  29. ㅇㅅㅇ 저는 C++는 그냥 C++쓰지 .net이랑 짬뽕된 C++/CLI는 좀 안땡기더군요.
    이왕 할거면 첨부터 .net을 위해 설계된 C#이 젤 잘맞는듯해요.
    역시 플랫폼에 맞춰 설계된 언어를 쓰는게 최고인듯. =ㅅ=

    • C++/CLI는 닷넷 프레임워크를 활용하기 위한 하나의 도구에 지나지 않습니다. C++과 COM 기술만을 이용하여 닷넷 프레임워크를 호스팅 하는 방법도 있으니 이 또한 좋은 선택이 될 수 있을 것 같습니다.

    • Windows Azure SDK와 Windows Azure Tools 자체는 현 시점에서 Microsoft IIS와 SQL Server의 기능을 강력하게 의존하고 있습니다. Mono 기반으로는 아직까지 Novell와 Microsoft 모두 공식적인 언급이 나와있지는 않은 상태입니다.

      대신, 리눅스나 맥 OS X 등에서 Windows Azure를 개발하기 위하여 Java, PHP 등의 다른 프로그래밍 언어를 선택하여 개발하는 것을 공식적으로 지원합니다. 또는, 가상 머신 어플라이언스를 활용하시어 Windows Vista 이상의 환경을 구축하여 사용하시는 것도 방법입니다.

      저 개인적으로는 빠른 시일 내에 Mono에서도 Windows Azure 응용프로그램을 제작할 수 있는 패키징 도구가 출시되었으면 하는 바람이 있습니다. 🙂

  30. 핑백: JSPARK ~
  31. 핑백: JSPARK ~
    • Internet Explorer의 태생부터가 사실은 Windows에 맞춰진 것이 아닐까 합니다. Microsoft Plus! 95의 일부로 배포되기 시작했고, IE 4.0부터는 암묵적으로 Trident 엔진이 Windows 운영 체제의 일부로 자리잡기 시작했으니까요. IE 9.0의 이러한 행보 또한 그렇게 낯선 일은 아닌듯 합니다. ㅎㅎ

  32. 핑백: Finebe ~
  33. 핑백: Exodus with Aaron ~
    • 클라우드 어플리케이션은 웹 어플리케이션과 구분됩니다. 웹 어플리케이션의 유형에 따라 차이가 있겠지만, 대개 HTTP 통신을 기준으로 하며, DHTML/AJAX를 주 표현 수단으로 삼는 경우가 많습니다.

      하지만 클라우드 어플리케이션은 클라우드 컴퓨팅 서비스가 제공하는 컴퓨팅 파워 (서버 자원, 네트워크 자원 등)를 활용하여 다양한 서비스 (소켓 통신부터 시작하여 웹 서비스, 고성능을 요구로 하는 과학 연산 등)를 개발할 수 있고, 프로그래밍 언어의 선택도 자유롭습니다. (윈도 애져의 경우, C# 뿐만 아니라 PHP, 루비, 자바도 지원합니다.)

  34. 안녕하세요~ 남정현님께서 올리신 글을 보고, 저도 IKVMC를 이용해 Dll로 만드는 것까지 성공을 하였는데요..

    그래서 닷넷(C#)으로 테스트 중 영어의 경우 잘 되는데..
    한글만 넣으면 try + catch문으로 잡아도 ex.source만 나오고
    메세지가 나오질 않아 디버깅 하기가 힘드네요.
    사전때문에 그런 것 같기도 하고..

    int i = 0;
    KoreanAnalyzer analyzer = new KoreanAnalyzer();

    TokenStream stream = analyzer.tokenStream(“k”, new StringReader(textBox1.Text));

    Token t;

    textBox2.Text = stream.toString();

    try
    {
    while ((t = stream.next()) != null && i < 1000)
    {
    textBox2.Text += t.termText() + "rn";
    i++;
    }
    }
    catch (Exception ex)
    {
    textBox2.Text += "[" + i.ToString() + "]" + ex.Source + "rn";
    textBox2.Text += ex.Message;
    }

    위 소스를 보시고, 시간 되실때 고려해야 될 사항이 있으면 가르쳐 주시면 고맙겠습니다.. 귀찮게 해 드려 죄송합니다.

    • 리소스 테이블의 검색에 관련된 문제로 IKVM으로 변환한 모듈이 정상적으로 동작하지 않는듯 합니다. 저도 이 부분은 계속 테스트를 해보았지만 답을 구하지 못해서 현재는 진행하지 못하고 있습니다.

      IKVM의 최신 버전을 다시 활용해보거나, 가능한 범위에서 포팅을 시도해보아야 할 것 같습니다.

  35. 핑백: Kevins Story ~
  36. 핑백: Kevins Story ~
  37. 핑백: PERSONALTECH ~
  38. 먼저 답글로 이런걸 달아 죄송하다는 말씀부터 드립니다.
    안녕하세요 전 KAIST uilab에서 추천 블로그에 관한 연구를 하고 있는 김영민입니다.
    저번 유저스터디에 이어 다시한번 유저스터디를 진행하게되었습니다.
    이번에도 역시 블로거 분들의 참여가 필요하여 이렇게 답글을 남기게 되었습니다. 텍스트큐브가 요즘 뒤숭숭하지만 참여해 주시면 정말 감사하겠습니다. ㅜ
    지금 제가 진행하고 있는 연구는 블로거님의 데이터를 바탕으로 관심을 가지실만한 블로그를 추천하는 방법에 대한 연구인데, 대상 블로거님이 추천결과를 평가해 주시면 앞으로 연구를 진행하는데 큰 도움이 될 것 같습니다!!
    설문 예상시간이 20-30분이니 만큼 설문을 성실히 답해주신 모든 분들게 참가비 1만원을 지급합니다!! 물론 설문에서 추천해 드리는 블로그는 블로거님의 취향에 맞게 구성된 블로그 들이라 관심을 가지실만한 블로그도 많을 것입니다(아닐수도 있어요 ㅠㅠ).
    많은 돈은 아니지만 이와같은 보상도 있으니 꼭 참여해주셔서 도움주시면 감사하겠습니다!
    질문이 있으시면 언제든 creatcross@kaist.ac.kr로 메일 날려주세요!!
    설문조사 페이지 주소는 http://creatcross.kaist.ac.kr/survey 입니다.

  39. 안녕하세요. 잘 읽었습니다. 혹시 질문을 좀 드려도 될까요?

    현재 만들어진 프로젝트가 VC6 MFC ActiveX (ocx)입니다. 이를 웹에서 실행시 비스타 이상에서
    UAC에 걸리잖아요.. ㅜㅜ 그래서 이를 해결해야하는데.

    2005 이상의 ATL로 변환하기가 쪼금 힘든상황입니다.( 추가된 프로젝트가 옛날 옛날 꺼라.. )

    하여 여기에 설명해주신 코드를 이용해보려고 하는데.. 그게… ATL인것 같은데… MFC AvtiveX상태에서
    권한요청 박스가 나와서 관리자를 얻어 웹에서 원하는 함수를 호출( 바탕화면 아이콘 저장)를 호출 할 수
    있을까요..

    여러가지 방법을 써봤습니다.
    1. manifest 생성+리소스추가 ( 안됨 )
    2. CoCreateInstanceAsAdmin 를 이용한 권한상승 요청 ( 안됨 = 로그를 찍어보면 권한요청 박스가 안나오지만 다 성공했따고 나오네요.. 그러나 바탕화면에 아이콘이 생성은 안되네요.. )
    3. 남정현님께서 쓰신 1번,, ( 안됨 )
    4. “” 2번 ( 웹에서 호출 할 수 있는 리턴 STDMETHODIMP 생성 불가 )
    5. “” 3번 ( “” ) – 리턴으로 ret에 관리자 권한을 줘서 웹에서 그 obj를 이용해서
    다시 ocx 내부에 있는 함수를 호출( 아이콘 생성) 하라느느 것 같은데 그 리턴 값을 넣지 못하겟습니다.

    도움 부탁 드리겠습니다.

    • 여러모로 어려움이 많으신것 같네요. 🙂

      우선 시도해보셨다고 했던 1번은 Inprocess Server 기반의 ActiveX 컨트롤에 대해서는 해당 사항이 없습니다. 이 방법을 적용하려면 Internet Explorer에 대해서 Manifest를 작성해야하는 우스운 상황이 연출됩니다.

      제가 작성했었던 내용들은 모두 MFC 프로젝트 위에서 테스트하고 작성했었던 내용들입니다. 혹시 구체적으로 어떤 부분에서 어려움이 있으셨었는지 말씀해주시면 좋겠습니다. 🙂

  40. 음. 추가적으로요..
    우선 6.0 MFC ActiveX에서 코드 추가로만 자신의 ocx에서는 권한 상승후 파일 쓰기 등을 할 수 가 없는것 같은데.. 맞나요?

    대안으로 2005 Atl로 권한 상승 dll을 만들고 이 dll에서 권한 상승을 요구하는 exe 나 dll을 따로 만들어서
    호출을 하라는 것 같은데. 맞나요?

    그렇다면 권한상승용dll + 작업용(exe,dll)을 cab 만들때 같이 배포를 하라는 것인가요?
    개념이 잘 잡히지 않네요. 어짜피 파일 다운로드 설치가 권한상승dll에서는 불가능할테니 이 방법 밖에 없겠죠?

    • 별도로 추가 프로그램을 작성하라는 의미는 아니었습니다. 대신, 현재 로드된 URL을 그대로 가져와서 관리자 권한을 획득한 Internet Explorer를 대리 실행할 수 있도록 해준다는 것이 제가 이 글을 통하여 설명했던 결론의 주된 골자입니다.

  41. 답변 감사드립니다

    우선 저의 주된 질문은 이미만들어진
    vc60 mfc activex(ocx)에 1 2 혹은 3번의 코드 추가로만으로

    이 ocx에 관리자 권한을 주는 것이 가능한건지 입니다

    ocx에서는 단순히 웹에서 아이콘파일을 다운받아 바탕화면에 바로가기 아이콘을 만드는 일늘 합니다

    리턴을로 관리자토큰을 넘겨 var obj에서 obj에 대입하여 사용이 가능한지입니다

    이것을 하기위해 위의 시도 들을 해봤는데 안되네요

    2005 atl dll로는 간단한 프로그램을 만들어 성공했습니다

댓글 남기기