약간은 formal한 글을 포스팅하고 싶었지만, 차분히 앉아 이런 저런 형식을 갖춰가며 한편의 논문 쓰듯 글을 올린다는 것이 점점 불가능해짐을 느낀다. 블로그의 어원이 의미하듯 그냥 로그 남기듯 그때 그때 쓰고 싶을 글을 끄적임이 더 어울리는 것인지도 모른다.

미팅을 준비하다가 지루하여 잠시 twitter에 올라온 글들을 보다 Channel9의 트윗 중 MEF에 관한 글을 보고나니, 한번쯤은 정리하고자 했지만 큰맘 먹고 다가서야할 것 같은 느낌에 미루던 것인지라 그냥 편한 마음으로 들어보았다.

MEF가 무엇인지 알고 싶지만 많은 시간을 투자할 수 없는 분이라면 20여분 짜리 영문이지만, 아주 천천히 또박 또박 강의하는 아래 동영상을 추천한다.
http://channel9.msdn.com/shows/10-4/10-4-Episode-26-Creating-Extensible-Applications-with-the-Managed-Extensibility-Framework/

소개와 더불어 MEF를 통해 어떻게 코드가 만들어지는지를 보고싶은 분이라면 아래 Codeplex의 짤막한 글들을 참고하면 좋을 듯 하다.
http://mef.codeplex.com/wikipage?title=Guide&referringTitle=Home

영어라면 질색인 분이라면 Visual Studio 2010 공식 팀 블로그에 엄준일씨가 올린 글을 보면 좋을 듯 하다.
http://vsts2010.net/category/.NET%20Framework%204.0/Managed%20Extensibility%20Framework 

MEF가 처리하고 싶은 세상의 문제는 애플리케이션을 개발함에 있어서 수많은 모듈로 인한 복잡성을 관리하고, 개발에 필요한 모듈을 찾아 적절한 시점에 생성하는 수고를 개발자가 아닌 MEF가 처리할 수 있게 해주는 것이 아닐까한다.

마이크로소프트가 Unity라는 DI 컨테이너를 내놓기 이전부터 닷넷 오픈 소스 개발자 생태계내에서는 이미 dependency를 줄여주어 유지보수를 용이하게 하는 많은 프레임웍이 생겨나 번성해왔다. 대표적인 것으로는 StructureMap, Windsor, Spring.net, NInject, Autofac 등.. 이런 즈음에 마이크로소프트가 닷넷 프레임웍 4.0에 기본으로 포함될 DI 컨테이러라고 할 수 있는 MEF 라이브러리를 내놓고 있는 것이다. 어찌 보면 개발자 입장에서 또 하나의 선택의 가짓수가 늘어났다고 할 수 있지만, 시장의 반응은 어떨지...

1. 시장에서 오픈 소스 프레임웍인 NHibernate, iBatis.NET이 세를 불리고 있을 즈음 LINQ, Entity Framework 등을 마이크로소프트가 내놓았을 때, 그다지 인정을 받지 못하다가  조만간 정식 출시될 새 버전의 Entity Framework에 대해서는 개발자 사이에 기대가 점차 높아지는 것을 느낄 수가 있었는데...

2. 아울러 시장에서 StructureMap, Windsor를 거쳐, Spring.net이 DI 컨테이너로 급부상하던 즈음에 마이크로소프트가 ObjectBuilder에 Wrapper 씌여 Unity를 내놓았다. 버전이 올라갈수록, Enterprise Library를 선호하는 사람일 수록 점차 Unity에 빠져드는데.... 한술 더떠 아예 닷넷 프레임웍에 기본 탑재되는 DI 기능의 라이브러리를 출시한다는데...

얼마전 모회사의 아키텍트가 했던 섬뜩했던 말이 떠오른다.

"마이크로소프트가 이것 저것 다 내놓는데, 굳이 시장에 있는 오픈 소스 프레임웍들이 필요할까요 ?"

아직까지 공고하지 못해 개발자 생태계인지라 마이크로소프트라는 일개(?) 회사에 의해 휘둘리는 것이 아닌지... 그렇지 않으리라 기대해본다.

Posted by 장현춘

마이크로소프트가 2년에 한번씩 IDC를 통해 엔터프라이즈에서 미션 크리티컬 애플리케이션의 운영 상황을 조사한 결과를 공개하고 있는데, 며칠전 2009년 8, 9월에 진행한 조사 결과를 발표했다.

image

"Mission Critical Application Platform Study"라는 이름으로 진행한 조사는 다음과 같은 절차를 통해 진행되었다.
- 1,000명 이상의 임직원을 가진 회사로 미국, 영국, 프랑스, 독일 기업을 대상으로 하였다.
- 마이크로소프트는 참여자의 신분이나 선택에 일체 관여하거나 영향력을 행사하지 않았다.
- 참여자는 메일이나 전화를 통해 엄격한 선발 기준을 통해 선별되었다.
- 참여 기업은 임직원수 1,000명 이상 기업이며, 참여 기업의 60%이상의 기업이 임직원 5,000명을 넘었고, 참여 회사 전체의 평균 임직원 수는 6,000명이었다.
- 참여자는 IT Decision Maker, Developer 혹은 Architect이어야하며, 조직내에서 기술 관련된 결정에 어느 정도 영향력을 행사하는 사람들이다.
- 회사당 1명씩 조사를 하였다.
- Analyst나 시장 조사 전문가는 배제되었다.

이러한 절차에 의해 총 920개 기업이 조사에 참여하여 다음과 같은 결과가 도출되었다.
1. 현재 Mission-critical application이 가장 많이 deploy되어 있는 OS는 Windows Server (52.7%)이다. (23 page)
2. 현재 Mission-critical application이 가장 많이 배포되어 있는 application server는 Windows Server & .NET (54.1%)이다. (35 page)
3. 규모에 상관없이 조사 대상 기업 전부에서 Mission-critical application 구현시 닷넷이 자바보다 많이 사용되었다. (49 page)
4. 자바로 구현된 Mission-critical application이 가장 많이 deploy된 OS는 Windows Server (46%) 이다. (51 page)
5. primary project에서 포털 솔루션을 사용하는 경우 가장 많이 적용된 솔루션은 Sharepoint Server이다. (72 page)
6. primary project에서 사용하는 메인 데이터베이스로는 SQL Server가 가장 많이 사용한다. (81 page)
7. primary project에서 웹 서비스 벤더로 가장 많이 사용하는 벤더는 마이크로소프트이며 (85 page), SOA 기반의 primary project 시에도 가장 많이 사용하는 벤더로  역시 마이크로소프트가 선정되었다.  (90 page)

image

보고서의 뒷부분에서는 Mission-critical application 현황을 지난 2005, 2007, 2009년에 각각 조사하였는데, 그 결과를 비교하여 그 추이를 한 눈에 볼 수 있도록 제공하고 있다.

image

아울러, 자료 중에는 자바나 자바 WAS 각각에 대한 조사 결과도 포함하고 있어 자바 쪽 정보가 궁금한 사람도 보면 좋을 듯 하다. 가령, 회사 규모별, 나라별 가장 많이 사용하는 자바 개발 프레임웍은 무엇인지 등...

2009년 조사 보고서는 여기에서 다운로드 할 수 있다.
2007년 조사 보고서는 영문은
여기, 한글은 여기에서 다운로드 할 수 있다.

Posted by 장현춘