본문 바로가기

.Net Technology/WCF

(1) 닷넷 프레임워크 3.0의 소개

월간 마이크로소프트웨어에 기고한 강좌입니다.

Windows Vista가 드디어 RTM 버전까지 발표가 되었다. 닷넷 프레임워크 3.0도 Vista에 종속적이기 때문에 Windows Vista와 더불어 RTM 버전이 발표된 것이다. 그럼 Windows Vista와 닷넷 프레임워크 3.0은 어떤 관계를 가지고 있는지 또한 닷넷 프레임워크 3.0의 구조는 어떻게 되었는지 이번 강의에서 살펴볼 것이다, 더불어 WCF의 정의와 기본적인 아키텍쳐를 살펴 보도록 하겠다.

닷넷에 열정을 가지고 여러 세미나에 두루 참석하거나 MS에서 발표한 기술자료를 열심히 살펴 본 독자라면 WinFX라는 코드명을 들어 본 적이 있을 것이다. 얼마전 WinFX는 닷넷 프레임워크 3.0으로 이름을 바꾸고 이제는 사용되지 않는 명칭이다. 다음 그림은 새롭게 발표된 닷넷 프레임워크의 구조다.  



(이 그림은 초창기 닷넷 3.0이 발표될 당시의 그림으로 WCS로 표기가 되어 있지만 실제로 WCS는 사용하지 않고 Card Space라는 명칭을 사용한다)

예전에 WinFX는 닷넷 2.0 기반에서 작동하게 된다고 소개해왔다. 하지만 닷넷 프레임워크3.0은 WPF, WCF, WF, CardSpace라는 새로운 기술들이 추가돼 더 완벽한 프레임워크로 변모했다. 닷넷 프레임워크가 동작하는 환경은 다음과 같다. 

● Windows Vista

● Windows "Longhorn" Server

● Windows XP SP2, Windows Server 2003 SP1, Windows Server 2003 R2

새롭게 발표되는 비스타나 Longhorn 서버에서는 닷넷 프레임워크3.0이 장착되어 있다. XP에서는 서비스 팩3에서 지원 될 예정이라고 한다. 비스타의 출시는 Win95 이래로 가장 큰 런칭이 된다. 무엇보다도 사용자 경험의 새로운 변화가 그 어느 때 보다 크다. 윈도우2000을 사용해 왔던 사용자가 윈도우 XP를 다루는 것은 큰 어려움이 없었지만 윈도우 Vista는 그렇지 않다. 새로운 사용자 경험이 크게 변화된 것 뿐만 아니라 가젯과 같은 새로운 개념들이 도입되기 때문이다. 윈도우 비스타에는 기본적으로 닷넷 프레임워크 3.0이 설치되어 있다. 만약 윈도우 비스타의 세대가 도래하게 되면, 그동안 번거로웠던 닷넷 프레임워크의 배포 문제가 해결될 것이다. 또한 그만큼 닷넷 개발자들을 많이 필요로 하게 될 것이며, 그만큼 닷넷 프로그래머의 가치는 높아질 수밖에 없다. 그렇기 때문에 닷넷 개발자들은 윈도우 Vista를 기대해야 된다는 것이다.


[Windows Vista의 모습]


필자 메모

주위의 개발자들을 보면 닷넷 프레임워크3.0의 탄생을 시련으로 받아들이는 개발자가 많이 있다. Microsoft사의 .NET을 사용하고 있는 개발자라면 지금의 현실이 다소 혼란스럽고 어려운 시기일지도 모른다. 이유는 닷넷2.0이 탄생한지 1년채 지나지 않아서 닷넷 3.0의 정식 발표가 될 예정이기 때문이기도 하다. 하지만 .NET을 주된 업으로 삼아 개발하고 있고, 적어도 자신의 가치를 인정받는 개발자가 되기를 원한다면 발 빠르게 움직여 변화를 대비해야 할 것이다. 개발자는 생각과 동시에 실천이 이루어져야 한다. 즉, 닷넷 프레임워크3.0 개발 환경을 설정해보고 .NET 3.0관련 기술 문서나 실행 예제를 보면서 한 번쯤은 실행해 보라는 것이다. 닷넷 3.0을 설치하는데 큰 공수가 드는 것이 아니고, 예제를 실행하는데도 크게 어려울 것이 없다. 단지, 이걸 알고 있으면서도 움직이거나 움직이지 않거나의 차이가 되는 것이다. 일찍 일어나는 새가 먹이를 먼저 잡듯이 먼저 발 빠르게 대응하고 있는 개발자에게 기회는 반드시 더 많이 찾아오기 마련이다.


 

새롭게 추가된 기술

닷넷 프레임워크 3.0에 새롭게 추가된 기술들을 간단하게 요약해 보도록 하겠다. 단 WCF는 이번 강의실에서 상세하게 알아볼 것이기 때문에 WPF, WF, CardSpace만 설명 하도록 하겠다.

WPF(Windows Presentation Foundation)

WPF는 닷넷 프레임워크의 가장 최전방에 있는 UI 기술이다. 윈도우 비스타는 기본적으로 3D 기반에서 동작이 된다. 그렇기 때문에 당연히 비스타 환경을 충족 시켜줄 수 있는 개발도구가 필요 할 것이다. 바로 WPF가 UI의 혁명적으로 등장한 3D 개발 기술이다. <화면 2>는 WPF를 실행한 화면이다. 

 

 
이렇게 화려한 UI를 가지고 있는 기술이 바로 WPF이다. WPF는 XAML이라는 XML을 이용해서 UI를 정의하고, 코드는 CS로 작성하게 된다.

WF(Windows Workflow Foundation)

WF는Windows Workflow Foundation의 약자이다. 그럼 Workflow는 무엇인가? 이 개념을 잘 알고 있다면 WF를 이해하기 쉬울 테지만, 개발자들이 쉽게 이해하고, 적용할 수 있는 개념은 아니다. Workflow는 ‘작업 흐름’이라는 의미를 가지고 있다. 쇼핑몰을 예를 들어 보겠다. 물건이 거래가 되기 위해서는 물건을 구매하고, 입금을 확인하고, 배송을 하고, 배송확인을 받는 순서를 거쳐야 한다. 이러한 쇼핑물의 흐름이 바로 Workflow가 되는 것이다. WF는 이러한 작업 흐름을 간단하게 디자이너로 드래그 & 드랍으로 구현할 수 있다. <화면 3>에서 Visual Studio.NET에서 WF를 이용해 Workflow를 구축하고 있다.

 

WF로 작업을 하면 Workflow를 명확하게 정의 할 수 있다. 또한 Workflow가 변경 되었을 때 코드를 수정하지 않아도 간단하게 드래그 만으로 작업 흐름을 수정할 수 있기 때문에 쉽게 유지 보수를 할 수 있다는 특징을 가지고 있다고 보면 될 것이다.
 

Windows CardSpace

얼마전 한 컨퍼런스에서 빌 게이츠는 "패스워드 시대의 종말이 올 것이다" 라는 선언을 했다. 그리고 그에 대한 해결책으로 ‘인포카드’를 소개했다. 인포카드의 개념은 온라인상에서 자신의 신원정보를 제시하는 하나의 인증수단이라고 볼 수 있다.

보통 대학교 도서관을 이용하려면 학생증과 같은 신원확인 카드를 가지고 신원확인을 한 후에 도서관을 이용할 수 있다. 도서관뿐만 아니라 그 학교의 학생을 증명하는 용도로 사용하게 된다. 인포카드는 바로 이러한 카드처럼 자신의 신상정보를 인포카드에 담아두고 온라인에서 요구하는 신원 인증을 통일해 보겠다는 것이다. 포탈 사이트에서 하나의 아이디만 갖고, 인증을 받으면 메일이나 카페, 블로그 등등 여러 서비스들을 동시에 인증을 받아서 사용할 수 있게 된다. 하지만 이건 포탈이라는 울타리 내에서만 가능할 뿐이다. 다른 포탈 사이트와 연계가 되는 것은 아니다. 하지만 인포카드는 전 세계의 웹을 통합해 보겠다는 당찬 시도를 하게 된 것이다. <화면 4>는 윈도우 비스타의 인포 카드를 캡쳐한 화면이다.


[비스타의 인포카드 인증화면]

MS는 이전에 패스포트로 온라인 계정을 통합해 보려고 했지만 실패한 전략이 되었다. 그리고 이번에 인포카드는 두 번째 시도가 되는 것이다. 그러면 Card Space는 무엇인가? WCS는 Windows CardSpace의 약자로 WCF를 이용해서 통신을 하는 부분을 담당하는 부분이 바로 이 Card Space가 된다.

 

개발 환경 설정하기

개발 환경을 설정해 보도록 하겠다. 필자가 책을 쓰고 있는 당시의 상황은 Visual Studio.Net 2005가 발표 되었고 닷넷 프레임워크 3.0은 베타만 나와 있는 상황이기 때문에 먼 훗날 개발환경 설정 방법이 달라 질 수 있다. 개발 환경을 설치 하기 위해서는 다음과 같은 프로그램을 차례대로 설치 하여야 한다. MS 다운로드 사이트에 가면 다음과 같은 프로그램들을 다운 받을 수 있을 것이다.

 .NET Framework 3.0 Setup.

 Windows SDK(Software Development Kit) Setup

 Development Tool for .NET Framework3.0 Setup

이 설치는 VS.NET 2005가 설치 된 후에 진행해야 된다. 주의할 점은 같은 버전의 개발Kit 들을 설치해야 한다. 예를 들어서 .Net Framework는 베타1인데 Windows SDK 는 베타2이거나 한다면 올바른 개발 환경을 설정할 수가 없다. 앞서서 진행한 WPF의 강좌에서도 설치 방법을 소개하고 있고, 많은 블로그들 에서도 이런 설치 하는 방법에 대해서 많이 설명을 해주고 있기 때문에 이번 강좌에서는 따로 소개하지 않는다.