Korea Evangelist

Developer & Platform Evangelism, Microsoft Korea

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

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

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

  • Korea Evangelist

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

    • 2 Comments

    itsme2오늘은 APM(Application Performance Management) 시장에서 승승장구 하고 있는 제니퍼소프트의 정성태 님과 12월 주제인 C#에 대해서 이야기를 나누어 보았습니다.

    김명신 :  최근에 C#책에 대해서 출간을 하셨지요? 분량을 보니 상당히 오랫동안 작업을 하셨을 것 같은데 얼마나 걸리셨나요?

    정성태 :  약 1년이 조금 넘게 걸렸습니다. 원래 출판사에서는 500페이지 정도에 맞춰 달라고 했는데 욕심이 나서 결국 900여 페이지를 쓰게 되었습니다. 문제는 이게 교정 볼 때마다 900 페이지를 계속 읽어야 하는 바람에 3번 가량의 리뷰를 포함하니 기간이 길어졌습니다.

    김명신 :  제니퍼소프트에서 주로 하시는 일에 대해서 소개해 주실 수 있을까요?

    정성태 :  제니퍼소프트는 APM(Application Performance Management) 솔루션인 '제니퍼(JENNIFER)' 제품을 개발하는 회사입니다. 처음 2005년도에 개발되었을 때는 Java 플랫폼만을 지원했지만 2009년도에 제가 입사하면서 닷넷 제품도 지원하게 되었습니다. 그래서 닷넷 제품에 대한 성능 모니터링을 위해 최신 기술도 따라가는 한편 CLR 내부의 깊이 있는 부분까지 들여다 보는 것을 병행하고 있습니다. 그렇게 쌓인 지식들을 제니퍼 닷넷 제품에 녹여내는 것이 제가 주로 하는 일입니다.

    김명신 :  제니퍼 제품이 해외에도 수출되고 있다고 들었습니다.

    정성태 :  네, 현재 일본, 중국, 독일 및 동남아 쪽으로 발을 넓혀가고 있는 중이고 일부에서는 가시적인 성과도 보이고 있습니다. 사실, 여기에 제니퍼가 닷넷을 지원하게 된 이유가 있습니다. 닷넷 제품에 대한 요구가 2008년부터 있었다고 하는데, 재미있게도 국내가 아닌 제니퍼소프트의 일본 지사에서 요청한 것이었다고 합니다. 일본의 경우, 회사 내에서 단일 플랫폼으로 가져가는 것을 의도적으로 지양한다면서 거의 자바와 닷넷 플랫폼을 50:50으로 사용하는 곳이 많다고 합니다. 하나의 기술만을 사용하면 기술 종속적이 되거나 개별 기술의 성패에 따라 문제가 생길 가능성이 있기 때문이라고 하는데, 나름 합리적인 선택인 것 같습니다. 이 말을 들었을 때 국내 상황이 대비되었습니다. 잘 아시는 것처럼 국내에서는 전자 정부의 표준 프레임워크가 자바로 되어 있어 다른 업체의 기술들이 전혀 접근할 수 없게 되어 있습니다. 사실 Java가 오픈 소스/비용 절감, 기술 내재화 등의 요구로 많이들 사용하시고 계신 것으로 알고 있는데, 안을 들여다 보면 오히려 윈도우 라이선스를 능가하는 고가의 WAS 및 하드웨어 장비가 업체들의 이권과 부합해서 사용되는 경우도 종종 있다고 알고 있습니다.

    김명신 :  실제로 글로벌 시장을 보면 웹 어플리케이션 개발에 사용하는 프레임워크로 PHP가 37%로 가장 높고, 두번째로 ASP.NET이 약 25% 수준이더군요. J2EE의 경우 약 4%수준인데 국내에는 글로벌 시장과는 많이 차이가 있는 것 같습니다. 회사에서 C#으로 개발하시는 부분이 어떤 부분인지요?

    정성태 :  기본적으로 제니퍼소프트의 닷넷 버전은 C#으로 개발합니다. 그런데 정작 최신 기술을 쓰는 데에는 애로 사항이 좀 있습니다. 고객사의 상황이 아직 낮은 버전의 .NET Framework에 머물러 있는 경우가 많기 때문인데, 그래서 최신 기술 보다는 .NET 2.0/4.0에서 공통적으로 사용할 수 있게 C# 2.0 수준으로 낮춰서 개발을 하고 있습니다.

    김명신 :  개인적으로 블로깅을 오랫동안 하셨지요? 저도 정성태님의 블로그를 항상 살펴보는 팬입니다. 얼마나 되셨습니까?

    정성태 :  (http://www.sysnet.pe.kr) 원래 천리안에서 개인 홈페이지로 운영하던 것을 C#을 이용해 직접 sysnet 사이트로 만들어 옮겨왔는데, 아마 천리안 이력을 제외하고도 sysnet 사이트로만 거의 10년이 넘은 것 같습니다. 호스팅도 집에서 PC를 통해 운영했지만 잠자는 시간이면 컴퓨터를 꺼 두는 바람에 야간에 접속이 불가능한 경우가 많았습니다. 현재는 Windows Azure 클라우드 서비스에 올려 둔 상태라서 24시간 서비스가 가능해졌습니다.

    김명신 :  블로깅은 주로 어떻게 하시나요? 꾸준히 올라오고 있는 편인데요.

    정성태 :  블로깅을 이렇게 하는 것을 보고는 가끔 회사 일이 여유가 있어서 업무시간을 활용하는 것이라고 생각하시는 분들이 있는데, 그렇지는 않습니다. 회사의 정책이 하루 8시간 근무라서 그 시간에 업무를 보는 것만도 바쁘기 때문에 주로 퇴근하고 개인 시간을 할애해 글을 씁니다. 개인적인 공부를 하면서 정리를 해두는 목적으로 글을 쓰는 것인데, 예를 들어 어제는 "Visual Studio 2013 Virtual Launch"에서 에릭 감마가 발표한 "Visual Studio Online Monaco"에 대해 궁금했기 때문에 직접 체험하면서 글로 써두었습니다.

    김명신 :  기존 "Team Foundation Service"가 Visual Studio online으로 녹아 들어 왔던데요. 이처럼 ALM 툴이 on-premise가 아니라 Cloud 기반으로 서비스 된다는 것에 어떤 장점이 있을까요? 개발자에게 추천할만 할까요?

    정성태 :  ALM 툴이 클라우드로 이전한 것은 확실히 의미가 있습니다. 사내에서 형상 관리 서버를 이용하는 경우, 체계가 잡힌 대규모 회사가 아니라면 대부분은 그것의 설치부터 시작해서 관리까지 모두 개발자의 몫이 되는 것이 일반적입니다. 공감하시는 분들도 계시겠지만, 형상 관리 시스템에 대한 관리에 들어가는 시간도 때로는 만만치 않은 작업 공수에 해당합니다. 개발자들이라면 당연히 본연의 업무에 집중하고 싶어할 텐데요. 그런 분들에게 추천할만한 서비스로 손색이 없습니다.

    김명신 :  요즘 인기를 끌고 있는 git과 Visual Studio online을 비교할 수 있을까요?

    정성태 :  사실 git과 Visual Studio online을 비교하는 것은 어떤 면에서는 공정하지 않습니다. git은 소스코드에 대한 버전 관리를 하는 도구이지만 Visual Studio online은 소프트웨어 제품의 전체적인 형상 관리를 담당하는 도구이기 때문입니다. 일례로, Visual Studio online은 형상 관리 중 소스코드의 버전 관리를 git으로 바꿀 수 있는 옵션을 제공해 주고 있습니다. 그런 이유로 인해 ALM 전체를 말씀드리기는 어렵고요, 소스코드의 버전관리 수준에서 git과 Visual Studio online에 내장된 고유 버전 컨트롤을 비교해야 할 것 같습니다. 저도 git/github를 이용해 개인적인 오픈 소스코드를 관리하고 있지만 엄밀히 말해서 git의 소스코드 버전 관리 방법이 쉬운 편은 아닙니다. 초기 시간 투자는 물론이고 익숙해지기 위해선 보다 더 깊이 있는 전문성이 요구됩니다. 그에 비하면 Visual Studio online은 개발 툴과의 매끄러운 통합을 이뤄냈고, 계정 정보도 기존의 윈도우 라이브 계정을 연동할 수 있기 때문에 대단히 쉽다는 것을 장점으로 꼽을 수 있습니다.

    김명신 :  빌드 자동화나 배포 자동화, 부하 테스트 등을 직접 구축하기 보다는 Visual Studio online 서비스의 경우 클라우드에 이미 구성되어 있는 것을 쓰게 되니까 상당히 괜찮은 것 같더군요. 5명까지는 무료이고, 그 이상인 경우에도 비교적 저렴하게 사용할 수 있도록 가격정책도 공개가 된 것으로 알고 있습니다. 그렇다면 회사에서는 TFS 같은 걸 쓰시나요?

    정성태 :  제니퍼소프트의 경우 팀 별로 다릅니다. 제니퍼 자바 버전의 경우 SVN을 쓰고 닷넷 버전에서 TFS가 사용됩니다. 그 외에 별도로 이슈 트래커인 JIRA가 있습니다.

    김명신 :  조금 다른 이야기를 해보죠. 2000년 초반/중반만 하더라도 C# 사용자들이 엄청나게 많았는데요, 최근들어 조금 주춤하는 경향이 있는 것 같습니다. 왜 그렇다고 생각하시는 지요?

    정성태 :  아무래도 모바일 흐름에 늦게 대응한 것이 크지 않을까 싶습니다. 현재 마이크로소프트가 모바일 시장에서 몇번 시행착오를 하면서 안드로이드나 아이폰에 비해서 많이 밀린 것이 사실입니다.

    김명신 :  그래도 정성태 님은 윈도우 폰을 쓰시잖아요.

    정성태 :  네, 제가 노키아 윈도우 폰을 사용하고 있는데 공부 목적이기도 합니다. 이미 안드로이드 폰은 가족이 가지고 있어서 실습할 수 있지만 윈도우 폰은 제가 구매하지 않으면 실습을 할 수 없기 때문입니다. 이제 약정이 2달 남았는데, 약정이 끝나도 최신 윈도우 폰 8로 이어갈 생각입니다. 비록 공부 목적이긴 하지만 윈도우 폰에 대한 가능성이 여전히 남아 있고 나름 괜찮은 면도 있기 때문입니다. 한 가지 바람이라면 국내에서도 윈도우 폰이 공식적으로 출시되었으면 하는 것입니다.

    김명신 :  최근 C# 5.0에 포함된 비동기 관련 내용들은 어떻게 보셨나요?

    정성태 :  기존 닷넷 프레임워크에서 지원하던 APM(Asynchronous Programming Model), EAP(Event-based asynchronous pattern), TAP(Task-based Asynchronous Pattern) 방식에 비해서 획기적으로 문법이 쉬워졌습니다. 사용법도 간단하고 내부적인 구조도 상당히 매력적인 것 같습니다.

    김명신 :  C#에 추가된 비동기 문법이 C++의 차기 버전에도 도입된다고 하니, 바야흐로 C#이 다른 언어의 발전에 영향을 미치는 주요 개발 언어가 되었음에 의심할 여지가 없는 것 같습니다. 단적으로 여쭙니다. 왜 C#을 하시게 되었나요?

    정성태 :  현존하는 VM 계열 언어 중에 C# 언어가 표현이 가장 모던합니다. 정적 언어임에도 동적 언어의 장점들도 잘 녹였고, LINQ와 같은 함수형 언어 스킴도 자연스럽게 포함되었습니다. 게다가 그 동안 윈도우 운영체제 전용이라는 꼬리표도 점점 희미해져 가고 있습니다. 예를 들어, 최근 게임 업계에서 모바일 분야로는 거의 절대적인 강자로 떠오르고 있는 Unity3D에서 C#이 지원되고 있는데, 윈도우 전용의 한계를 벗어나고 있는 분명한 사례로 보입니다.

    김명신 :  부연하자면, 국내의 경우 Unity3D 사용자의 90%가 C#으로 스크립팅을 한다고 합니다. 게다가 안드로이드와 iOS에서 돌아가는 앱을 C#으로 개발할 수 있게 만들어주는 제품을 개발한 Xamarin과 마이크로소프트가 최근 공식적인 파트너 관계를 체결하였습니다. 마지막으로 마이크로소프트에게 바라는 점이나 마이크로소프트가 이랬으면 좋겠다고 생각하시는 점이 있으시다면?

    정성태 :  제가 소프트웨어 개발자이기 때문에 개인적으로는 소프트웨어를 돈을 받고 판다는 것이 저는 좋습니다. 폐쇄적인 라이선스 정책의 문제는 차치하고 순수하게 소프트웨어 그 자체가 가진 가치에 대해 비용을 지불하는 것에는 찬성입니다. 자신이 개발한 소프트웨어를 그 자체로 인정 받지 못하고, 광고를 매개로 소프트웨어를 무료로 사용하도록 하는 것은 개발자 입장에서 볼 때 썩 기분 좋은 현상은 아닙니다. 어차피 소프트웨어를 만들어 돈을 버는 것이 목적이라면 광고를 통해 들어오든 사용자가 사든 무슨 상관이냐 하는 분들도 계실 텐데요. 단적인 예로, 사무라이 칼을 만드는 일본의 장인이 그 칼날에 협찬받은 업체의 광고를 써 넣어서 무료로 나눠주는 장면을 상상해 보면 비슷할 것 같습니다. 칼이 물리적인 반면, 소프트웨어는 가상화되어 있다는 차이점이 존재하긴 하지만 소프트웨어 개발자로서 따져 보면 하나의 제품을 개발할 때 사무라이 칼을 만드는 것과 비교해 절대 뒤지지 않는 노력이 들어가고 있다는 것에는 다들 공감하실 것입니다. 마이크로소프트는 소프트웨어 장인들이 스스로 만든image ��프트웨어 가치를 판매하고 있는 몇 안 되는 회사 중의 하나입니다. 그래서 제가 마이크로소프트에 바라는 것은 하나입니다. 경쟁에 뒤지지 않기 위해 변화는 해야겠지만, 마이크로소프트가 그 동안 지켜왔던 소프트웨어의 가치를 끝까지 지켜갔으면 합니다.

    김명신 :  마지막으로 12월에 있을 C# 세미나는 어떻게 이루어질까요? 얼마나 많은 분들이 참석했으면 좋을까요?

    정성태 :  많은 개발자들이 최근에 많은 발전이 있었던 C#의 새로운 문법과 기술을 잘 모르고 있는 것 같습니다. 그래서 C# 2.0부터 C# 5.0까지 새롭게 추가된 구문과 실용적인 용례를 한방에 살펴보실 수 있도록 준비할 예정입니다. 딱 그 위치에 계신 분들이 빠지지 않고 오셨으면 좋겠습니다.

    김명신 :  저도 비동기 세션을 열심히 준비하겠습니다. 감사합니다.

    정성태 :  감사합니다.

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

  • Korea Evangelist

    개발 생산성을 위한 도구 ! Productivity Power Tools 2012 소개

    • 0 Comments

    안녕하세요.

    신입 에반젤리스트 최한홍입니다. 처음으로 에반젤리스트 블로그에 글을 올리게 되었습니다.

    이번 글에서 제가 소개드릴 내용은 Visual Studio의 강력한 확장 기능인 Productivity Power Tools 2012 입니다. Productivity Power Tools 2012는 개발자들의 피드백을 반영하여 만든 Visual Studio의 확장 기능입니다. Visual Studio는 개발자들이 편리한 코딩을 할 수 있도록 많은 기능들을 기본 기능으로 제공하고 있습니다만 파워툴을 설치하면 좀 더 편리하고 강력한 기능들을 추가로 사용하실 수가 있습니다. 파워툴은 Visual Studio 확장 기능을 다운로드 할 수 있는 Visual Studio 갤러리에서 다운로드 받으실 수 있습니다. 아래 내용은 파워툴에 대해 상세하게 설명하고 있는 Visual Studio 갤러리의 영문 컨텐츠를 한글화 한 내용입니다.

    본 문서는 Productivity Power Tools의 4월 5일 업데이트 내용으로 작성 하였습니다.

     

    Visual Studio 2012 버전의 새로운 기능들

    퀵 태스크(Quick Tasks)
    파워 커맨드(Power Commands)
    컬러 프린팅(Color Printing)

    기존 기능들

    Enhanced Scroll Bar
    Middle-Click Scrolling
    Organize Imports for Visual Basic
    Custom Document Well
    Tools Options Support
    Auto Brace Completion
    HTML Copy
    Fix Mixed Tabs
    Ctrl+Click Go To Definition
    Align Assignments
    Move Line Up/Down Commands
    Column Guides
    Colorized Parameter Help

    퀵 태스크(Quick Tasks)

    퀵 태스크(Quick Tasks)는 빠른 실행(Quick Launch) 기능을 활용하여 수행할 수 있는 확장 기능의 모음입니다. 자주 사용하는 옵션과(예. 줄 번호를 on/off 하는 작업) Visual Studio의 기능을(예. 영역 축소/확대) 쉽게 사용할 수 있게 해줍니다. Quick Tasks를 실행해 보려면 빠른 실행(Quick Launch) 창에 @tasks를 입력하고 아래 옵션들을 입력해 보십시오.

    옵션

    설명

    CollapseRegions

    현재 문서의 모든 #region 태그를 축소시킵니다.

    ExpandRegion

    현재 문서의 모든 #region 태그를 확장시킵니다.

    TxtFont-

    텍스트 편집기의 글꼴 크기를 2만큼 감소시킵니다. (최소 6포인트)

    TxtFont0

    텍스트 편집기의 글꼴 크기를 기본 값인 10으로 재설정합니다.

    TxtFont+

    텍스트 편집기의 글꼴 크기를 2만큼 증가시킵니다. (최대 60포인트)

    TxtFontReset

    전체 텍스트 편집기의 글꼴 설정을 현재 테마에 기초하여 기본값으로 바꿉니다.

    EnvFont-

    Visual Studio 환경의 글꼴 크기를 2만큼 감소시킵니다. (최소값 5)

    EnvFont0

    Visual Studio 환경의 글꼴 크기를 기본 값인 9로 재설정합니다.

    EnvFont+

    Visual Studio 환경의 글꼴 크기를 2만큼 증가시킵니다. (최소값 59)

    EnvFontReset

    Visual Studio 환경의 글꼴 크기를 현재 테마에 기초하여 기본값으로 바꿉니다.

    InsTabsOff

    탭 키가 입력되었을 때 탭 대신 빈 공간을 넣습니다. (모든 언어 설정에 대하여)

    InsTabsOn 

    탭 키가 입력되었을 때 빈 공간 대신 탭을 넣습니다. (모든 언어 설정에 대하여)

    LineNumOff

    텍스트 편집기의 줄 번호를 표시하지 않도록 합니다. (모든 언어 설정에 대하여)

    LineNumOn

    텍스트 편집기의 줄 번호를 표시합니다. (모든 언어 설정에 대하여)

    PresentOff

    발표자 모드를 종료하고 이전의 텍스트 편집기와 Visual Studio 환경의 글꼴 크기로 돌아갑니다.

    PresentOn

    발표자 모드로 전환하여 Visual Studio 환경의 글꼴 크기와 텍스트 편집기의 글꼴 크기를 증가 시키고, 프로젝터를 통해서도 쉽게 보고 읽을 수 있는 폰트로 변경 합니다.

    ResetToBasic

    Visual Studio를 Visual Basic 개발환경으로 재설정합니다.

    ResetToC++

    Visual Studio를 Visual C++ 개발환경으로 재설정합니다.

    ResetToC#

    Visual Studio를 Visual C# 개발환경으로 재설정합니다.

    ResetToF#

    Visual Studio를 Visual F# 개발환경으로 재설정합니다.

    ResetToGeneral

    Visual Studio를 일반 개발환경으로 재설정합니다.

    ResetToJavaScript

    Visual Studio를 Windows 8 앱 개발을 위한 JavaScript 개발환경으로 재설정합니다.

    ResetToLightSwitch

    Visual Studio를 LightSwitch 개발환경으로 재설정합니다.

    ResetToSQL

    Visual Studio를 SQL Server 개발환경으로 재설정합니다.

    ResetToWeb

    Visual Studio를 Web 개발환경으로 재설정합니다.

    ResetToWebCode

    Visual Studio를 Web(코드 만) 개발환경으로 재설정합니다.

    SwitchCode

    필요 시 파일을 열면서 헤더파일/소스파일 혹은 디자이너/비하인드 코드 사이를 전환합니다.

    TabSize-

    탭과 들여쓰기의 크기를 2만큼 감소시킵니다. (모든 언어 설정에 대하여)

    TabSize0

    탭과 들여쓰기의 크기를 기본 값인 4로 재설정합니다. (모든 언어 설정에 대하여)

    TabSize+

    탭과 들여쓰기의 크기를 2만큼 증가시킵니다. (모든 언어 설정에 대하여)

    WordWrapOff

    텍스트 편집기의 자동 줄 바꿈 기능을 사용하지 않습니다. (모든 언어 설정에 대하여)

    WordWrapOn 

    텍스트 편집기의 자동 줄 바꿈 기능을 사용합니다. (모든 언어 설정에 대하여)

    참고: ResetTo… 명령은 Visual Studio에 설치된 언어별로 추가됩니다.

    파워 커맨드(Power Commands)

    파워 커맨드는 Visual Studio 2012의 IDE에서 사용할 수 있는 유용한 확장 기능으로 추가적인 기능을 제공합니다. 각각의 파워 커맨드는 Visual Studio의 도구(Tools)->옵션(Options)->Productivity Power Tools의 파워 커맨드 페이지에서 켜고 끌 수 있습니다. 대부분의 파워 커맨드는 기본으로 활성화 되어 있습니다.

    Format document on save
    C#으로 작성된 문서를 저장 할 때 들여쓰기나 빈 공간 그리고 다른 문자들의 형식을 자동으로 맞춰 줍니다. 기본값으로 비활성화 되어 있습니다.

    Remove and Sort Usings on save
    C#으로 작성된 문서를 저장할 때 사용하지 않는 using구문을 제거하고 남아있는 using 구문들을 정렬해 줍니다. 기본값으로 비활성화 되어 있습니다.

    Clear All Panes
    출력 창(Output Window)의 도구 모음에 모든 결과 창의 내용을 한번에 지울 수 있는 버튼을 추가합니다.

    Copy Path
    솔루션 탐색기(Solution Explorer)에서 오른쪽 마우스 버튼을 클릭하여 프로젝트, 폴더, 솔루션 등의 파일 경로를 클립 보드로 복사 합니다.

    Email CodeSnippet
    소스 코드 편집기에서 오른쪽 마우스 버튼을 클릭하여 현재 선택한 텍스트를 이메일로 보냅니다.

    Insert Guid Attribute
    클래스 정의 내에서 오른쪽 마우스 버튼을 클릭하여 선택한 클래스에 Guid 특성을 추가합니다.

    Show All Files
    솔루션 항목을 선택한 상태에서 이 기능을 수행하면 선택한 솔루션에 포함되어 있는 모든 프로젝트의 숨겨진 파일들이 나타납니다. 이는 Visual Studio의 파일 표시(Show All Files) 버튼의 향상된 기능입니다.

    Undo Close
    닫힌 문서를 다시 열고 커서 위치를 복원합니다. 편집(EDIT) 메뉴의 Undo Close 버튼을 선택하거나 Ctrl+Shift+Z 단축키를 눌러서 최근에 닫힌 문서들을 다시 열 수 있습니다. Undo Close 창이 열려 있으면 (보기(View)->다른 창(Other Windows)->Undo Close Window) 이 창의 목록에 나타난 문서를 더블 클릭해서 다시 열 수 있습니다.

    Collapse Projects
    솔루션 탐색기(Solution Explorer) 내에서 선택한 항목 이하의 프로젝트를 축소합니다. 이 ��션은 솔루션, 솔루션 폴더 그리고 프로젝트 항목에서 오른쪽 마우스 버튼을 클릭하여 실행할 수 있습니다.

    Copy/Paste Class
    클립보드로 클래스를 복사하거나 클립보드에서 클래스를 붙여 넣기 합니다. 클립보드에서 클래스를 붙여 넣을 때는 컴파일 에러를 피하기 위해 클래스의 이름을 변경합니다. 프로젝트 항목 이하의 클래스 파일을 선택한 후 오른쪽 마우스 버튼을 클릭하여 실행할 수 있습니다.

    Copy/Paste References
    클립보드로 여러 개의 참조를 클립보드로 복사하거나 클립보드에서 붙여 넣습니다. 이 기능은 참조(References) 항목에서 수행할 수 있으며, 여러 항목을 선택할 수도 있습니다.

    Copy As Project Reference
    클립보드로 프로젝트를 참조의 형태로 복사합니다. 이 기능은 프로젝트 항목을 선택한 후 실행 할 수 있습니다.

    Edit Project File
    Visual Studio내에서 선택한 프로젝트의 MSBuild 프로젝트 파일을 텍스트 편집기로 엽니다. 이 기능은 Unload Projects 기능을 수행한 후 MSBuild 프로젝트 파일을 편집할 수 있도록 해줍니다.

    Open Containing Folder
    선택한 항목의 저장 경로를 윈도우 탐색기로 엽니다. 이 기능은 프로젝트 항목을 선택한 후 실행 할 수 있습니다.

    Open Command Prompt
    선택한 항목의 저장 경로를 Visual Studio의 명령 프롬프트를 엽니다. 이 기능은 솔루션, 프로젝트, 폴더, 프로젝트 항목을 선택한 후 실행 할 수 있습니다.

    Unload Projects
    솔루션 내의 모든 프로젝트를 언로드합니다. 이는 여러 개의 프로젝트를 수정해야 하는 경우에 유용합니다. 이 기능은 솔루션 항목을 선택한 후 실행 할 수 있습니다.

    Reload Projects
    언로드된 프로젝트들을 모두 다시 로드합니다. 이 기능은 솔루션 항목을 선택한 후 실행 할 수 있습니다.

    Remove and Sort Usings
    프로젝트 내에서 불필요하게 사용된 using 구문들을 제거하고 나머지를 정렬합니다. 이 기능은 마법사를 통해 자동 생성된 using 구문들을 제거하거나 재구성할 때 유용합니다. 이 기능은 솔루션 항목이나 프로젝트 항목을 선택한 후 실행 할 수 있습니다.

    Extract Constant
    선택한 텍스트의 상수 정의 구문을 만듭니다. 상수 정의 구문을 만들면 코드의 가독성을 높일 수 있습니다. 이 기능은 코드 편집기에서 선택된 텍스트를 오른쪽 마우스 버튼을 클릭하여 실행 할 수 있습니다.

    Clear Recent File List
    Visual Studio의 최근 파일 목록(Recent File List)을 지웁니다. 이 기능을 실행하면 최근 파일 목록을 보여주는 Clear List 대화상자가 열리고 항목을 선택하여 제거할 수 있습니다.

    Clear Recent Project List
    Visual Studio의 최근 프로젝트 리스트(Recent Project List)를 지웁니다. 이 기능을 실행하면 최근 프로젝트 목록을 보여주는 Clear List 대화상자가 열리고 항목을 선택하여 제거할 수 있습니다.

    Transform Templates
    텍스트 템플릿 항목과 연관된 사용자 지정 도구를 실행합니다. 이 기능은 DSL 프로젝트 항목이나 DSL 폴더에서 실행 할 수 있습니다.

    Close All
    모든 문서를 닫습니다. 이 기능은 문서탭에서 실행 할 수 있습니다.

    컬러 프린팅(Color Printing)

    코드를 컬러로 출력할 수 있도록 지원합니다.

    image

    알려진 문제들

    • 영역을 축소해서 출력하는 옵션은 없습니다. 영역이 축소되어도 표시되어 출력됩니다.
    • 줄 번호를 출력하는 옵션은 없습니다. 줄 번호는 줄 번호 영역이 활성화 (도구(Tools)->옵션(Options) 에서 활성화 가능) 되어 있을 때에만 출력됩니다.
    • 프린트 페이지의 여백 (위/아래/왼쪽/오른쪽 여백)은 사용자가 지정할 수 없습니다. 검은색 고대비 출력 모드(high contrast black mode)를 사용하기 위해서는 수동으로 일반 텍스트의 배경색을 바꾸어 줘야 합니다. (도구(Tools)->옵션(Options) ->환경(Environment) ->글꼴 및 색(Fonts and Colors) ->프린터(Printer)에서 하실 수 있습니다.) 이는 Visual Studio의 프린터 색 설정이 배경색으로 고대비 테마의 검은색을 사용하기 때문입니다.

    Enhanced Scroll Bar

    소스코드 파일들을 탐색하는데 좀 더 나은 환경을 제공하기 위해서 이 기능은 개발자들이 코드의 중단점, 북마크, 에러, 경고, 편집내용들과 같은 아티팩트가 있는 지점을 손쉽게 보고 검색할 수 있도록 소스맵을 표시합니다. 이 기능은 아래 여러 모드를 포함합니다..

    Scroll bar mode (기본값)
    표준 스크롤바에 아이콘을 오버레이하여 아티팩트를 볼 수 있게 해 줍니다.

    image

    Map mode
    스크롤바를 마우스로 클릭하여 아티팩트들을 탐색할 수 있게 합니다. 뿐만 아니라 마우스를 스크롤바 위에 가져갔을 때 문서의 미리보기를 제공해 줍니다.

    image

    Full map mode
    개발자들이 전체 파일을 축소하여 한눈에 볼 수 있도록 해줍니다.

    image

    스크롤바 모드를 전환하기 위해서 스크롤바에서 오른쪽 마우스 버튼을 클릭하거나 도구(Tools)->옵션(Options)->Productivity Power Tools->Enhanced Scroll Bar 메뉴를 이용할 수 있습니다.

    Middle-Click Scrolling

    문서를 빠르게 스크롤하기 위해서 휠 버튼을 누른 상태에서 마우스를 이동하여 스크롤 할 수 있는 기능입니다.

    image

     

    Organize Imports for Visual Basic

    Visual Basic 개발시에 사용하지 않는 Imports 구문을 제거하고, 사용하는 Imports 구문들은 정렬하는 기능입니다.

    image

    Custom Document Well

    이 확장 기능(도구(Tools)->옵션(Options) 대화상자)을 이용하면 문서탭의 동작과 모양을 변경 할 수 있습니다.

    image

     

    · Tab Well Appearance and Behavior

    Place tabs on the Left / Top / Right / Bottom
    문서탭 모음의 위치를 변경합니다. (기본값: Top)

    Enable scrolling
    문서탭이 여러 개인 경우 문서탭 모음에 화살표 버튼을 추가하여 문서탭들을 탐색 할 수 있도록 해 줍니다.

    Show close button at the end of the tab well
    문서탭 모음을 닫을 수 있는 종료 버튼을 문서탭 모음 오른쪽에 항상 표시해 줍니다.

    · Tab Appearance

    Show Close button
    문서탭 종료 버튼을 문서탭 우측에 고정시켜 표시해 줍니다.

    Color tabs by project
    문서탭들을 프로젝트 별로 다른 색으로 구분합니다.

    image

    Color tabs by regular expression
    문서탭들을 정규식에 따라서 다른 색으로 구분합니다.

    Regular expression colors have precedence over project colors
    프로젝트 별 색보다 정규식으로 구분된 색을 우선으로 정렬합니다.

    · Sorting

    By project
    문서탭을 프로젝트 별로 정렬합니다.

    Alphabetically
    문서탭을 알파벳순으로 정렬합니다. 프로젝트 별로 정렬되어 있는 문서탭들은 프로젝트 별로 우선 정렬하고 이후에 알파벳 순으로 정렬합니다.

    · Color coding

    문서탭의 색을 프로젝트 별, 정규식 별로 지정할 수 있습니다.

    image

     

    Tools Options Support

    Productivity Power Tools의 사용자 환경이 모든 사람들에게 편리한 것은 아닙니다. 특정 기능을 끄려면 도구(Tools)->옵션(Options) ->Productivity Power Tools 창을 열고 우측에서 해당 기능을 찾으면 됩니다. Off로 설정하고 Visual Studio를 재실행 하면 해당 기능은 더 이상 로드 되지 않을 것이며 Visual Studio의 기본동작 값으로 되돌릴 수 있습니다.

    image

    Auto Brace Completion

    VB과 C# 코드에서 시작 구문을 입력하였을 때 자동적으로 코드의 종료 구문을 삽입해 줍니다. 이 기능은 아래와 같습니다.

    · (), {}, [], <>, “”, ‘’ 와 같은 구문들을 지원합니다.

    · 바깥쪽 중괄호를 탐색하기 위해서는 <TAB>키를 사용하면 됩니다.

    · C# 구문의 경우 SHIFT + ENTER단축키로 자동완성 기능(문장의 마지막에 세미콜론을 넣고 커서를 다음 줄로 이동)을 사용할 수 있습니다.

    HTML Copy (추가 정보)

    본 기능은 코드를 편집기에서 클립보드로 복사할 때 HTML 형식을 사용할 수 있게 해 줍니다. 이렇게 하면 코드를 TFS work item이나 다른 HTML기반의 컨트롤로 복사할 때 코드의 서식을 변경하지 않아도 됩니다. 클립보드로 복사하는 HTML서식을 수정 할 수도 있습니다. 도구(Tools) -> 옵션(Options) -> Productivity Power Tools > HTML Copy 창에서 원하는 동작을 지정할 수 있습니다.

    image

    Fix Mixed Tabs

    파일을 열거나 저장할 때 탭과 스페이스가 섞여있는 경우 사용자에게 이를 알립니다. 이 때 알림창에서 쉽게 스페이스를 탭으로 바꾸거나 탭을 스페이스로 바꿀 수 있습니다.

    Ctrl+Click Go To Definition

    Ctrl 키를 누른 상태에서 변수나 함수를 클릭하면 정의된 곳으로 이동 합니다.

    Align Assignments

    Ctrl+Alt+] 키를 누르면 할당 구문들을 정렬해 줍니다. 예를 들어 아래와 같은 문장을 선택했을 때 Ctrl+Alt+] 키를 누르면

    image

    아래와 같이 변경됩니다.

    image

    주의! 이 기능은 서식 설정과 충돌할 수도 있습니다. 예를 들어 C#에서 위와 같은 형태의 코드를 유지하기 위해서는 도구(Tools) ->옵션(Options) ->텍스트편집기(Text Editor) ->C#->서식(Formatting) -> 간격(Spacing) ->“선언문의 공백을 무시합니다” (Ignore spaces in declaration statements) 체크박스를 해제 할 필요가 있습니다.

    Move Line Up/Down Commands

    텍스트 편집기에서 Alt+위방향키나 Alt+아래방향키를 누르면 현재의 라인이나 선택한 라인들을 위나 아래로 옮길 수 있습니다.

    Column Guides

    코드 편집기에 수직선을 나타내어 코드나 주석의 길이가 한 화면에 적합하지 않을 수 있음을 알려줍니다. 원하는 위치에 커서를 놓고 마우스 오른쪽 버튼을 클릭하여 Guidelines->Add Guideline 메뉴를 선택하여 실행할 수 있습니다..

    Colorized Parameter Help

    C#과 VB 환경에서 매개변수 도움말 창의 내용을 강조 합니다. 도구(Tools)->옵션(Options)->환경(Environment)->글꼴 및 색(Fonts and Colors)->“Signature Help”로 시작하는 표시 항목(Display items)들을 사용하여 강조할 내용의 색을 지정할 수도 있습니다.

     

     

    지금까지 Productivity Power Tools 2012에 대해 살펴 보았습니다. 처음 설치하면 기능들이 어색하게 느껴질 수 있지만 점차 편리해지고 개발 생산성도 높아지실 겁니다. 다음 번에도 좀 더 유익한 내용으로 찾아 뵙겠습니다. 감사합니다.

Page 8 of 122 (606 items) «678910»