어느새  PDC09 마지막날이다. 좋은 세션들이 많았는데, 너무도 짧아서 미처 듣지 못한 것들이 아쉬움으로 남는다. 하지만, 집에 돌아가면 또다시 일상에 묻혀 언제 그랬냐는 듯 잃어버리고 살텐데.. 그러고 보니, LA 하늘을 진득하니 바라보지도 못한 채 PDC를 마감하는 듯 하다.

대부분의 개발자들에게 있어서 성능 개선이니 튜닝이니 하는 것들은 꺼려지거나 왠만한 규모의 프로젝트가 아니면 경험해볼 수 없는 것일뿐 더러, 이러한 생활이 일상화되다보니 점차 개발 영역이 아닌 것처럼 여겨지는 듯 하다. 닷넷 개발자들이 쉽게 빠지는 오류 가운데 하나는 자동화된 툴의 엄청난 코드 생성 기능과 내부의 plumbing이라고 칭하는 것들을 자동화해주기 때문에 어련히 서버가, 툴이, 혹은 누군가가 해주겠거니 하는 생각인 듯 하다. 내가 짠 코드가 CLR의 어떤 단계를 거쳐 검색되어 메모리에 로드되고 가비지 컬렉션은 어떤 때 일어나고 컬렉터가 관리하는 영역을 어떻게 구분되고 어떤 종류가 있으며, 어떻게 프로그래밍하면 GC에 부하도 적게하면서 가장 효과적인 개발 방식이 되는지에 대한 고민이 덜 묻어나는 것 같다. (사실 닷넷은 GC 매커니즘이 자바에 비해 단순하여 개발자가 관여할 부분이 적다. 여기에 .NET 4에서는 backgroud gc 개념이 도입되었다.) 이런 기본 지식 위에 내가 짠 코드가 실제 프로젝트에서 처럼 부하가 걸렸을 때 비정상적인 행동을 보이는 것은 아닌지, 에러는 아니지만 잠재적인 문제를 일으킬 가능성을 없는지 프로파일러를 사용하여 체크한다거나 그 결과를 분석하여 코드를 개선하고자 하는 일들이 점차 요구되고 있다. 내가 짠 코드가 동작할 최적의 환경을 마련할 수 있는 것 까지 최소한 개발자들이 해야 할 몫인 것이다.

더군다나, 많은 개발자들은 시스템 입장에서 프로세스들, 쓰레드들, CPU 사용량, 메모리 점유량을 조사하면서 비정상적인 지점을 발견하여 오류를 수정하는 작업은 당연히 개발 영역이 아니라, 운영 영역이라고 생각할 것이다.

하지만, 오늘 들은 CL16세션에 모인 수많은 참석자들을 보니 내 예상이 틀린것 같다. Professional Developer Conference에 오는 사람들의 대부분은 개발자일텐데, Windows Performance Toolkit 이라는 주제에 대해 방안 가득 모여 일부는 바닥에 앉아 경청하며, Q&A 시간까지 발표시간으로 해달라고 요청할 정도로 열성을 보였다.
Windows Performance Toolkit는 마이크로소프트가 10년이상 발전시켜오며 공개하고 있고 마이크로소프트 내부의 Windows 개발 조직 뿐만아니라, OEM 파트너에서도 사용하고 있는 성능 측정 도구이다. 이를 통해 측정할 수 있는 것으로는 프로세스/쓰레드 현황, 내부 프로시져콜, 디스크/파일 IO, 메모리 점유량, 네트웍 사용량 등이며, 시스템내의 리소스와 관련된 전반적인 사항을 분석해주는 도구로서 분석 결과를 토대로 어느 부분에 문제가 있는지를 찾아낼 수 있는 유용한 도구이다.

image

Windows Performance Toolkit은 현재 4번째 에디션까지 공개된 상태이며, 마이크로소프트 내부에는 5번째 에디션 개발이 끝난 것으로 알려지고 있다. 잠깐 보았지만, 분석 결과가 상당히 직관적이고 여러 리소스를 동시에 매핑시켜 한 눈에 확인할 수 있기 때문에 많은 공을 들이지 않아도 개발자들의 보조하는 유용한 툴로 사용될 수 있으며, 코드 내의 문제가 아닌 것을 코드에서 찾으려 골머리를 싸매는 일을 방지할 수 있다.

.NET 4에서 WCF의 입지는 더욱 공고히 될 것으로 기대된다. WCF Data Services (구. ADO.NET Data Services), WCF RIA Services (구. Silverlight의 .NET RIA Services), Workflow Services 등 이제는 서비스 기반의 통신 방식을 WCF를 중심으로 재편되어 명확하게 WCF의 이름아래 통일되고 있다.

이와 관련하여 Windows Server AppFabric내에서 WCF 관련 기능들을 주목할 필요가 있다. AppFabric은 IIS 확장형태이며, IIS 매니저에서 WCF/WF 서비스들을 모니터링할 수 있는 기능이 추가되었다. (이 관리 기능에서도 위에서 언급한 ETW – Event Tracing for Windows - 가 사용된다.) 특히 WCF를 이용하여 서로 다른 바인딩 정보를 노출하고 있는 서비스 사이의 라우팅 기능을 제공하고, 프로토콜이 다른 경우 중간에서 이들을 매개하기도 하는 Protocol Bridge, 서비스가 다운되었을때 발생하는 에러를 처리하면서 다른 서비스에 연계시켜주는 backup service 기능이라든지, multicast 지원 기능 등이 포함되어 있다.  좀 더 자세한 사항은 PDC09 세션 FT13을 참고하시길...

image

Windows Server AppFabric (구. “Dublin”) = 서비스 관리/모니터링 (IIS 매니저 확장) + WCF 기반의 서비스 버스 (라우팅, 프로토콜 브릿지, 서비스 백업, 멀티캐스트) + 권한 관리 + 캐시 (구.  “Velocity”) 등을 포함한다.

PDC09 기간 내내 유명 인사들과의 인터뷰가 Channel 9에 의해 촬영되었고, 삼성전자 클라우드 프린팅 사례도 Channel 9에서 촬영을 진행하였기에 조만간 Channel 9에 관련 동영상이 공개될 것으로 기대한다.

image

아쉬움을 뒤로한 채 PDC는 막을 내렸고 이제 몇 시간 후면 공항으로 출발해야한다. 오늘도 우리 윙키샘 김영욱 차장은 쌕쌕 잘도 잔다. ^^

Posted by 장현춘
TAG PDC, PDC09

댓글을 달아 주세요

[PDC09 풍경] 둘째날

새소식 2009. 11. 19. 18:22

둘째날 키노트때에도 좌석은 거의 만원인 듯 했다. 둘째날인데, 이 큰 강당이 다 찰까 ? 레이오지도 안 나오는데.. 기우였다. 좌석은 가득 메운 사람들의 표정은 마치 잠시 후 자신들에게 닥칠(?) 행운을 알기라도 하는 듯 즐거워보였다.

image

둘째날 키노트의 주연은 당연히 실버라이트다. 윈도우 7부터 시작되어 에이서 랩탑 전원 무상 제공 발표에서 정점을 이룬 분위기는 IE9의 빨라진 렌더링 속도, 높아진 표준 준수 등이 발표때에는 랩탑에서 업된 들뜬 기분에 호응하는 듯 하더니 구스리 아저씨의 실버라이트때에는 진심(?)에서 우러나는 박수가 터져나왔다.

image

실버라이트 4의 기능은 이미 많은 블로그나 트위터를 통해 전파되었을 것으로 생각되나 선 굵은 기능만 몇 개 추려보자면, 가장 호응이 높았고 그 만큼 그동안 개발자들의 요구가 많았던 웹캠과 마이크 지원을 들 수 있다. 구스리가 보여준 시연만봐도 웹캠 및 마이크가 지원됨으로 인해서 얼마나 많은 아이디어와 비지니스 꺼리가 생겨날 수 있는지 알 수 있었다. 또한 프린터를 비롯한 주변 장치에 대한 접근을 들 수 있다. 당연히 권한 상승을 요청 (elevated trust로) 하여 사용자의 허락을 득한 경우에만 가능하며 새롭게 추가된 PrintDocument 클래스를 활용하면 일반 프린터 선택 창이 뜨는 것을 볼 수 있다. 풀 스크린시 키보드 제약을 없애 입력 등이 가능해지고, 마우스 오른쪽 버튼 클릭을 허용하여 이때 발생하는 이벤트를 잡아 원하는 기능을 수행할 수 있도록 했다. 그 밖에 오프라인 DRM 지원을 통해 저작권자의 권리를 보호할 수 있으며, 아랍권 텍스트의 방향인 오른쪽에서 왼쪽으로 진행하는 글 쓰기가 가능하도록하여 기업의 솔루션 국제화에 걸림돌이 되지 않도록 했다. 또한 드래그 앤 드롭을 지원하여 좀 더 다양한 애플리케이션 개발을 가능케하고, 시스템의 클립보드를 지원하여 서로 다른 애플리케이션 사이의 카피 앤 페이스트를 제공하고 있다. 또한 COM Automation을 지원하여 워드나 아웃룩 객체를 불러내어 문서나 일정을 추가할 수도 있다. 예전에 .NET RIA Services라고 불리던 기능이 WCF RIA Services로 명명된 것으로 보인다.
발표내용을 듣고 있으니, 이제는 실버라이트가 충분히 경쟁력이 있다는 생각이 들고 시장에서 실버라이트를 바라보는 눈길이 달라지고 있음을 알 수 있다. 또한 실버라이트가 어디까지 나아갈지, WPF와는 어떻게 서로의 자리매김을 할지 궁금해진다.

아래는 등록대의 대기라인을 벗어나 길게 줄을 서서 랩탑을 받으려는 참석자들의 즐거운 기다림을 보여준다. 부럽당..

image

오후 세션에서 기억나는 것은 ADO.NET Data Services라고 불리던 것이 아마도(?) 오늘 WCF Data Services라고 명명되었는데 이에 대한 것이다. (어제까지만 해도 돈 박스가 ADO.NET Data Services라고 했는데, 오늘 세션 발표자는 ADO.NET에 선을 직 긋고 WCF라고 고치는 장면을 연출하였다.) ODATA 프로토콜로 명명된 REST 기반의 통신 규격을 준수하는 각종 서버와 클라이언트 사이의 데이터 교환을 깔끔한 데모로 많은 호응을 이끌어 냈다. REST 기반의 많은 서비스들, 가령 Windows Azure, WCF, Sharepoint Server 등이 이미 ODATA 를 지원하고 있다. ODATA는 REST 방식으로 통신을 함에 있어서, URI 기반의 미리 정해진 몇가지 규칙을 준수하도록 하고 있다. 가령 URL 끝에 $count를 붙이면 데이터의 수량을 보낸다든지...

데모에서 보연준 것은 PowerShell을 이용하여 Sharepoint 서버의 데이터에 한 줄 추가하거나, Sharepoint에서 관리되고 있는 데이터를 웹에서 혹은 WPF에서 코드 몇 줄 안쓰고 간단히 조회하는 것이나, 이를 Curl 쉘에서 수행하는 모습을 보여주기도 하였다. Q&A가 끝난 후에 많은 사람들이 발표자 주위에 모여 들어 이것 저것 질문하느라 한동안 자리를 뜨지 못하는 모습이었다.

image

Windows Azure의 Table과 Queue에 관한 Deep Dive 세션은 Deep하기 보다는 잘 알려지지 않았지만 꼭 알아야하는 것들을 다루었다. Windows Azure 스토리지에는 Tables, Queues, Blobs외에 이번에 Windows Azure 애플리케이션이 사용할 수있는 NTFS 파일 시스템 기반의 볼륨을 제공해주는 Drivers가 추가되었다. 이 세션에서 강조하는 Windows Azure의 Table을 사용하는 베스트 프랙티스는 ParticionKey와 RowKey를 적절히 사용하여 사용자의 요청을 서로 다른 파티션에 분산시킬 수 있도록 하라는 것과 여러 파티션을 한꺼번에 스캔하는 쿼리나 “Or”문을 사용하는 쿼리를 자제하고 가급적 하나의 파티션을 접근하는 다수의 쿼리를 Parallel로 수행하라는 것으로 요약할 수 있다. Windows Azure의 Queue를 사용하는 베스트 프랙티스로는 Queue 사용시 요청 순서대로 처리될 것이라고 생각하지 말라는 것과 Dequeue count를 이용하여 Poison 메시지를 제거하라는 것, 그리고 Queue를 이용하여 처리하는 메시지는 8KB 이하로 한정하며 이를 초과하는 메시지의 처리나 배치잡으로 메시지를 처리할 경우가 있을 경우에는 Blob을 사용하라는 것 등으로 요약할 수 있다.
그 밖에 Table에 새롭게 추가된 기능으로 Entity Group Transaction이 있는데, 이는 한번에 최대 100개의 insert/update/delete 등의 명령을 하나의 트랜잭션으로 배치 저리할 수 있는 것으로, WCF Data Services에서 SaveChangesOptions.Batch를 통해 이용할 수 있다.

방금 http://microsoftpdc.com에 접속해보니 세션 동영상이 하나 둘씩 올라오기 시작했다. 관심있는 분들은 방문해보시길...

image

Posted by 장현춘
TAG PDC, PDC09

댓글을 달아 주세요

[PDC09 풍경] 첫째날

새소식 2009. 11. 19. 17:52

키노트는 예전에 언급한 대로 3 Screen과 클라우드에 관한 것이다. 첫째날 키노트는 클라우드에 관한 것이었다. Windows Azure Platform에 대한 전반적인 내용은 이전에 알려진 큰 틀에서 많이 벗어난 것은 없는 듯 하다. 클라우드의 도래와 이제는 클라우드가 단순한 인프라나 운영 측면에서 합리적인 선택이라는 점에서 벗어나 개발 모델의 하나라는 점을 부각시킨다. 레이오지와 밥 머글리아, 그리고 닷넷 진영에서는 누구나 보기를 열망하는 그러나 자바 진영에서는 아무도 모르는 돈 박스까지 눈과 귀가 즐거운 시간이었다.

image

키노트때 소개된 정보 제공자들을 위한 온라인 마켓플레이스 “Dallas”도 주목할 필요가 있다. 오늘날 처럼 넘쳐나는 정보를 유통시킬 믿을 수 있는 거간꾼이 필요한 시기에 마이크로소프트가 이를 자처한 것이다. “Dallas”는 정보 제공자가 유료 혹은 무료로 제공하는 정보를 REST 기반의 인퍼페이스를 통해 배포할 수 있는 마켓 플레이스로서 때에 따라서는 간단한 클래스 템플릿도 올라인 상에서 제공할 수 있다. 국내에서도 정부의 고민 중에 하나가 정부 및 공공기관이 보유하고 있는 정보를 민간에서 활용하여 그 쓰임새를 넓히기를 바라고 있으며, 이를 가능케하는 인프라에 대한 논의를 활발히 하고 있고 12월 1일 진행될 Government 2.0 행사도 이의 일환이다. 데모 부쓰에서 키를 하나 얻었는데, 원하는 사람이 있어서 내일은 가급적 많이 받아 볼 생각이다.

역시 키노트 때 소개되었지만, 이후 세부 세션에서도 많은 관심을 받고 있는 것이 Windows Server AppFabric 이다. 이는 Windows Server와 함께 배포되는 확장 팩 정도로 보면 될 것 같고, 사용하고 싶으면 On시켜 기능을 쓰고 필요없으면 Off하면 되는 형태의 확장 기능이다. Windows Server AppFabric은 WCF/WF를 위한 서비스 버스, 사용자 권한 관리, 분산 캐시, 서비스 모니터링 및 관리 등등의 기능을 제공하며 IIS에 대한 확장 메뉴를 지원하는 일종의 애플리케이션 서버라 불릴 수 있다. 지금 데모로 판단하건데, 서비스 모니터링이나 관리 기능은 IIS 상에서 어느 정도 구현이 끝난 것 같고, 분산 캐시는 프로젝트 “Velocity”가 AppFabric Caching 기능으로 명명되어 들어가 있어 델과 어떤 매체에서 이미 검증을 마쳤다고 발표자가 자신있게 소개하고 있고, 서비스 버스나 사용자 권한 관리 기능은 이미 Azure의 .NET Services에서 구현되어 있는 것이라서 크게 어려워보이지는 않는다.

오후 세션 중에 기억나는 것은 ADO.NET Entity Framework인데, 돈 박스와 크리스가 아주 유쾌하면서도 쉽게 내용을 정리해주었다. ADO.NET을 쓰는 일반적인 코드부터 시작해서 EF를 적용하여 사용하는 방법을 비교해가면서 EF가 얼마나 개발자의 삶을 편리하게 해 줄 수 있는지를 보여준다. 닷넷 진영에서도 ORMapping 분야에 오픈 소스 프레임웍의 바람이 거센데, 비주얼 스튜디어의 막강 화력에 도움을 받는 EF가 자바 진영과는 다르게 오픈 소스의 거센 바람을 이겨낼 수 있을 것 같은 느낌 마저 든다.  데이터베이스 스키마로부터 데이터 조회 로직의 구현이 EF 예전 방식에 비해 얼마나 간단해졌는지, 반대로 ER 모델을 만들고 이로부터 데이터베이스 테이블을 만들어 roundtrip이 쉽게 구현된다는 것도 보여준다. 또한 눈길을 끈 것은, 모델링 언어 M의 비주얼 툴인 Quandrant가 등장하여 데이터 모델링 툴로서 데이터베이스 테이블의 관계 및 데이터 조회 등을 이 툴안에서 보여주어 비주얼 스튜디오 내에 Quandrant가 어떤 식으로든 자리잡을 것이라는 추측을 가능케한다.

image 

공짜로 제공되는 수많은 음료캔 속에 맥주캔도 있었으면 하는 바램이 간절했는데, 김영욱 차장이 맥주라고 건넸는데....

image

최소한 맥주 비슷한 맛이라도 있길 바랬는데, 물파스 먹는 맛이랄까... 이런 맛 나는 맥주도 어딘가는 있을 거라는 위안을 삼으며 ..

Posted by 장현춘
TAG PDC, PDC09

댓글을 달아 주세요

PDC 정식 세션 하루전에 필드의 전문가들이 진행하는 워크샵이 유료행사로 진행되었다. 많은 사람들이 10시 시작인 워크샵 참석을 위해 일찍부터 등록대를 찾았다. 오전 8시 등록을 하려는 사람들로 인해 아래 사진과 같이 이미 등록대는 줄이 형성되기 시작했다. 일찍 등록을 마친 이들은 삼삼오오 모여 참석할 세션을 논의하거나 행사장에 마련된 스타벅스에서 커피와 간단한 식사를 하면서 열심히 노트북을 쳐다보고 있다.

image

PDC 전체 등록자의 27% 정도만이 신청한 워크샵인지라 그다지 붐비지는 않았고, 행사장 곳곳에서 내일 행사 준비에 여념이 없다. 파빌리온 부스에 전시할 업체들의 바쁜 손길이 그 앞을 지키는 안전 요원들의 느긋함과 대비되어 어딘가에 갖힌 사람들처럼 느껴졌다.

참석했던 워크샵은 Azure를 이용하여 온라인 티켓 예매 싸이트를 구현하면서 느낀 점을 발표한 것이었다. 아일랜드 발표자의 강한 억양이 가뜩이나 졸려 무뎌진 영어에 대한 감각에 더해 거의 해독에 가까운 느낌을 주었다. 영어 공부좀 해야겠다는...
세션 내용은 일반적인 Azure에 대한 소개보다는 깊이가 있어서 들을만 했다. Windows Azure Platform의 각 구성요소에 대한 소개는 일체 없었고, 이들을 어떻게 사용했는지에 중점을 두었다. "클라우드를 사용하려는 사람들은 반드시 캐싱을 고려해야 한다"는 말로 시작하여 Azure에서 검증된 캐싱이 없다는 아쉬움도 피력하고, ASP.NET 의 output cache와 더불어 자체 구현한 캐싱 모듈을 Azure에서 연동하는 아키텍처도 소개하고.. Performance와 Scalability를 위한 파티셔닝의 의미와 Azure의 각 구성요소에서 제공되는 파티셔닝의 종류 및 간단한 데모도 곁들여 열정적으로 설명을 했다.

image 

애저가 제공하는 버추얼 이미지는 CPU 갯수에 따라 small, medium, large, extralarge (아마도..)의 4종류로서 각각 1, 2, 4, 8개가 제공되는데, 8개의 CPU를 가진 worker role이 무조건 좋을 거라는 착각에 무조건 선택하지 말고 자신의 애플리케이션 CPU 갯수에 좌우되는지 아닌지를 판단해볼 필요가 있다는 이야기와 간단한 데모도 곁들였다.

앞에 앉아 발표자의 입 모양이라도 보면 좀 영어 해독이 좀 쉬울까 했는데, 그것도 별 소용이 없고, 발표자가 하고자하는 내용을 다 이해하지 못한 것이 좀 아쉽다. PDC 기간 중에 발표자료와 데모 소스를 공개하겠다고 하니 Azure에 관심있는 사람들에게는 좋은 자료가 될 것으로 생각한다. 어쨌거나 Azure가 상용 서비스를 앞두고 실제 프로젝트에 사용할 수 있을 정도의 의미있는 모습을 보여주는 것 같아괜찮은 자리였다고 생각된다.

헌대, 내일 키노트 세션의 주제가 Azure보다는 Silverlight에 방점이 찍힌 것 같아서, 이것이 어떤 의미인지 한번 들어보고 판단해봐야 할 것 같다.

윙키샘 김영욱 차장은 역시 오늘도 잘 잔다... 쌕쌕..

Posted by 장현춘

댓글을 달아 주세요