IT's Fun2012.11.07 05:15
언제 부터인가 마이크로소프트의 행사는 예전만큼 흥분감을 주지 못하고 있습니다. 특히 작년 정도까지는 마이크로소프트가 이대로 무너지는 것이 아닌가 할 정도로 무력함을 많이 보여왔습니다. 그렇지만 저력의 회사인 만큼 2012년 하반기로 접어들면서 마이크로소프트가 쏟아내는 신제품과 혁신의 공세가 생각보다 수위가 많이 높아지고 있는 것 같습니다. 윈도8 에 대한 긍정적인 시장 반응과 윈도폰8 및 Surface 제품군들을 통한 N-Screen 의 공략에 자신감을 보이면서 최근 행사들에서는 예전 만큼은 아니더라도 다시 활발해진 그들의 모습을 볼 수 있어서 무척 좋은 것 같습니다.

몇 일전 열린 마이크로소프트의 개발자 행사인 Build 에서도 윈도8이나 윈도폰8과 관련한 많은 세션들이 있었습니다. 새롭게 내놓은 플랫폼에 대하여 개발자들이 이해하고 개발에 뛰어들게 만드는 것은 플랫폼 제조사로서 당연한 수순입니다. 그런데 이번 행사에서 조용히 출시되어 사람을 흥분케 하는 서비스가 있었으니 바로 온라인 ALM (Application Lifecycle Management) 도구인 Team Foundation Service 의 런칭이었습니다. 이 서비스는 마이크로소프트가 제공하는 협업 도구인 TFS (Team Foundation Server) 를 온라인 서비스화 했다고 보면 일단 전체 윤곽의 이해가 쉽습니다. 하지만 우리가 알고 있는 설치형 TFS 이상의 가치를 제공해주는 서비스로 출시 되었다는 것이 핵심입니다

 
Team Foundation Service 에 접근하기 위해서는 http://tfs.visualstudio.com 으로 접속을 하면 됩니다. 깔끔하고 정갈한 웹 사이트가 개발자를 더 흥분되게 만드는 것 같습니다 -_-;;; 랜딩 페이지의 데몬 이미지가 보여주는 내용이 Team Foundation Service 를 이해하는 시작이자 전부입니다. 마이크로소프트의 개발 플랫폼은 Visual Source Safe 를 시작으로 Team Foundation Server 에 이르기까지 다양한 협업도구들을 제공해 왔습니다. 하지만 뭔가 일관화 되어 있지 않다는 느낌이 강하다보니 사람들은 저마다의 스타일로 SVN, Nant, Cruise Control 등을 조합해서 사용해 왔습니다.

Team Foundation Service 가 추구하는 것은 이런 일련의 소프트웨어 개발 과정을 하나의 서비스를 통해서 모두 제공하겠다는 의지입니다. 1년여간의 tfspreview 라는 이름으로 테스트를 거쳐 만들어진 만큼 필요한 요소들과 편리함이 구석구석에서 묻어나는 느낌입니다. 개발에서부터 개발간의 협업, 형상관리와 빌드, 테스트에 이르는 전 과정을 서비스를 통해서 편리하게 제공받을 수 있습니다. 애자일 (Agile) 개념을 많이 녹여낸 협업 도구까지 제공되고 있어 무척 매력적입니다.

 
Team Foundation Service 가 가진 다양한 장점 중 특히 눈에 띄는 것은 여러 개발 환경을 지원한다는 점입니다. 원래 TFS (Team Foundation Server) 는 비주얼 스튜디오를 이용하는 개발 환경만 지원해 왔습니다 (맞죠? 혹시 아니라면...) 하지만 이번에 출시한 서비스를 통해서 이클립스 뿐만 아니라 맥 환경의 Xcode 까지 지원하고 있어 모든 개발자를 아우르는 ALM 도구로 성장한 느낌입니다.

 
서비스를 이용하는 개발 프로젝트는 통합 대시보드를 통해 프로젝트에 참여하고 있는 구성원들과의 협업을 원활하게 수행할 수 있습니다. 이슈 트래킹 기능은 기본이고 빌드에 대한 다양한 현황을 한눈에 볼 수 있을 뿐 아니라 일련의 개발 과정을 하나로 통합하여 볼 수 있어 특히 프로젝트 관리자에게 아주 효과적인 도구가 될 것으로 예상됩니다. 최근 마이크로소프트가 좋아하는 타일 형태의 UI 는 깔끔함을 더해주고 있습니다.

 
소프트웨어 개발 방법론에서 많이들 사용하고 있는 애자일 (Agile) 방법론. Team Foundation Service 는 협업 도구의 핵심으로 애자일 방법론에 대한 지원을 하고 있습니다. 스프린트 (Sprint) 라던가 보드 기능을 통해 손으로 그리고 오프라인에서 많이 해왔던 애자일 방법론의 적용을 모니터를 통해서 할 수 있다는 점도 무척 매력적입니다. 물론 기존에 이런류의 소프트웨어가 많이 있었지만 시장을 두드리고 있는 윈도8, Surface 단말 등에서 포스트잇을 보드상에서 이리 저리 옮기면 제대로 오프라인 애자일 보드의 느낌이 나지 않을까 싶습니다 ㅋ.

 
마이크로소프트의 특장점 중 하나인 자세한 사용 안내는 서비스 전반을 이해하기 위해 꼭 살펴보아야 하는 페이지입니다. 시작과 코드 개발, 지속적인 빌드와 테스트 그리고 협업. 프로젝트를 수행하는데 필요한 다양한 요소들이 잘 정돈되어 있고 플랫폼 혹은 개발 환경별로 달라지는 설정 방법에 대한 안내도 자세하게 되어 있습니다. 유심히 살펴보시면 발견하시겠지만 마이크로소프트가 제공하는 클라우드 서비스 Azure 로의 연동이 이 서비스가 지향하는 궁극적인 목표이기도 합니다. 

현재까지 5명의 유저를 등록할 수 있는 무료 구독 프로그램만 출시한 상태라 실제 상용 서비스가 시작되면 가격이 어떻게 될지 가늠하기는 좀 힘듭니다. 하지만 자사의 모든 역량을 활용할 수 있도록 서비스를 출시했다는 의미가 무척 크고 그간의 개발자 지원 정책을 근간으로 볼 때 비싸지 않은 가격으로 상용 서비스를 하지 않을까 추정을 해봅니다. Product 부터 Service, Platform 까지 올 라운드 플레이어로서 마이크로소프트의 진가를 보여주는 하나의 역작이라는 생각이 듭니다. 현재의 업무를 접고 다시 개발자로 돌아가고픈 마음이 드는건... 역시나 뼛속까지 개발자이기 때문이 아닐까 싶네요!


- NoPD - 
저작자 표시
신고
Posted by 노피디
IT's Fun2012.10.11 06:37
새로운 컴퓨터 언어를 공부하실 때 어떤 방법을 사용하시나요? 공부하는 스타일에 따라 다르겠지만 책을 사서 보시는 분도 계실거고 해당 언어를 제공하는 공식 웹 사이트나 커뮤니티가 제공하는 학습 가이드를 따라하시는 분도 있을 겁니다. 물론 컴퓨터 언어에 초천재적인 감각을 가지고 계셔서 제공되는 개발 도움말만 가지고도 훌륭하게 언어를 습득하는 분도 더러 있습니다.

무언가 모르는 것을 배울 때 가장 좋은 것은 지속적인 학습입니다. 그렇지만 학생이 아닌이상 (학생도!?) 먹고 살기 바빠서 매일 한~두시간씩 시간을 내어 공부를 한다는 것은 무척 힘듭니다. 요행히 새롭게 참여한 프로젝트가 새로운 언어를 이용한다고 하면 아주 나이스한 경우이겠지만 그게 아니라면 사실 수박 겉핥기 식으로 구글신의 힘을 빌리는 것이 대부분일 겁니다.

Codeacademy, 웹 기반 콘솔로 배우는 인터렉티브한 강의

Codeacademy (http://www.codeacademy.com) 는 이런 현실적인 불편함과 어려움을 해소시켜줄 수 있는 양방향 인터렉티브 강의 플랫폼입니다. HTML5 기반으로 만들어진 콘솔 도구와 실행 도구, 간단한 웹 기반 Repository 까지 제공하고 있어 말 그대로 웹 브라우저만 있으면 강의를 만들수도 있고 만들어져 제공되는 강의를 단계별로 학습할 수도 있는 플랫폼입니다.


 
Codeacademy 는 친구들과 함께 경쟁하며 공부할 수 있는 환경을 제공합니다. 학습에 있어서 그 무엇보다 좋은 효과를 볼 수 있는 방법은 경쟁이지요. 같은 코스를 들으면서 누가 더 많은 진도를 나갔느냐 하는 경쟁은 마치 최근에 열풍을 일으키고 있는 애니팡과 같은 효과(과연...;;;)를 낼 수 있을거라는 생각을 해봅니다.

아직까지 Codeacademy 가 제공하고 있는 언어와 과정은 그리 많지는 않습니다. 하지만 플랫폼 자체가 오픈되어 있고 무료로 강의를 올리고 올라온 강의를 수강할 수 있는 구조이기 때문에 앞으로 얼마나 많은 전문가들이 합류하여 재능 기부를 하느냐에 따라 그 규모는 상상할 수 없을 정도로 커질 수 도 있을 것 같습니다. 현재는 Javascript 와 Python, Ruby, Web Fundamentals, jQuery 등이 제공되고 있는 상태입니다.

 
이런 플랫폼이 줄 수 있는 강점은 최근 클라우드 개발 환경이 이슈가 되면서 Cloud9 (http://www.cloud9.com) 과 같은 웹 IDE 가 급속하게 보급되고 있는 것과 같은 선상에 있다는 점입니다. 처음 Cloud9 IDE 를 접하면 뭔가 어렵고 어색하다는 느낌을 받지만 조금만 익숙해지면 언제 어디서든 웹에 접속만 할 수 있으면 내 소스코드, 내 런타임 환경을 쓸 수 있다는 메리트에 푹 빠질 수 밖에 없습니다. Codeacademy 의 모든 인터렉티브 환경은 웹 기반으로 이루어져 있어 그 편리함이 무척 뛰어납니다.

 
책으로 API 스펙을 보고 샘플 코드를 눈으로 본 다음 개발 환경으로 이동해서 입력해 보는 것이 아니라 Codeacademy 는 다양한 Exercises 를 중심으로 강의를 구성하여 제공하는 형태를 취합니다. 개별 Exercise 들은 단순한 예제를 직접 입력하고 Step by step 으로 점진적으로 구체화해 나가는 방법을 가이드하고 있습니다. 강의가 얼마나 알차게 구성되었냐의 이슈이겠지만 그런 형태의 강의 구성이 가능하도록 Teach 기능요소가 준비되어 있다는 것으로 이해해도 될 것 같습니다.

 
자신의 학습 진도표를 확인할 수 있는 Summary 페이지는 학습 의욕을 불러 일으킬 것 같습니다. 재미있는 것은 Badge 시스템이 있다는 점입니다. 포스퀘어 류의 체크인 앱을 쓰시는 분들은 Badge 의 개념이 생소하지 않을 겁니다. 마치 보이스카우트, 걸스카우트 활동을 하면서 어떤 액티비티에 참여하면 그에 대한 증표로 주던 Badge 처럼, 학습의 특정 조건을 만족시키는 Badge 를 획득해 나갈 수 있는 스스로에 대한 리워드 시스템을 갖추고 있다고 보면 적절할 것 같습니다

 

실제 Exercise 에 들어가면 위와 같은 인터렉티브한 환경을 경험할 수 있습니다. 왼쪽에 나온 설명을 읽고 필요한 기능 요소와 요구 조건을 만족시키는 코드를 간단하게 우측 영영긔 웹 IDE 에서 입력하고 실행하면 되는 구조입니다. 저장 기능이 제공되고 있어 언제든 필요한 버전의 코드를 다시 불러와서 Exercise 완수에 활용할 수 있다는 점도 눈에 띄는 기능입니다.

언제 어디서든 공부하자

언어를 습득하는 가장 좋은 방법은 앞서 이야기 한 것처럼 반복입니다. 특히 컴퓨터 언어의 경우는 눈으로만 보는 것은 한계가 있습니다. 반드시 손으로 코드를 입력하고 실행을 해보는 노력이 필요합니다. 뭔가 배우기 위해 개발환경을 만드는데 시간을 쏟고 지쳐버리기 보다 쉽게 웹사이트에 접근해서 코드 한줄 더 입력해 보는 것이 더 좋을 것이라는 것은 너무나 자명한 사실입니다. 지치기 전에 코드 한줄 더 입력하세요. Codeacademy 에서 말이죠~


- NoPD - 
저작자 표시
신고
Posted by 노피디

티스토리 툴바