테크데이즈 미니 토요세미나 발표자이신 유경상님을 미리 만나 보았습니다.
오늘은 www.simpleisbest.net 라는 기술 전문 블로그의 운영자이면서 “유수석의 WCF 바이블”의 저자이신 유경상님을 모시고 이야기를 나누어 보았습니다.
김명신: 안녕하세요? 바쁘신 와중에도 이렇게 인터뷰에 응해 주셔서 감사합니다.
유경상: 네, 반갑습니다. 이렇게 찾아와 주셔서 감사 드립니다.
김명신: 최근에 .NET 기반 기술 컨설팅과 소프트웨어 개발에 여념이 없으실 걸로 알고 있습니다. 십여년간 다양한 산업분야와 회사에서 자문 활동을 하시면서 마이크로소프트 기술에 대한 개발자의 인식을 몸소 체험하셨으리라 생각됩니다. 최근 들어 국내 시장에서 마이크로소프트 기술이 주춤한다는 평가들도 없지 않은데 어디에 그 원인이 있다고 생각하시는지요?
유경상: 개인적으로 마이크로소프트의 기술이 시장에서 올바르게 평가 받지 못하고 있는 부분이 있다고 생각합니다. 이것은 마이크로소프트의 기술의 문제라기 보다는 인식의 문제가 아닌가 합니다. 특히 마이크로소프트가 강점으로 내세우고 있는 사용자 편의성이 기업 내의 개발 환경에서는 도리어 좋지 않은 영향을 미치고 있는 부분이 있다고 생각하고 있습니다. Visual Studio와 같은 개발도구나 Windows Server와 같은 운영체제 전반을 살펴보면 굉장히 사용자 친화적인 GUI 환경을 제공하고 있음을 알 수 있습니다. 그런데 이처럼 사용자 친화적인 환경이 역설적으로 쉬운 개발환경, 쉬운 운영체제로 잘못 인식되어서 전문가 없이도 누구나 쉽게 접근할 수 있다는 오해를 불러 일으킨다는 것입니다. 이에 대비해서 Oracle, Apache 등의 DBMS나 웹서버들은 여전히 주요 관리 방식이 CUI를 근간으로 하거나 텍스트 파일을 이용한 구성 방식을 취하고 있기 때문에 보이지 않는 장벽들이 있습니다. 손쉽게 익혀서 사용하기에는 어려운 방식이지요. 그렇다 보니 관련 전문가들을 찾고 의뢰하는 것에 인색하지 않습니다. 이에 비하여 마이크로소프트의 SQL Server나 IIS 등은 GUI 환경 내에서는 대부분의 작업들을 손쉽게 수행할 수 있기 때문에, 관련 제품이나 기술의 전문가가 아니더라도, 마우스 클릭 몇 번 만으로도 대략적인 구성을 완료할 수 있고, 손쉽게 수정할 수 있는 것처럼 보입니다. 하지만 올바르게 구성을 설정하고 변경하는 작업은 그 방법의 차이일 뿐이지 반드시 동일 수준의 전문성이 전제되어야 하는 작업입니다.
김명신: GUI 환경을 제공한다는 것은 대체로 장점으로 평가되고 있는 측면이 강한 것 같습니다만 개발 환경에 좋지 않은 영향을 미칠 수도 있다는 부분에 대해서는 어떻게 이해하는 것이 좋을까요?
유경상: 최적화 되지 않은 구성 설정이나, 혹은 최적화 되지 않은 쿼리 등은 그 자체로는 문제가 되지 않을지 모르나, 이를 기반으로 하는 기업용 시스템의 성능이나 안정성 등에는 즉각적으로 문제를 일으킵니다. 특별히 미션 크리티컬(Mission Critical)한 업무이거나 사용자 수가 많은 대규모 시스템의 경우에는 업무의 특성을 완벽히 분석하고, 하드웨어와 소프트웨어의 성능을 최대한으로 뽑아 쓸 수 있어야 하는데, 그렇지 못할 수 있다는 것이고요. 그 보다 더 심각한 것은 이로 인해 개발된 시스템이 요구하는 성능에 부합하지 못하거나 혹은 문제를 일으키게 되면 그것이 마이크로소프트 기술에 대한 잘못된 인식으로 남게 된다는 것입니다. 그러한 인식은 쉽게 바뀌지 않아서 추후에 의사결정 과정에 큰 영향을 미치게 됩니다.
김명신: 구체적으로 사례들이 있다면 말씀해 주실 수 있을런지요?
유경상: 최근에 모 기업의 시스템에 성능 문제가 있어 방문 드린 적이 있었는데요, 하드웨어는 최상의 하드웨어를 도입하였고 64비트 운영체제를 이용하고 있었는데, IIS를 32비트로 설정해 두어서 메모리를 제대로 쓰지 못해 문제가 있었던 경우가 있었습니다. 단순히 IIS 설정을 64비트 설정으로 변경하는 것으로 원하는 수준의 성능을 얻을 수 있었습니다. 혹은 SQL 서버의 쿼리 수행 성능이 너무 느리다고 호소하는 업체도 있었는데, 실제로 제가 확인한 바에 따르면 어떤 데이터베이스를 쓰더라도 느릴 수 밖에 없는 쿼리(발쿼리라고들 하는)문으로 인해 현저하게 속도가 저하되는 것을 확인하고 최적화를 수행하여 수십배 이상 빠르게 수행되도록 변경한 사례도 있고, 다른 데이터베이스에서 사용하던 쿼리 구문을 SQL Server에 대한 이해 없이 그냥 적용하여 성능이 제대로 나오지 않는 경우도 있었습니다. 앞서 구성에 대한 부분만을 말씀드렸습니다만 실제로 응용 프로그램 레벨에서도 이러한 문제는 매우 심각합니다. Java를 이용하여 개발을 진행하는 경우에는 대체적으로 응용 프로그램 개발 스택들이 경험적으로 체계화 되어 있는 경우가 많습니다. 하지만 마이크로소프트의 개발 플랫폼 스택들은 다양성과 더불어 비교적 자유도가 높은 경우가 많지요. 이렇다 보니 업무에 적합한 기반 기술을 선택하지 않으면 좋지 않은 결과로 이어질 수 있습니다. 마이크로소프트가 빈번히 새로운 신기술들을 출시함에 따라 마치 신기술이 가장 좋다는 생각에 잘못된 선택을 하는 경우도 많고, 혹은 기존 기술만을 너무 고집하여 최신의 기술을 적용하지 못하는 경우도 있지요. 전문가 없이 초/중급 개발자들만으로 구성된 팀에서 프로젝트를 진행하는 경우, 성공확률도 낮아질뿐더러, 자신이 잘못 작성해서 문제가 되었다고 인정하기 보다는 문제의 원인을 기술로 치부하는 경우가 허다합니다.
김명신: 수년 동안 마이크로소프트 기술이 유독 국내에서 시장 점유율이 낮은 이유도 비슷한 맥락에서 이해될 수 있을런지요?
유경상: 그렇습니다. 소프트웨어 개발에 사용되는 기술들은 급속히 변화하고 발전하는 분야이지요. 그렇다 보니 최초에는 기업체 별로 나름의 특장점들이 드러날지 모르나, 장시간 동안 발전되고 진화하는 과정에서 유사한 형태로 발전됩니다. 이런 측면에서 특정 플랫폼이 다른 플랫폼에 비해서 턱없이 부족하다거나 혹은 훨씬 더 좋다고 판단하기에는 어려움이 있습니다. 여러 가지 형태의 영향이 있었을 것이나 앞서 말씀 드린것과 같은 전문성의 부재로 인한 편협한 시각도 일조했으리라 생각하고 있습니다.
김명신: 그나마 최근에는 다시 마이크로소프트 기술을 사용하시는 기업체나 개발자들이 차츰 증가하고 있는 추세인 것 같습니다. “Mobile First, Cloud First”와 같은 슬로건 아래, 시장의 요구사항을 빠르게 수용할 수 있도록 변화하고 있습니다만 이에 대해서는 어떻게 평가하실 수 있을까요?
유경상: 한국 시장만을 고려해 보았을 때, 마이크로소프트의 클라우드 전략은 부족함은 있을지언정 올바른 방향으로 제대로 순항하고 있다고 생각합니다. 산업별로 부침이 있겠으나 클라우드에 대한 인식은 나쁘지 않고, 클라우드가 제공하는 가치에 대해서 대체적으로 동의하는 편입니다. 하지만, 마이크로소프트의 모바일 전략에 대해서는 개인적인 관점에서 성공을 위해서는 상당한 노력이 수반되어야 할 것으로 보입니다. 이미 포화상태에 이른 시장에서 새로운 형태의 모바일 솔루션을 만들어 내고 시장에서 자리매김을 한다는 것은 쉽지 않은 일임에 분명합니다.
김명신: 마지막으로 한국에서 40대 개발자로 살아가는 것에 대해서 여쭙고 싶습니다.
유경상: 저는 중학교 때 코딩을 시작했습니다. 프로그래밍이 너무 좋아서 당시에 상고를 가려고 생각을 했을 정도입니다. 물론 이후 인문계를 거쳐 대학을 진학하였고, 학과 선택에 있어서도 고민한 적이 없어요. 좋아 하는 공부를 하다보니 열심히 할 수 있었던 것 같고, 졸업 이후에도 자연스럽게 프로그래밍을 직업으로 선택 한 경우입니다. 한국에서는 40대 개발자가 자리매김 하는 것이 참으로 어려운 것은 사실입니다. C++를 이용하는 일부 솔루션 개발사의 경우 40대 이상의 개발자가 꽤나 있지만, 일반적인 기업용 응용 프로그램 개발 분야에서는 많이 찾아 보기 어렵습니다. 그들이 가지고 있는 경험과 기술에 대한 전문성을 올바르게 평가하고, 가치를 인정하는 풍토가 적기 때문이라고 생각합니다. 하지만 이들만이 가지고 있는 경험과 기술에 대한 전문성은 어디서도 살 수 없는 것이기 때문에 기업들의 인식변화가 반드시 선행 되어야 한다고 생각합니다. 다행스럽게도 저도 여전히 프로그래밍을 하고 있는 것으로 봐서는 점차 환경이 나아지고 있다고 생각합니다.
김명신: 끝으로 한국 마이크로소프트에 바라는 바가 있다면 한 말씀 부탁 드리겠습니다.
유경상: 최근에 한국 마이크로소프트에서 “테크데이즈 미니”나 “멜팅팟” 세미나 등을 지속적으로 진행하면서 개발자들에게 기술을 전파하는 장을 마련하신 부분에 대해서는 상당히 긍정적인 평가를 하고 있습니다. 하지만 실제 기업 환경에서 사용하는 기술은 마이크로소프트의 최신 기술이 아니기 때문에, 세미나를 듣는 그 때뿐이고 현업에 즉각적인 도움을 주지는 못하는 것 같습니다. 세미나의 주제나 내용 등을 다각도로 분석하고, 기술에 대한 방향성을 제시할 수 있었으면 합니다. 그런 의미에서 이번에 제가 다룰 “유닛테스트” 관련 세션은 현장의 개발자들이 바로 적용해 보실 수 있을 만큼의 실용적인 내용이 아닐까 싶습니다.
김명신: 세션준비로 많이 바쁘실 텐데, 인터뷰에 응해 주셔서 감사합니다. 테크데이즈 미니 행사장에서 뵙겠습니다.