Redmond Developer News (RDN)에서 흥미로운 기사를 작성하였다. 이름하여 ".NET Survival Guide", 윈도우 기반 개발자들이 알아야할 8가지 필수 기술이라는 부제를 붙여 작성한 기사는 한번쯤 읽어볼 만한 내용을 담고 있다. 현재 및 향후 기술 동향에 기반하여 작성되었으며, 기사에서 언급한 필수 기술 8가지를 표로 정리하면 다음과 같다.

Skills                                                

Urgency Risk Maturity Recommendation
Rich Internet Application High Low Moderate Deploy
SOA & Web Services High High Moderate Study
Data-Driven Development High Moderate Low Study
Dynamic Languages in Managed Code High Low Low Study
Office Development Platform Moderate Low Moderate Deploy
Mad About Multi-Core Moderate Moderate Low Study
Development Test Moderate Low Moderate Deploy
Web Development High Low Moderate Study

각 주제별로 간단히 부연 설명을 하면,
1. RIA
  Adobe의 Flash와 AJAX에 대한 관심이 증폭되면서 이 영역에 대한 수요가 많아졌으며, 관련 기술로는 ASP.NET AJAX Toolkit을 통한 ASP.NET에 AJAX 적용, 그리고 무엇보다도 올해 말이나 내년 초에 정식 출시될 Silverlight 1.1을 들 수 있다. Silverlight 1.1에서는 Managed 환경에서의 개발 방식 그대로 cross-platform, cross-browser 가능한 웹 애플리케이션을 손쉽게 개발할 수 있게 된다.

2. SOA and Web Services
  SOA는 기업이 급변하는 비지니스 환경에서 살아남기 위해 필수적인 Business Agility를 가능케하는 인프라로서 주목받고 있으며, 이를 구현할 수 있는 가장 현실적인 방안으로 웹 서비스가 있다. 닷넷 기반의 개발자들이 소홀하기 쉬운 영역으로 멀티 플랫폼하에서의 아키텍처, loose-coupling, SOA Governace 등이 있다.

3. Data-Driven Development (DDD)
 DDD는 닷넷이 전통적으로 강점을 지녀왔다. Visual Studio라는 대단히 생산성 놓은 개발툴을 통해 위저드 형식의 몇 번 클릭만으로 데이터베이스 연동 웹 애플리케이션을 만들수 있는 것이 현재의 닷넷 기술이다. 한 발짝 더 나아가 .NET Framework 3.5에서 추가될 LINQ (language integrated query)는 프로그래밍 Syntax에 query syntax가 자연스럽게 엮어 한결 쉬운 개발을 가능케한다. 이러한 개발 방식은 자바 진영에서도 일부 시도되고 있지만, 자바 진영에서는 추상화 레이어를 통한 multi-tier를 추구하는 경향이 있다. Layered Architecture는 이미 널리 알려진 best practice로 통하고 있으며 이에 대해서 닷넷도 많은 노력을 기울이고 있다. 따라서 개발자 입장에서는 DDD를 통한 빠른 개발 방식과 이의 진화(LINQ)에 관심을 가지면서도 추상화 레이어를 통한 객체 모델 방식의 프로그래밍 기법(ADO.NET Entity Framework)에도 관심을 기울일 필요가 있다.

4. Dynamic Languages in Managed Code
  .NET 3.5에서 추가되는 DLR (Dynamic Langauge Runtime)과 이를 기반으로 새롭게 추가되는 다이나믹 언어들에 관심을 가져야 한다. 다아나믹 언어로는 대표적으로 Ruby와 Python이 있으며, IronRuby와 IronPython이라는 이름으로 닷넷 개발 환경에 통합되고 있다. 이러한 다이나믹 언어가 Managed 환경으로 들어오는 것은 비단 닷넷만이 아니며, 예전부터 JRuby, JPython 등의 이름으로 자바 진영에서도 활발히 추구되어 오고 있다. 
  IronRuby, IronPython외에 Managed JScript나 Dynamic Visual Basic 등도 새롭게 추가되는 다이나믹 언어이다. 다이나믹 언어의 특징은 런타임시에 클래스를 새롭게 정의되거나. 메소드가 추가 혹은 삭제될 수 있는 등 기존 언어보다 훨씩 유연하다.

5. Office Development Platform
  오피스가 기업의 업무용 애플리케이션으로 인정받으면서 VBA를 통한 확장이 많이 시도되었으며, 이제는 이를 발전시켜 VSTO (Visual Studio Tool for Office)를 내놓았으며 Visual Studio를 통해 훨씬 빠른 개발이 가능해졌고, 특히 단점으로 지적되는 아키텍처, 예를 들면 개발한 확장 기능 하나 때문에 전체 애플리케이션이 죽는 것과 같은 현상을 개선하여 훨씬 안정되고 유연한 개발이 가능해졌다. 특히 OBA (Office Business Application)라고 하는 클라이언트 접점은 오피스, 백엔드는 LOB 애플리케이션을 엮어 사용자의 업무 생산성을 향상 시키는 기법에 관심이 집중되면서 오피스 기반 개발이 새롭게 주목받고 있다.

6. Mad About Multi-Core
  애플리케이션이 멀티 코어 혹은 멀티 프로세서의 장점을 수용하도록 작성되지 않았다면 아무리 많은 프로세서가 장착되었더라도 성능 향상을 기대할 수는 없다. 따라서 이러한 하드웨어 측면의 장점을 적극 수용할 수 있는 프로그래밍 기법을 습득해야한다. 멀티 쓰레딩 기법은 기본적으로 알아야 하며, 그 밖에 향후 .NET Framework에 수용될 병렬 라이브러리(?)에 대해 관심을 갖는 것도 좋을 것이다. TPL (Task Parallel Library)는 MSDN 매거진 2007년 10월호에 게재되어 있으며, 온라인에는 아직 올라오지 않은 듯하다. System.Concurrency 네임스페이스를 통해 제공되며 자동으로 프로세서 수에 맞게 쓰레드가 분기하여 병렬연산을 수행하는 구조이다.

7. Development Test
  개발자는 자신이 작성한 코드의 품질에 대해 책임을 져야 하며, 이를 위해 다양한 기법을 적용할 수 있다. 가장 일반적인 것은 단위 테스트 자동 생성 툴을 통해 자신이 작성한 코드의 원래에 목적에 충실한 기능을 수행하는지 테스트해야한다. 아울러 정상적으로 컴파일이 끝난 코드에 대해서는 코드 분석 도구를 통해 프로젝트가 제시하는 각종 기준이나 가이드를 따르고 있는지를 검사해야 한다. 이러한 것들은 결국 프로젝트 초기부터 개발 프로세스에 품질 관련 프로세스를 연동하여 자연스럽게 코드 품질을 초기부터 유지시켜나가는 수단이며, Visual Studio Team System은 이러한 기능을 모두 제공하고 있다.

8. Web Development
  ASP.NET AJAX extension이나 .NET Framework 3.5에서 제공하는 LINQ 혹은 Silverlight 기술 등을 통해 사용자 경험을 극대화시키는 기술을 빠르고 견고하게 구축하는 것이 필요하다. 

본 포스트는 RDN기사를 번역한 것이 아니며, RDN 기사의 내용을 근간으로 최신 정보와 개인 생각을 적은 것임을 밝힌다. RDN 기사 원문은 아래 싸이트에서 찾을 수 있다.
http://reddevnews.com/features/article.aspx?editorialsid=1781
Trackbacks (1) | Comments (0)
http://acroama.isblog.net/trackback_post_35.aspx
http://e.hofgucemfi.com/hs 11/1/2008 8:54:07 PM
Pampline Recipe
Oi4agt1 | Andreas Szamosfalvi
name
password
homepage
comment
secret
< PREV 1 NEXT >