테크데이즈 미니 토요세미나 발표자이신 마이크로소프트 GBS 엔지니어분들을 미리 만나 보았습니다
오늘은 한국마이크로소프트 내의 기술의 메카라고 할 수 있는 GBS(Global Business Service)의 Developer Support Engineer 분들과 함께 이야기를 나누어 보았습니다.
김명신: 안녕하십니까? 김순근, 이진헌, 이정철님. 오늘은 만나 뵙기가 어렵지 않아서 같이 모셨습니다. 거의 매일 얼굴을 뵙는 분들과 인터뷰를 하려니 참 어색하긴 하네요. 먼저 GBS(Global Business Service) 라는 부서가 어떤 업무를 하는지 간략히 소개 해 주실 수 있을까요?
김순근: 저희 부서는 마이크로소프트의 제품과 플랫폼에 대하여 기술 지원을 하는 부서라고 간단히 말씀 드릴 수 있겠습니다. 마이크로소프트의 다양한 소프트웨어 제품에 대한 전문성을 갖춘 100여명의 엔지니어들이 주로 기업 고객을 대상으로 기술 지원을 합니다. 마이크로소프트의 GBS가 다른 회사의 기술 지원부서와 확연히 차이를 보이는 것은 지원의 범위를 단순히 저희가 개발한 제품으로 한정 짓지 않고 개발 플랫폼도 지원 한다는 점일 것입니다. 즉, 기업 내에서 저희 플랫폼을 근간으로 개발한 응용 프로그램에 문제가 있거나 자문이 필요한 경우에도 저희가 도움을 드릴 수 있습니다. 이는 마이크로소프트가 가지고 있는 개발자 중심의 기업문화와도 맥이 닿아 있다고 할 수 있겠습니다. 또한 기업 내에 특정 솔루션이나 기술 도입을 검토 하실 때에도, 저희 부서가 그 기업에 가장 적합한 제품, 기술, 개발 방법 등을 자문 하기도 합니다. 뿐만 아니라 마이크로소프트 제품의 문제가 있다면 본사와 협업하여 문제를 해결하기도 하고, 향후 제품의 방향성을 모색할 때 한국의 다양한 상황을 전달하여 제품의 완성도를 높이기 위한 역할을 담당하고 있습니다. 아무래도 업무의 성격상 실제 국내 기업이 겪고 있는 기술적인 문제를 몸소 체험하는 부서이기도 합니다.
김명신: 실제로 개발 현업의 목소리를 가장 크게 들으실 수 있는 부서이니만큼 실제 기업들의 IT 현황이나 애로사항을 가장 잘 아실 거라 생각이 듭니다. 수년간 근무해 오시면서 기업 고객들의 변화들을 느끼신 부분이 있을지요?
이정철: 실제로 IT분야의 특성상 하루가 다르게 빠른 속도로 개발 환경, 개발 플랫폼, 개발 방법론 등이 변화에 변화를 거듭하고 있는 것이 사실입니다. 서버 측은 가상화 기술로 큰 변화를 맞이 하였고요, 클라이언트 측도 Rich 클라이언트, Thin 클라이언트를 오가는 형태로 변화/발전하고 있습니다. 하지만 이러한 변화를 적시에 도입하기는 상당히 어려운 것이 사실인데요, 기업 내에 유기적으로 결합된 다양한 솔루션들로 인해 운영과 개발의 복잡도가 계속 증가하고, 기존에 개발/운영 중인 시스템과의 상호 운용성도 배제할 수 없기 때문일 것입니다.
이진헌: 실제로 웹 기술을 중심으로 살펴 보아도 변화의 양상이 얼마나 빠른지 몸소 체험할 수 있는데요. 정적 페이지만을 서비스하던 시대를 돌이켜 보지 않더라도, 동적으로 페이지를 생성하는 서버 측 기술이 중심이 되었다가, 플래시나 실버라이트와 같은 RIA 기술에서 다시 순수 웹 표준을 지향하는 HTML5로 변화에 변화를 거듭하고 있지요. 이 과정에서 혼돈스러울 만큼 많은 버즈워드(Buzz Word)들이 양산된 것도 사실입니다. 하지만 최근에는 HTML/CSS와 JavaScript에 대한 기술들이 구현기술의 중심으로 빠르게 재편되어 가는 느낌을 받습니다. 실제로 이와 관련된 기술의 발전과 변화를 지켜 보는 것만으로도 흥미롭습니다.
김명신: 다양한 디바이스의 출현과 모바일 환경의 도래 그리고 다양한 운영체제와 플랫폼의 등장으로 인해 이러한 기술 변화가 가속화된 면이 있지 않나 싶습니다. 하지만 실제로 기업 고객들은 이러한 웹 기반 기술을 도입하는데 상당히 어려움을 겪는 것으로 알고 있습니다.
김순근: 기술적인 배경과 발전과정을 돌이켜 보면 쉽게 이해가 되는 부분이기도 합니다. 가장 큰 문제점은 기업 내의 요구사항을 완벽히 해결 해 주는 단일 기술은 존재하지 않는다는 원칙적인 문제입니다. 저마다의 기술은 나름의 활용 용도와 방향성을 가지고 있는데 이를 정확히 파악하여 적재적소에 올바른 기술을 사용하기가 매우 어렵다는 것이지요. 예를 들어 웹 페이지 구축 붐이 한창 불던 시기에 고객의 요구사항은 기존에 사용하고 있던 설치형 응용 프로그램과 동일한 형태의 웹 페이지를 구축해 달라는 것이었습니다. 이는 사실 웹이라는 기술의 활용 용도나 방향성과 그 한계를 사전에 충분히 파악하고 기술을 도입하였다기 보다는, 웹이라는 유행에 편승하였다고 볼 수 있습니다. 고객 요구사항에 맞추다 보니 웹 브라우저만으로 구현할 수 없는 부분을 ActiveX와 같은 플러그인 모듈에 의존할 수 밖에 없었죠. 웹 기술이 가져다 주는 장점들, 예를 들면 설치가 필요하지 않다거나 버전 업그레이드가 편리하다는 것과 같은 부분이 외부 플러그인 모듈에 의존적이 되다 보니 의미가 많이 퇴색되지 않았나 생각합니다. 보안 문제로 최근 트렌드는 플러그인 모듈에 대한 자원 접근을 제한하는 방향으로 가고 있는데 기존에 개발된 모듈들이 호환성 이슈를 발생시키고 최신 웹 기반 기술을 도입하는데 장애 요인이 되는 경우가 많습니다.
이진헌: 사실 이러한 관점에서 브라우저 플러그인 기술을 이야기 하지 않을 수 없는데요. 최근 들어 많은 기업들이 겪고 있는 브라우저 호환성 문제라던지 운영체제 업그레이드의 문제들이 인터넷 익스플로러의 브라우저 플러그인 기술인 ActiveX와 직간접적인 연관성이 있습니다. 인터넷 익스플로러뿐 아니라 크롬, 사파리, 파이어폭스와 같은 웹 클라이언트들은 사실 기술적인 한계와 방향성이 매우 명확합니다. 그럼에도 많은 기업들이 웹 기술을 도입할 때, 그러한 한계를 간과한 면이 없지 않다고 생각하고 있습니다. 실제 기업체의 요구사항들이 표준 웹 기술로는 구현이 어렵거나 불가능하기 때문에, ActiveX와 같은 기술을 사용하지 않을 수 없었던 것입니다. 그런데 이제는 이러한 비표준 브라우저 플러그인 기술로 인해 기업체 내에 신규 기술의 도입과 확산을 심각하게 저해하고 있다고 볼 수 있겠습니다. 사실 ActiveX 라는 기술을 그 자체로 좋고 나쁨을 판단하는 것은 우려스럽습니다. 단지 ActiveX와 같은 기술로 무엇을 만들었느냐 하는 것이 문제라면 문제일 것입니다.
이정철: 인터넷 익스플로러의 이전 버전들이 비표준 기술을 사용하고 있다거나 웹 표준 규격을 준수하지 않는다고 하여 끊임없이 논란이 되고 있는데요. 이 부분은 전후 관계가 바뀐 면이 없지 않습니다. 인터넷 익스플로러가 많이 사용되던 시기에는 HTML4나 XHTML 정도가 마크업 언어로 많이 사용되었던 시기였고, 브라우저가 좀 더 많은 기능을 수행해줄 것을 요구하는 목소리가 높았습니다. 이러한 요구사항을 브라우저에 반영하였던 것이 비표준 규격 기술을 도입한 이유 중 하나인 것도 사실입니다. 하지만 인터넷 익스플로러 9버젼 이후부터는 빠른 속도로 신규 표준을 준수하는 방향으로 버전업이 이루어지고 있고, 최근 출시된 IE11은 거의 대부분의 표준 규격을 준수하고 있습니다. 게다가 F12 개발자 도구는 꼭 한번 써보시라고 말씀 드리고 싶습니다.
김명신: 앞서 말씀해 주신 것처럼 시장은 빠른 속도로 HTML5와 기술을 널리 활용하는 쪽으로 방향을 잡고 있는 것 같습니다. 스티브 잡스가 HTML5를 외쳤기 때문이다라는 우스갯 소리도 있는데요. 이처럼 빠르게 HTML5가 자리매김 할 수 있었던 이유가 무엇일까요?
김순근: 네! 스티브 잡스가 외쳤기 때문이죠. 하하. 하지만 사실 그 보다 다양한 폼팩터와 다양한 디바이스의 출현이 HTML5의 사용을 가속화 시켰다고 보는 측면이 좀 더 올바른 답이 아닐까 싶습니다. 각 플랫폼별로 앱을 만들기보다는 표준화된 단일 웹 애플리케이션으로 다양한 디바이스와 운영체제의 차별성을 지원하는 것이 최적의 방법이라는 생각을 하게 되었고, 결국 HTML5/JavaScript 등에 대한 기술에 관심이 높아질 수 밖에 없었던 것이겠지요.
이진헌: 하지만 HTML5가 브라우저 플러그인 기술을 완전히 대체할 수는 없습니다. HTML5은 브라우저 외부의 시스템과 상호운용해야 하는 작업을 극히 제한하고 있기 때문에 브라우저로 할 수 있는 일의 범위가 엄청나게 확장되지는 않습니다. 단지 표준을 근간으로 여러 브라우저에서 공통적으로 사용할 수 있도록 잘 정리되었다는 측면이 더욱 강하지 않을까 싶습니다. 약간 다른 관점으로 이처럼 웹 기술이 각광 받는 이유가 JavaScript 수행엔진의 성능 향상과도 관련이 있다고 생각합니다. Internet Explorer의 Chakra, Chrome의 V8, Safari의 Nitro 등의 최신 스크립트 수행 엔진들은 성능이 이전에 비해 괄목상대하였다고 말할 수 있을 정도 입니다. 스크립트 성능을 기반으로 한 다양한 시도들의 결과가 지금과 같은 클라이언트측 웹 기술의 비약적인 발전을 가져왔다고 생각합니다. JavaScript 라이브러리나 프레임워크들이 폭 넓게 사용될 수 있는 기반이 되었고, 이를 통해 웹 클라이언트에서 수행하는 기능과 업무의 내용이 비약적으로 늘고 있습니다. 예전에는 웹 서버에서만 처리하던 작업의 상당 부분을 웹 클라이언트로도 처리할 수 있게 된 것이지요. 또한 웹 서버는 그 구조상 중앙 집중식으로 구성될 수 밖에 없는데, 이처럼 업무를 클라이언트 측으로 내려 보내면, 컴퓨팅 리소스를 균형적으로 쓸 수 있는 장점도 얻게 됩니다.
김명신: 이번 2월15일에 있을 세션이야기도 해보았으면 합니다. 웹 클라이언트 기술을 중심으로 주제와 세션을 구성해 주셨는데요. 각 세션에서 어떤 내용들을 말씀해 주실지 살짝 이야기해 주실 수 있을런지요?
김순근: 제가 맡은 세션의 주요 테마는 HTML5와 JavaScript가 될 것 같습니다. 모던 웹 애플리케이션 개발의 중심에 있는 HTML5와 JavaScript의 발전과 활용분야와 더불어 주요 개발 언어로서 Visual Studio가 지원하는 기능들을 같이 살펴볼 생각입니다. 웹 클라이언트 개발을 위해서 다양한 도구들을 사용하실 수 있겠지만, Visual Studio에 신규로 추가된 기능들을 살펴보면 어느 IDE 보다 훌륭한 기능들이 많이 포함되어 있습니다.
이진헌: 저는 주로 JavaScript의 최적화 기법에 대해서 말씀 드리려고 하는데요. JavaScript의 수행엔진이 엄청난 개선을 이루었음에도 우리가 계속해서 성능문제에 직면할 수 밖에 없는 문제에 대해서 말씀 드리고, JavaScript 프로그래머들이 반드시 알아야 할 코드 패턴이나 코딩 스타일 등을 실제 사례와 Demo 중심으로 알아보려고 합니다.
김명신: 저는 개인적으로 이정철 님께서 발표해 주실 Internet Explorer 11 호환성과 웹 표준이라는 주제에 관심이 많이 가는 것이 사실입니다.
이정철: Internet Explorer 11에서 올바르게 동작하는 웹 응용 프로그램을 개발하는 방법과 기존에 개발되어 있는 웹 응용 프로그램들을 Internet Explorer 11에서 올바르게 수행할 수 있는 방법들을 다룰 생각입니다. 다양한 호환성 문제들이 발생할 가능성이 있고, 그 각각에 대해서 어떻게 대응하는 것이 좋은지를 실 사례와 엮어서 말씀 드리려고 합니다. 또한 Internet Explorer 11에서 무엇이 어떻게 바뀌었으며, 변경된 내용이 어떤 영향을 줄 수 있는가에 대해서 이야기를 드리려고 준비하고 있습니다.
김명신: 장시간 인터뷰에 응해 주셔서 감사 드립니다. 2월 15일 현장에서 뵙겠습니다.
김순근, 이진헌, 이정철: 감사합니다.