Compartilhar via


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

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 세션 기대하고 있겠습니다.

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

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