Korea Evangelist

Developer & Platform Evangelism, Microsoft Korea

January, 2014

  • Korea Evangelist

    테크데이즈 미니 토요세미나 발표자이신 박용준님을 미리 만나 보았습니다.

    • 0 Comments

    오늘은 마이크로소프트 MVP 이면서 MCT(마이크로소프트 공인강사)이신 DevLec의 박용준 전임 강사님을 모시고 이야기를 나누어 보았습니다.

    김명신: 안녕하십니까? 박용준 님. 호칭은 어떻게 하는 것이 좋을지요?

    박용준: 강사라고 불러주시면 좋겠습니다. 저는 이 호���이 참 좋습니다.

    김명신: 특별한 이유가 있으신지요?

    박용준: 네. 이건 아주 개인적인 이야기이긴 합니다만, 제가 어린 시절에 쑥스러움이 많아서 누구 앞에 나서는걸 잘 하지 못했어요. 남들 앞에 나서면 말도 잘 하지 못하고 얼굴만 붉어지는 수줍고 내성적인 성격이었습니다. 성격이 그렇다 보니 학창시절에는 누가 저를 반장으로 추천했음에도 손사래를 치고 거절한 적도 여러 번 있고, 군 시절에는 누구나 한다는 선임 견장도 한번 못 달고 제대하였습니다. 그런데 그러던 제가 대학교 졸업 즈음에 어쩔 수 없이 강의를 한번 하게 되었습니다. 거절할 수 있는 상황이 아니었거든요. 나름 열심히 준비를 하였고, 나름 성공적으로 마무리를 할 수 있었습니다. 큰 경험은 아닐지 모르지만 그 일 이후로 많은 부분이 바뀌었습니다. 여러 사람을 대상으로 저의 의견을 피clip_image002[4]력하거나, 제가 알고 있는 지식을 전달하는 것에 대한 희열의 보람을 맛 보았다고 해도 틀리지 않을 것 같습니다. 대략 13~4년 동안의 사회 생활에서, 한 회사에 소속되어 업무를 한 기간이 약1년여 정도이고, 대부분의 기간 동안 프리랜서 개발과 더불어 교육, 강의, 컨설팅 등으로 일을 하고 있던 계기가 되기도 하였습니다. 그렇다 보니 강사라는 호칭이 동경의 대상이었고 동시에 지금도 강사라고 불러주시는 것이 편하고 좋습니다.

    김명신: 지금은 오프라인으로 학원에서 강의하시는 것 보다는 온라인으로 강의를 더 많이 제작하고 서비스 하시는 것으로 알고 있습니다. 처음부터 그러셨던가요? 아니면 어떤 계기가 있으셨는지요?

    박용준: 처음에는 학원 강의를 주로 많이 하였습니다. 주로 컴퓨터 프로그래밍 전문가 과정과 같이 6개월 혹은 1년과 같이 장기간 학생들과 같이 하는 강의가 많았습니다. 전산전공 대학생들이 실무 개발을 익히기 위해서 오는 경우도 많았지요. 그렇게 긴 기간 동안 학생들과 함께하다가 졸업 즈음에 대기업이나 유수 기업에 취직하는 것을 보면 보람도 많이 느꼈습니다. 최근에도 간혹 기술 세미나를 하곤 하는데요 그럴 때 마다 그 때 학생이었던 분들을 자주 뵙곤 합니다. 인사를 미리 하시고 하는걸 보면 나쁜 강사는 아니었나 봅니다. 최근에는 오프라인 강의는 거의 하지 않고 온라인 강의를 제작하고 서비스하는 것에 중점을 두고 있습니다. 강의라는 것이 기록되지 않으면 사라져 버리는 것이고, 동일한 내용을 필요로clip_image004[4] 하시는 다른 분들이 많음에도 재사용될 수 없음이 가장 안타까웠고요. 온라인으로 강의를 한번 제작해 두면, 좀 더 많은 분들이 제 강의를 접하실 수도 있고, 저 또한 같은 내용을 계속 반복할 필요가 없으니 좋은 방법이라고 생각합니다. 저는 이를 약간 우스운 말로 생활이 시스템이고 가상화다라고 이야기 하곤 합니다. 온라인 강의가 실제 저를 대신해 주니까 말이죠. 게다가 온라인을 통한 강의 제작 서비스가 제 개인적인 성향과도 잘 부합하고, 특별히 원거리로 출근을 하지 않아도 되다 보니 가족과 함께 하는 시간도 많이 가질 수 있어 매우 만족하고 있습니다. 회사에 다니시는 분들께서는 느끼지 못하시겠지만, 아이들을 직접 학교에 등/하교 시키는 것이 동경의 대상이기도 하였고, 지금은 제 인생에 큰 보람 중에 한 부분이기도 합니다.

    김명신: 최근에 페이스북에 올리신 글을 보고 깜짝 놀랐습니다. 지금까지 작성하신 동영상의 수가 상당하던데, 총 몇 편이었지요?

    박용준: 제가 지난 10년간 꾸준히 강의 동영상을 제작하다 보니 그 수와 내용이 많은 것은 사실입니다. 2013년을 정리하면서 확인을 해 보았는데, 총 3665개 이더군요. 1년에 365개씩은 만들자라고 계획하였었는데 그 목표는 달성한 것 같습니다.

    clip_image005[4]

    김명신: 그럼 매일 매일 작업을 하시는 건가요?

    박용준: 그렇지는 않고, 하루에 5~6개씩 촬영을 할 때도 있고, 일주일 내내 하나도 촬영하지 않는 경우도 많이 있습니다. 벽보고 강의는 제가 국내 일인자임에 분명한 것 같습니다.

    김명신: 개수도 개수지만 그 내용도 상당히 방대할 것 같습니다.

    박용준: 아주 오래 전에 촬영하였던 C# 1.0이나 ASP관련 내용도 있고요, Windows Server, SQL Server, ASP.NET 그외 HTML5, jQuery, AngularJS 등등 그 주제와 내용이 매우 다양합니다. 국내의 경우 하나의 주제로 전문성을 가져가면서 강의하기가 쉽지 않기 때문에, 다양한 주제의 강의를 하게 되고, 이 때문에 깊이나 전문성이 결여되는 문제가 발생하기도 하는데요, 저 같은 경우에는 특별히 ASP.NET과 같은 마이크로소프트 웹 개발 기술에 대한 전문성을 놓치지 않기 위해서 특별히 더 신경 쓰고 노력하는 편입니다.

    김명신: 그렇게 많이 작성하신 동영상들은 어디서 살펴볼 수 있을까요?

    박용준: 제가 지인과 함께 운영하고 있는 http://www.devlec.com/ 이라는 온라인 프로그래밍 전문교육 사이트가 있습니다. 여기서 모두 살펴보실 수 있습니다. 국내에 온라인으로 프로그래밍이나 OA과정을 다루는 사이트가 꽤 있는 것으로 알고 있는데요. 저희는 프로그래밍 전문 사이트이기 때문에 그 넓이와 깊이가 다른 곳과는 확연히 차이가 있습니다.

    김명신: 저도 며칠 전에 살펴보았는데, 첫 페이지에 SignalR에 대한 강의가 올라가 있더군요.

    박용준: 네, 최근에 SignalR에 대한 촬영을 했습니다. ASP.NET SignalR은 상당히 놀랍고도 실용적인 기술입니다. 제가 봐도 신기할 정도입니다. 먼저 SignalR은 굉장히 쉽습니다. 실제로 web 기술을 기반으로 chatting 서버를 작성하기 위해서 4~5줄의 코드면 핵심 코드를 작성할 수 있을 정도입니다. 뿐만 아니라 기존에 양방향 통신을 수행하기 위해서 사용하고 있는 WebSocket, Server Sent Events, 영구 프레임(Forever Frame), Ajax 롱 폴링(long polling)등을 모두 아우르는 기술입니다. 특정 기술 하나만을 사용하는 것이 아니라, 클라이언트의 지원 내용을 확인하여 최초 협상 시에 가장 효과적인 기법을 선택하도록 되어 있습니다. 기존 기술들이 브라우저의 지원 여부, 클라이언트 개발 환경의 특성 등으로 인해 좋은 기술이 나와도 쓰기가 어려웠는데, SignalR을 사용하면 각각의 환경에 부합하는 최적화된 방법이 자동으로 선택됩니다. 개발자가 그 각각을 다루어야 할 일이 없죠. 이는 다양한 형태의 Web 기반 기술을 이용한 양방향 통신 메커니즘을 말 그대로 통합하는 효과가 있습니다. 이는 마이크로소프트의 이전 기술 중에 WCF가 Unified Communication 메커니즘으로 다양한 통신 규격을 하나의 방식으로 프로그래밍 하게 만들었다는 장점에서 진일보 하여서 Web 기술을 근간으로 하는 Unified Communication 메커니즘이라고 정리해 볼 수 있겠습니다.

    김명신: SingalR의 이 같은 장점에 대해서는 저도 상당히 고무적이라고 생각하고 있습니다. 게다가 다양한 브라우저를 지원하고, 다양한 개발 언어를 지원하기 때문에 더더욱이나 활용성이 높은 것 같습니다. 예전에 mms, RTCP/RTSP 등의 미디어 자체적인 미디어 전송 기술들이 최근에는 http를 이용하는 웹 기술로 발전/진화한 것은, 웹 기반 기술을 지원하는 다양한 장치와 인프라들을 그대로 사용하면서, 손쉬운 Scale Out이 가능한 것으로 알려져 있습니다. SignalR 또한 Web 기술을 근간으로 하기 때문에, 단일 서버뿐 아니라 다중 서버로의 확장이 용이할 것으로 예상되는데요

    박용준: SignalR은 단일 서버에서 수행될 때에도 상당히 고성능으로 동작하기 때문에, 한대의 서버만을 이용해도 상당한 성능을 유지할 수 있습니다. 외부자료 중에는 초당 10만건의 메시징을 수행하였다는 보고도 있습니다. 하지만 그 이상을 지원하기 위해서는 말씀하신데로 Scale Out이 중요한 요소입니다. SignalR은 개발시부터 이에 대한 고려가 있었기 때문에 다중 웹서버로 구성한다 해도 기존 코드를 변경해야 할 내용이 극히 적고, 실제 그에 대한 대응을 수행하기 위해서도 코드 한두 줄로 구성 설정을 변경할 수 있습니다.

    김명신: 그 정도까지 극단적으로 업무를 단순화 할 수 있는지는 저도 처음 알았네요. 최근 마이크로소프트의 웹 기술들이 플랫폼 기술로 거듭나고 있는 것으로 보입니다. 이에 대해서 말씀 해 주실만한 내용이 있으실까요?

    박용준: 그렇습니다. 최근 ASP.NET을 중심으로 한 마이크로소프트의 웹 기술은 기존의 웹페이지 제작기술을 모던하게 변화 발전시키는 것과 더불어 웹 서비스 플랫clip_image007[4]폼으로 그 영역을 확장해 나가고 있습니다. 최근에 가장 눈에 띄는 기술이라고 하면 역시 ASP.NET WebAPI와 SignalR 등을 꼽을 수 있을 텐데요. 두 가지 모두 이 범주에 속하는 기술이라고 볼 수 있고, 이러한 기술들이 시장에 미칠 파급효과는 상당하다고 생각하고 있습니다. SignalR과 새로운 기술은 처음부터 기존 방식을 바꾸는 게 아닌 레고 블록 맞추는 것처럼, 기존에 구축해 놓은 시스템에 추가적으로 필요한 부분만을 적용하여 개선해 나가는 방식으로 좀 더 쉽게 접근하실 수 있으리라 봅니다.

    김명신: 이번 미니테크데이즈 토요세미나가 바로 WebAPI와 SignalR 뿐 아니라 ASP.NET 성능 최적화 까지를 다루고 있습니다.

    박용준: 최근 SignalR과 WebAPI가 버전 업데이트가 되었고, 상당히 많은 부분들이 개선되었습니다. 이 기술들을 살펴볼 수 있는 가장 적기가 아닌가 생각됩니다.

    김명신: 이번 미니테크데이즈를 통해서 SignalR의 장점을 유감없이 보여주실 것 같이 기대가 큽니다.

    박용준: 네, 최선을 다해서 준비하도록 하겠습니다. 감사합니다.

  • Korea Evangelist

    테크데이즈 미니 토요세미나 발표자이신 최준님을 미리 만나 보았습니다.

    • 0 Comments

    KakaoTalk_3fd4767017f55d04김명신: 안녕하십니까? 최준 MVP님. 최근 근황에 대해서 잠깐 이야기 해주실까요?

    최준: 최근 MSE라는 회사를 창업하여 마이크로소프트 기술에 대한 컨설팅과 구현업무와 더불어 마이크로소프트 엔터프라이즈 솔루션의 서비스 단위 모니터링 툴을 개발하고 있습니다.

    김명신: 최준 MVP님은 창업이전에 마이크로소프트에서 PFE(Premier Field Engineer)로 상당기간 근무하신 경험이 있는 것으로 알고 있습니다. 마이크로소프트에서 하시던 업무에 대해서 간단히 소개해 주실 수 있으실까요?

    최준: 네. 주로 기업 고객 대상으로 주요 핵심 인터넷 서비스에 대한 장애를 해결하거나, 문제가 발생하기 이전에 시스템의 사전 평가 서비스를 담당하였습니다. 국내외 200개 기업에 대하여 대략 1000번 이상의 필드 지원 경험이 있습니다. 장시간에 걸쳐 특정 사이트를 개발하기 보다는 단기간에 걸쳐 고객의 문제상황을 파악하고 문제 상황을 해결하는 업무를 주로 담당 했고, 업무의 특성상 다양한 마이크로소프트 솔루션에 대한 폭넓은 이해를 할 수 있었던 좋은 시기였습니다.

    김명신: 국내에서만 활동하신 것이 아니라 아시아 국가 전체를 대상으로 다양한 경험을 하신 것으로 알고 있는데요. 재미난 에피소드도 많이 있을 것 같습니다.

    최준: 집은 싱가폴이었는데, 방문지가 원격에 있다보니, 월요일 아침에 집에서 나서서 금요일 저녁에나 집에 들어가는 경우가 많았습니다. 보통 버스나 택시보다 비행기를 많이 이용하니까 공항에서 소중한 시간을 허비하는 경향도 있었고요, 매주 비행기 안에서 다국적 독감환자분들과 꼼짝없이 앉아 있어야 하다 보니, 이런저런 병치례도 많이 했어요. 1년의 3분의 1은 약봉지를 끼고 살고 뭐 그런 좋지 않은 경험도 있었습니다. 하지만 아무래도 한번 고객사에 방문하게 되면 최소 몇 일간은 고객들과 얼굴을 마주하고 기술적인 논의들을 하게 되는데, 현지 고객들이 상당히 친화적이라서 그 지역의 문화적인 차이와 다양성에 대해서 몸소 체험할 수 있어서 좋았습니다. 그들의 삶을 엿볼 수 있는 기회가 되기도 하였지요.

    김명신: 국내와 국외를 두루 섭렵하셨는데, 서비스의 개발이나 운영의 관점 혹은 기술을 바라보는 시야에도 다양한 차이가 있을 것 같은데요?

    최준: 한국뿐 아니라 아시아에 속한 싱가폴, 호주, 인도네이사, 말레이지아, 태국, 인도, 스리랑카 등에서 마이크로소프트 기술을 사용하는 다양한 회사에 대한 기술 컨설팅과 필드 엔지니어링을 했습니다. 국내 기업의 경우 타 국가에 비해서 운영하는 장비나 서버의 대수가 현저히 많은 특징이 있습니다. 업무에 따라 다르긴 하겠습니다만 전국민을 대상으로 하는 인터넷 서비스의 경우, 웹서버만 해도 대략 100~150대 정도를 투입하기도 하고, 금융권의 경우에는 웹서버만 대략 20여대 이상의 서버를 특정 서비스에 배치하기도 하지요. 하지만 해외의 모 글로벌 금융회사의 경우에는 전국민을 대상으로 하는 서비스 임에도 불과하고 IIS 서버 2대에 SQL server 1대 정도로 운영을 하고 있는 회사도 있고, 그 정도의 인프라로도 서비스를 잘 운영을 하고 있습니다. 나라마다 서비스 인프라를 도입할 때 보이지 않는 기준이나 회사별로의 규칙들이 존재하는데, 국내의 경우 다른 나라에 비해서 하드웨어 도입비용이 상대적으로 높은 편입니다. 인프라의 중요성을 더욱 높게 평가하고 이에 비중 있게 투자한다고 볼 수 있겠지요. 하지만 미션 크리티컬한 서비스의 가용성이나 성능은 사실 강력한 하드웨어 만으로 해결될 수 있는 것은 아니고 서비스를 개발할 당시의 개발사와 컨설팅 역량이 매우 중요하다고 하겠습니다. 해외의 경우 하드웨어 보다는 상대적으로 소프트웨어의 설계, 교육, 컨설팅, 개발에 더 많은 비용과 시간을 투자하는 경우를 자주 볼 수 있습니다. 하드웨어와 같은 물리적인 인프라를 통한 해결책은 일면 문제 해결에 있어 단순한 측면이 있지만 결국 운영의 관점에서 더 많은 비용이 필요하기 때문에 장기적인 관점으로는 심각한 비용 증가를 초래하게 됩니다.

    김명신: 마이크로소프트 기술과 솔루션들은 대규모, 미션 크리티컬한 업무보다는 중소 규모의 서비스에 좀 더 적합하다는 시각도 있는 것이 사실입니다. 이에 대해서는 어떻게 생각하시는지요?

    최준: 사실 마이크로소프트 기술이던 혹은 다른 회사의 기술이던 기술적으로 충분히 성숙한 기술들이기 때문에, 규모별로 기술의 적합성을 판단하는 것은 큰 의미가 없습니다. 어떤 언어를 사용했느냐, 어떤 프레임워크를 사용했느냐 보다는 좋은 도구와 코드 그리고 서비스에 적합한 설계와 패턴을 사용했느냐가 더욱 중요하다고 생각합니다. 제 개인적인 경험으로, .NET 기술과 Java 기술을 비교 분석하고 성능을 살펴보는 BMT에 지원하게 되었는데요, .NET 기반으로 BMT에 참가하여 다른 기술 기반과 견주어 단 한번도 나쁜 결과를 얻은 적이 없습니다. 실제로 유사 하드웨어를 대상으로 했을 때, 성능적으로는 압도적인 결과를 낸 적도 여러 번 있습니다.

    김명신: 마이크로소프트 기술이 대규모나 미션 크리티컬한 업무에 적합하지 않다고 판단하는 데에는 마이크로소프트 기술이 덜 성숙하여 안정성이나 보안성에 있어 취약하다고 생각하는 부분도 있는 것 같습니다.

    최준: 이 부분에 대해서는 좀 더 명확하게 사실을 들여다볼 필요가 있습니다. 마이크로소프트가 발표하는 보안 패치나 핫픽스 등의 전체 개수는 다른 회사, 다른 벤더 사보다 훨씬 많은 것이 사실입니다. 그런데 이는 마이크로소프트가 출시한 제품의 수와 직접적인 연관이 있습니다. 출시한 제품과 사용하는 제품이 많다 보니 보안 패치나 핫픽스 수가 많아 보입니다. 윈도우 구성요소, IE, 오피스 제품군에 대한 패치가 특히 많지요. 하지만 기업용 응용 프로그램을 개발할 때 마이크로소프트의 모든 제품을 쓰는 것은 아니기 때문에, 전체 보안 패치나 핫픽스가 많으므로 덜 안정적이거나 보안적으로 문제가 있다고 생각하는 것은 잘못된 것이지요. 실제로 IIS 7의 경우 보안 패치는 한 손으로 꼽을 정도입니다. 뿐만 아니라 Windows Server 2008의 Core Edition 같은 경우 윈도우의 모든 기능을 설치하지 않으면서도 웹 응용 프로그램을 서비스 할 수 있습니다. 이처럼 설치하는 기능과 바이너리의 수를 최소화 하면, 이후 패치할 서비스의 개수도 그에 비례하여 줄일 수 있지요. 서비스에 반드시 필요한 것만을 사용하면 됩니다.

    김명신: 상당히 일리 있는 지적인 것 같습니다. 사실관계와 상관없이 국내 상황은 마이크로소프트 기술에 여전히 호의적이지 않은 부분이 있는 것 같습니다. 단순히 웹 응용 프로그램만을 놓고 보더라도 ASP.NET과 같은 기술을 사용하는 업체가 비교적 적은 편인 것 같습니다.

    최준: 제가 경험한 바로는 우리나라만 특수한 부분이 있습니다. 글로벌한 현황이나 추세에 견주어 보면 국내의 경우가 심각할 만큼 차이가 있는 것도 사실입니다. 하지만 이것이 국내 고객들만이 아주 특수한 것을 요구한다거나 기술적인 요건이 있는 것은 아닙니다. 그럼에도 대기업, 공공 등에서 ASP.NET과 같은 기술을 명시적으로 배제하는 경향이 있는 것 같습니다. 명시적으로 이처럼 특정 기술을 배제하는 것은 올바르지 않다고 생각합니다. 이와는 별개로 숙련된 엔지니어 풀이 상대적으로 적은 것도 문제일 수 있습니다. 국내의 경우 .NET 보다는 다른 기술에 익숙하고 정통하신 엔지니어들이 많고, 만나기 쉬운 측면이 있다고 봅니다. 전문성을 확보한 엔지니어의 발굴과 그들을 좀 더 쉽게 만날 수 있는 제도적인 장치나 방법이 있다면 좋지 않을까 생각합니다. 또한 마이크로소프트 기술을 활용하여 성공한 사례와 성과들이 잘 정리되고 공유되었으면 합니다.

    김명신: 이번 테크데이즈 미니 세션에 대해서 이야기를 나누어 보았으면 합니다. 세션의 제목이 “ASP.NET 대용량 처리를 부탁해~” 인 것으로 알고 있습니다. 제목만 들었을 때에는 어떤 내용이 다루어질지 짐작하기 어려운 부분이 있는데요, 어떤 내용이 다루어질까요?

    최준: 운전하는 사람이 핸들링이나 라디오를 조작하는 방법만을 아는 것에 그치지 않고 자동차의 동작 방식과 원리를 이해하면 좀 더 자동차에 대한 이해가 넓어지고 차에 대한 성능도 최대한으로 쓸 수 있겠지요. 그런 의미에서 IIS와 ASP.NET의 내부 구조를 좀 더 깊이 있게 살펴 보는 시간을 가져볼까 합니다. 한시간 남짓의 시간이 충분하지는 않아서 선택의 여지가 많지는 않았어요. 이 세션을 통해서 이어질 수 있는 화두들이 나올 수 있지 않을까 기대해 봅니다.

    김명신: 그렇다면 이후에 더 깊이 있는 내용에 대해서도 요청을 드릴 수 있을지요? 기업체에서 관련하여 기술 지원 요청이 있을 수도 있을 것 같은데요.

    최준: 그러한 내용들이 저희 회사의 업무와도 관련성이 있기 때문에 가능하리라 생각합니다.

    김명신: 마지막으로 마이크로소프트에 바라는 점이 있으시다면 어떤 것이 있을까요?

    최준: 마이크로소프트는 다양한 제품을 출시하고 있지만, 일부 오피스와 같은 제품군을 제외하고는 도움말이 정말 부실하다는 생각을 지울 수가 없습니다. 도움말이 도움이 되지 않는 상황들이 많아요. 물론 개별 요소별 설명들은 잘 되어 있을지 모르겠으나, 고KakaoTalk_c282a50c2e85e644객이 수행하고자 하는 시나리오를 중심으로 하는 도움말은 거의 없습니다. 마이크로소프트 기술을 오랫동안 접해온 사용자나 개발자라면 마이크로소프트가 제공해 주는 도움말을 조합하여 나름의 결과를 도출할 수 있겠습니다만 결국 도움말이라는 것은 그 제품이나 기술에 익숙하지 않은 사용자들을 위한 것이기 때문에 도움말의 전체 구조나 내용을 고객의 시나리오 중심으로 만들어야 하지 않나 싶습니다. 마이크로소프트 도움말은 두꺼운 사전 같은 느낌을 받습니다. 단편화된 페이지나 수 많은 링크가 얼마나 도움이 될지는 미지수입니다. 낱말 하나하나의 의미를 설명하는 도움말보다는 참고서와 같은 도움말이 되었으면 합니다.

    김명신: 장시간 인터뷰에 응해 주셔서 감사드리고, 테크데이즈 미니 토요세미나에서 뵙겠습니다. 감사합니다.

    최준: 네 감사합니다.

    테크데이즈 미니 토요세미나 안내

  • Korea Evangelist

    테크데이즈 미니 토요세미나 발표자이신 한상훈님을 미리 만나 보았습니다.

    • 0 Comments

    itist_한상훈오늘은 유스마케팅 전문기업인 (주)대학내일에서 마케팅 솔루션 플��폼과 프레임워크를 개발하고 계신 한상훈 ASP.NET MVP님을 만나 뵈었습니다.

    김명신: 안녕하십니까? 한상훈 MVP님. 지금 하시고 계신 업무에 대해서 이야기 해 주실 수 있을런지요?

    한상훈: 네. 저희는 20대와의 소통을 키워드로 그들의 성향을 찾아 효율적이고 전략적으로 마케팅에 활용할 수 있는 허브를구축하고 에이전시 업무와 직접적인 마케팅도 병행하는 회사입니다. 저는 주로 회사의 솔루션 플랫폼과 주요 공통 프레임워크를 개발하는 업무를 담당하고 있으며 최근에는 SNS를 이용하여 빅데이터 분석 기법을 적용하는 솔루션에 관심을 가지고 있습니다. 기존에 PHP, ASP.NET, JAVA 등 필요에 따라 다양한 개발 언어와 플랫폼들을 이용하고 있던 환경이라 회사의 근간이 되는 공통 프레임워크 개발의 필요성이 있었고, 이에 ASP.NET을 근간으로 공통 프레임워크를 단계적으로 개발/전환하고 있습니다. 신규로 시작하는 서비스는 가능한 ASP.NET을 이용하려고 하고 있습니다. 이미 완성도 높은 open framework을 이용하는 경우도 있으나 ASP.NET을 이용하여 그 이상의 가치를 뽑아내고 완성도 높은 솔루션을 개발하기 위해서 개발에 전념하고 있습니다.

    김명신: 상당히 오랫동안 ASP.NET을 이용한 개발 업무를 수행하신 것으로 알고 있습니다.

    한상훈: 그렇게 오래된 것은 아니고요. 실제로 ASP.NET을 공부하기 시작한 것은 2004년부터이고, 현업에서는 2007년부터 줄 곳 ASP.NET을 이용하여 개발을 수행하고 있습니다. 덕분에 올해까지 5년차 ASP.NET MVP로도 활동하고 있습니다.

    김명신: 마이크로소프트의 기술을 다른 회사나 플랫폼에 비해서 선호하시는 이유가 있으실까요?

    한상훈: 사실 주위에서 기술의 장단을 비교할 때, 요소 기술 각각을 하나하나 구분하여 비교 분석하는 경우가 많이 있습니다. 하지만 특정 기술이 개발하고자 하는 솔루션에 적합한가를 평가 하는데 있어서는 개별 요소 기술 별로 하나하나 세분화 하여 분석하는 것도 중요하지만, 솔루션 전체를 융합과 결합의 관점에서 바라보는 시야가 더욱 중요하다고 생각됩니다. 결국 솔루션이라는 것은 하나의 기술로만 이루어지지 않고, 전체가 기술적으로 밸런스를 가지고 결합되어야 하기 때문입니다. 마이크로소프트의 기술들은 전체를 놓고 비교 분석해 볼 때 그 진가를 알 수 있고 기술 가치를 입증할 수 있다고 봅니다. 저는 이러한 관점에서 마이크로소프트 기술을 선호하는 편입니다. 마이크로소프트의 기술은 전체를 관통하는 기술적인 방향성과 철학에 근간하여 유사하거나 공통의 방식을 이용하기 때문에 상당히 완성도가 높다 하겠습니다.

    김명신: 마이크로소프트 기술들은 다른 기술들에 비해서 폐쇄적이라는 비판이 있는 것도 사실입니다만 이에 대해서는 어떻게 생각하시는지요?

    한상훈: 물론 마이크로소프트가 개발한 모든 제품이나 기술을 모두 공개하는 것은 아니지만, 그렇다고 마이크로소프트를 폐쇄적이라고 보기에는 어려움이 있습니다. 실제로 ASP.NET을 구성하고 있는 대부분의 플랫폼, 프레임워크, API의 95%가 open source 형태로 진행되고 있어서 필요한 경우 source code를 download 받아서 내용을 살펴보고 컴파일 해볼 수도 있습니다. 뿐만 아니라 최근에는 마이크로소프트 또한 상당히 많은 프로젝트를 open source 형태로 진행하고 있는 것으로 알고 있습니다.

    김명신: ASP.NET은 여러 형태의 Web Application 개발 방식을 제공하고 있는데요, 개인적으로 선호하는 방식이 있을까요?

    한상훈: ASP.NET은 Web Application 개발 방식으로 크게 Web Form, ASP.NET MVC, Web Pages 3가지 방식을 제공하고 있습니다. 드래그 앤 드롭을 이용한 개발 방식이나 서버 사이드 컴포넌트 등을 이용하여 손쉽게 개발할 수 있는 Web Form 방식도 있고, MVC 패턴에 부합하는 ASP.NET MVC 템플리트도 있습니다. 뿐만 아니라 Web Form의 생산성을 좀 더 강화하고 더불어 다양한 렌더링 엔진을 사용하는 Web Pages 방식도 있습니다. 이 각각은 사용 용도, 개발자의 숙련도, 선호 방식 등을 종합적으로 고려하여 선택되어야 합니다만, 개발자 개개인의 호불호가 조금 갈리는 측면도 있습니다. 사실 최근에 One ASP.NET 이라는 마이크로소프트의 전략으로 미루어 보았을 때, 개별적으로 하나의 기술만을 사용하기 보다는, 다양한 방식으로 이러한 기술 요소들을 섞어서 사용하는 것이 더 좋을 수도 있겠다는 생각이 듭니다. 다른 MVP와도 이와 관련하여 다양한 관점에서 이야기를 해본 적이 있는데, 최근에는 그 각각을 완전히 분리해서 다루기 보다는 말 그대로 하나의 ASP.NET 이라는 관점에서 바라보는 것도 나쁘지 않으리라 생각합니다.

    김명신: ASP.NET Web Form만을 이용하여 개발하시던 분들은 ASP.NET MVC나 Web Pages 등과 같은 기술이 배우기 너무 어렵다고 생각하시는 분들도 없지 않은 것 같습니다.

    한상훈: 네, 실제로 Web Form에 익숙하신 개발자 분들이 ASP.NET MVC나 Web Pages등을 사용하시려고 하면 학습하실 내용이 꽤 있는 것은 사실입니다. 하지만 제가 활동하고 있는 taeyo.net 등에서 여러 번에 걸쳐 MVC나 Web Pages 등에 대한 스터디와 세미나를 해본 경험에 따르면, 조금만 그 내용을 익히면 MVC와 같은 패턴들이 근본적인 Web Application 개발에 기술적으로 잘 부합한다고 판단하시는 것 같더라고요.

    김명신: 사실 Java 플랫폼 기반으로 Web Application을 개발하시는 분들은 이미 Spring등을 근간으로하는 MVC 방식에 익숙하신 것 같습니다. 마이크로소프트 기술을 이용하시는 분들이 유독 MVC와 같은 패턴을 어려워하시는 다른 이유가 있을지요?

    한상훈: Java 플랫폼에 이미 익숙하신 개발자 분들 중에 필요에 의해서 마이크로소프트 기술을 공부하시고 활용하시는 분들도 상당히 많으신데요. 그분들과 이야기를 나누면서, 정답은 아닐지라도 이에 대한 답변이 될만한 이야기를 들은 바가 있습니다. 그분들의 주장은 Java 개발자들은 딱히 대표적인 벤더나 기술 리더쉽을 가진 회사가 없기 때문에 스스로 알아서 하려는 경향이 강한데 반해 마이크로소프트 기술을 활용하시는 분들은 다 그렇지는 않겠으나 마이크로소프트 의존적인 경향이 있다라고 이야기 해주시더라고요. 또한 개인적인 소견으로는 Visual Studio라는 개발툴이 개발자들이 반드시 알아야 하는 복잡한 개념들을 너무 잘 숨기고 있어서 본질에 다가가는데 오히려 방해가 되는 부분도 있다고 생각합니다. 예를 들어 사전 지식에 대한 학습 없이 Visual Studio로 Web Application을 처음 개발하시는 분들은 Web Application을 수행하기 위해서 Visual Studio가 반드시 필요하다고 착각하시는 분이 있을 정도입니다.

    김명신: 이점에 저도 일면 공감하는 부분이 있는 것이 제가 Turbo C로 처음 C 공부를 할 때, 컴파일이라는 과정과 그 결과물에 대한 이해가 없어서, 개발한 프로그램을 다른 컴퓨터에서 수행하려면 Turbo C 개발환경이 반드시 필요한 줄 알았습니다.

    김명신: 다른 질문을 좀 드려보고 싶습니다. 한국은 유독 Java와 같은 단일 기술이 시장을 독식하고, 기술 편향적인 시각이 많은 것 같습니다. 특히 국내의 경우 70% 이상의 web application이 java platform을 근간으로 하고 있다는 보고도 있습니다. 이는 글로벌한 지표와는 상당한 차이를 보여주고 있는데요, 그 이유가 무엇일까요?

    한상훈: 여러 많은 이유들이 있겠습니다만, 제가 학생 때 한창 공부할 때에는 실제 개발한 web application을 호스팅이라도 해보려고 하면, 마이크로소프트 플랫폼을 이용할 경우 훨씬 비용이 더 많이 들었습니다. 지금 생각해보면 그 금액이 그리 크지 않지만, 당시에는 그런 조그마한 비용 조차도 상당히 부담스러웠던 것이 사실이고요, 그러한 선입견이 마이크로소프트 기술은 비싸다는 고정관점처럼 되지 않았나 싶습니다. 사실 개발 공부를 할 때에는 이러한 부분들이 상당히 제약일 수 있거든요. 최근에는 Windows Azure와 같은 퍼블릭 클라우드 서비스가 있어서 이 같은 비용들은 많은 부분 상쇄된 것 사실이지만요. 또한 정부가 정책적으로 오픈 소스 육성책을 쓰면서 반사이익을 본 부분도 없지 않을 거라 생각합니다. Java로 하면 마치 오픈 소스 인양 착각하시는 분들이 여전히 많이 계시는 것 같기도 합니다. 또, 한 국가의 전자 정부 프레임워크를 특정 기술 종속적으로 유지한다는 것은 문제가 많다고 생각합니다.

    김명신: Visual Studio라는 개발도구가 유료인 것은 관련이 없을까요?

    한상훈: 커뮤니티에 올라온 글을 살펴보면 Visual Studio가 유료임에 불만인 분들이 많이 있습니다. 하지만 Visual Studio의 기능을 제대로 사용해 보면, 이 도구가 왜 유료인지를 이해할 수 있을 정도로 Visual Studio는 개발 도구로써 타의 추종을 불허 합니다. 실례로 현업에서 다른 개발도구를 사용하여 타 플랫폼 개발이나 UI 개발을 하시는 분들을 보면 그분들께서 특히 열광하는 기능들이 있거든요. 근데 사실 그런 기능들은 아주 오래 전부터 Visual Studio에서 기본적으로 제공하던 기능인 것들이 많아요. 또한 Visual Studio express edition과 같은 무료 도구도 충분히 활용할 수 있을 것이라 생각합니다.

    김명신: 조금 다른 관점에서 이야기를 이어가 보지요. ASP.NET은 이제 web application 개발을 위한 기술에서 진일보 하여 Web Service Platform으로 그 기능성을 확장하고 있는 것 같습니다.

    한상훈: 제가 지금 소속된 회사로 이직하기 전에 게임 퍼블리싱 회사에서 근무하였던 적이 있었습니다. 당시 굉장한 인기를 끌었던 게임의 메인 개발자께서 창업한 회사와 제휴를 맺고 작업한 적이 있었는데, 게임 로그인 서버를 IIS를 이용하여 개발하셨더라고요. 그래서 나중에 왜 그렇게 개발했는지 확인했더니 IIS만큼 탄탄하고 더 좋은 서버를 만들 자신이 없어서 라고 답변을 주셨습니다. 당시에는 Web 기술의 가치와 가능성을 다시 한번 생각하게끔 하는 신선한 답변으로 기억합니다.

    김명신: 2000년 초반에 IBM과 마이크로소프트가 중심이 되어 한창 광풍처럼 몰아부친 기술 중에 UDDI, WSDL, SOAP등을 중심으로한 Web Service가 있었고, 이후 WSE와 WS-* 등의 다양한 프로토콜이 만들어졌지요. 이론적으로 대단히 훌륭할지 모르나 실용적이지 못하다는 이유로 시장에서 환영받지 못한 기술이 있었고, Ajax, RESTful의 영향으로 지금과 같은 Web 서비스 플랫폼의 필요성이 대두된 것 같은데요, 그런 측면에서 ASP.NET의 WebAPI 기술을 평가해 주실 수 있을까요?

    한상훈: Jax-RS나 Jersey 등이 Java 진영에서 RESTful API를 구성하기 위한 기술이라면, WebAPI는 이에 대한 마이크로소프트의 답변이라고 볼 수 있겠습니다. WebAPI는 아직 최초버전이 출시된 지 2년 정도밖에 되지 않은 따끈따끈한 기술이고, 최근에 WebAPI 2.0이 출시되면서 기존에 꼭 있었으면 했던 특성 기반 라우팅과 같은 기법이 추가되었습니다. 개인적으로는 WebAPI에 꽂혔다고 해도 과언이 아닌데요, Web Application + Web 서비스 플랫폼 형태의 결합은 아키텍쳐 적인 측면에서 상당히 가치가 있는 모형이라고 봅니다. 물론 클라이언트가 반드시 Web Application일 필요도 없지요. 실제로 회사 내에서 구축하고 있는 플랫폼의 대부분이 WebAPI를 이용해서 다른 서브 시스템과 상호 통신을 수행하는데, 서브 시스템의 결합 관점에서는 더할 나위 없이 좋습니다.

    김명신: 최근에 관련하여 책도 번역하신 걸로 알고 있는데요.

    한상훈: 네 그렇습니다. 아직 출간은 되지 않았고, 번역본을 출판사로 넘긴 상태인데요, taeyo.net 운영진 분들과 함께 번역한 책으로 ASP.NET WebAPI Security라는 책입니다. 이 책에서도 다루고 있지만 WebAPI와 관련된 보안 Issue들을 어떻게 해결할 수 있으며, 상호 운용의 관점에서 oAuth 등의 기술을 WebAPI에 적용하는 방법들도 상세히 나와 있습니다.

    김명신: taeyo.net에서도 운영진의 한 분으로 활동 중이신 걸로 알고 있습니다. 향후 taeyo.net의 운영 방향이나 study 등에 대해 알려주실 부분이 있으실까요?

    한상훈: 저희가 1년에 한번씩 루키 스터디 라는 모임을 진행하고 있습니다. 타 플랫폼 개발자이거나 1~2년차 개발자들을 대상으로 약 2달에 걸쳐 강도 높은 학습을 하는 모임인데요. 소수정예로 최대 20분 정도만 모시고 진행을 합니다. 아직 구체적으로 계획이 나온 것은 아니지만 빠르면 설 이후에는 대략적인 계획을 공개할 수 있을 것 같습니다.

    김명신: 마지막으로 마이크로소프트에 바라시는 바나 하시고 싶은 이야기가 있을런지요?

    clip_image004한상훈: 가장 최근에 마이크로소프트에 바라던 것이 “토요세미나” 였습니다. 사실 반드시 토요일일 필요는 없다고 생각하지만 그런 형태의 지속적인 세미나가 있었으면 하는 바램을 가지고 있었습니다. 그런데 이렇게 최근에 “토요세미나”가 시작되고, 이런저런 스터디 모임들도 생겨나는 것 같아서 정말 흥미진진하고 즐겁게 지켜보고 있습니다. 저는 이런 행사가 꾸준히 이어졌으면 하는 생각을 가지고 있습니다. 덕분에 최근에 마이크로소프트 MVP로서 어디 가서 할말도 많아졌습니다. 한마디로 흥미진진합니다.

    김명신: 감사합니다. 그럼 1월25일 ASP.NET WebAPI 세션 기대하고 있겠습니다.

    한상훈: 네. 열심히 준비하겠습니다. 많은 분들께서 참석하셨으면 좋겠습니다.

    테크데이즈 미니 토요세미나 안내

Page 1 of 1 (3 items)