Windows Communication Foundation 서비스 및 Visual Studio의 WCF.NET 데이터 서비스

Visual Studio 2008에서는 분산 응용 프로그램을 작성하기 위한 Microsoft 기술인 WCF(Windows Communication Foundation) 및 WCF Data Services를 사용하는 데 필요한 도구를 제공합니다. 이 항목에서는 Visual Studio의 측면에서 서비스를 소개합니다.

WCF의 정의

WCF(Windows Communication Foundation)는 안전하고 신뢰할 수 있으며, 트랜잭션 및 상호 운용이 가능한 분산 응용 프로그램을 만들기 위한 통합 프레임워크입니다. 이전 버전의 Visual Studio에는 응용 프로그램 간의 통신을 위해 여러 가지 기술들이 사용되었습니다.

예를 들어 모든 플랫폼에서 액세스할 수 있는 방식으로 정보를 공유하려는 경우에는 ASMX 웹 서비스라고도 하는 웹 서비스가 사용되었으며, Windows 운영 체제에서 실행되는 클라이언트와 서버 사이에 데이터를 이동하는 작업만 필요한 경우에는 .NET Remoting이 사용되었습니다. 또한 트랜잭션 통신이 필요한 경우를 위한 엔터프라이즈 서비스(DCOM)나 큐 대기 모델에 필요한 메시지 큐(MSMQ라고도 함)도 사용되었습니다.

WCF는 이러한 모든 기술의 기능을 하나의 통합된 프로그래밍 모델에 결합하여 분산 응용 프로그램 개발 작업을 간단하게 만듭니다.

WCF Data Services의 정의

WCF Data Services는 데이터베이스와 직접 상호 작용하여 GET, POST, PUT, DELETE 등과 같은 표준 HTTP 동사를 사용하여 데이터를 반환할 수 있는 서비스입니다. 일반적으로 WCF Data Services는 데이터베이스에서 레코드를 만들거나 업데이트 또는 삭제하는 데 사용되는 응용 프로그램에 적합합니다. 자세한 내용은 ADO.NET Data Services Framework를 참조하십시오.

WCF 프로그래밍 모델

WCF 프로그래밍 모델은 WCF 서비스와 WCF 클라이언트라는 두 엔터티 사이의 통신을 기반으로 합니다. 이 프로그래밍 모델은 .NET Framework의 System.ServiceModel 네임스페이스에 캡슐화됩니다.

WCF 서비스

WCF 서비스는 서비스와 클라이언트 사이의 계약을 정의하는 인터페이스를 기반으로 하며 다음 코드와 같이 ServiceContractAttribute 특성으로 표시됩니다.

<ServiceContract()>
Public Interface IService1
[ServiceContract]
public interface IService1
<OperationContract()>
Function GetData(ByVal value As String) As String
[OperationContract]
string GetData(string value);

WCF 서비스에서 노출하는 함수나 메서드는 OperationContractAttribute 특성을 표시하여 정의합니다. 또한 복합 형식에 DataContractAttribute 특성을 표시하여 serialize된 데이터를 노출할 수 있습니다. 이렇게 하면 클라이언트에서 데이터 바인딩을 수행할 수 있습니다.

정의된 인터페이스와 해당 메서드는 인터페이스를 구현하는 클래스에 캡슐화됩니다. 단일 WCF 서비스 클래스는 여러 서비스 계약을 구현할 수 있습니다.

WCF 서비스는 클라이언트에서 사용할 수 있도록 끝점을 통해 노출됩니다. WCF 서비스와의 통신은 끝점을 통해서만 가능하며 다른 클래스를 사용할 때처럼 직접 참조를 통해 서비스에 액세스할 수 없습니다.

끝점은 주소, 바인딩 및 계약으로 구성됩니다. 주소는 서비스의 위치에 대한 정의로 URL, FTP 주소 또는 네트워크나 로컬 경로 등으로 정의될 수 있습니다. 바인딩은 서비스와 통신하는 방법을 정의합니다. WCF 바인딩은 HTTP나 FTP 같은 프로토콜, Windows 인증이나 사용자 이름과 암호 같은 보안 메커니즘 등을 지정할 수 있는 다양한 기능의 모델을 제공합니다. 계약에는 WCF 서비스 클래스에서 노출하는 작업이 포함됩니다.

WCF 서비스 하나에 대해 끝점을 여러 개 노출할 수 있습니다. 이렇게 하면 여러 클라이언트에서 서로 다른 방식으로 동일한 서비스와 통신할 수 있습니다. 예를 들어 뱅킹 서비스의 경우 서로 다른 주소, 바인딩 및/또는 계약을 사용하여 직원을 위한 끝점과 외부 고객을 위한 끝점을 각각 제공할 수 있습니다.

WCF 클라이언트

WCF 클라이언트는 응용 프로그램에서 WCF 서비스와의 통신할 수 있도록 하는 프록시 및 서비스에 대해 정의된 끝점과 일치하는 끝점으로 구성됩니다. 프록시는 클라이언트 쪽의 app.config 파일에 생성되며, 서비스에서 노출하는 형식과 메서드에 대한 정보를 포함합니다. 서비스가 끝점을 여러 개 노출하는 경우 클라이언트에서는 요구 사항에 가장 적합한 끝점을 선택할 수 있습니다. 예를 들어 HTTP를 통해 통신하면서 Windows 인증 방식을 사용할 수도 있습니다.

WCF 클라이언트를 만든 후에는 다른 개체를 참조할 때와 마찬가지로 코드에서 서비스를 참조합니다. 예를 들어 앞에서 설명한 GetData 메서드를 호출하려면 코드를 다음과 같이 작성합니다.

  Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
      Dim client As New ServiceReference1.Service1Client
      Dim returnString As String

      returnString = client.GetData(TextBox1.Text)
      Label1.Text = returnString
  End Sub
private void button1_Click(System.Object sender, System.EventArgs e)
{
    ServiceReference1.Service1Client client = new
        ServiceReference1.Service1Client();
    string returnString;

    returnString = client.GetData(textBox1.Text);
    label1.Text = returnString;
}

Visual Studio의 WCF 도구

Visual Studio 2008에서는 WCF 서비스와 WCF 클라이언트를 모두 만드는 데 도움을 주는 도구를 제공합니다. 이러한 도구를 보여 주는 연습은 연습: WCF 서비스 만들기 및 액세스을 참조하십시오.

WCF 서비스 만들기 및 테스트

WCF Visual Studio 템플릿을 토대로 고유한 서비스를 빠르게 만들 수 있습니다. 그런 다음 WCF 서비스 자동 호스트 및 WCF 테스트 클라이언트를 사용하여 서비스를 디버깅하고 테스트할 수 있습니다. 이러한 도구를 사용하면 빠르고 편리하게 디버깅 및 테스팅 과정을 진행할 수 있으며 초기 단계에서 호스팅 모델에 커밋하지 않아도 됩니다.

WCF 템플릿

WCF Visual Studio 템플릿은 서비스 개발을 위한 기본 클래스 구조를 제공합니다. 새 프로젝트 추가 대화 상자에는 WCF 서비스 라이브러리 프로젝트, WCF 서비스 웹 사이트, WCF 서비스 항목 템플릿 같은 여러 가지 템플릿이 있습니다.

템플릿을 선택하면 서비스 계약, 서비스 구현 및 서비스 구성에 필요한 파일이 추가됩니다. 필요한 모든 특성이 이미 추가되어 있어서 간단한 "Hello World" 형식의 서비스 정도는 코드를 직접 작성하지 않고도 만들 수 있습니다. 실제 서비스에 필요한 함수와 메서드를 제공하는 코드는 직접 작성해야 하지만 기본적인 틀은 템플릿에서 제공합니다.

WCF 템플릿에 대한 자세한 내용은 WCF Visual Studio Templates을 참조하십시오.

WCF 서비스 호스트

F5 키를 눌러 WCF 서비스 프로젝트에 대해 Visual Studio 디버거를 시작하면 WCF 서비스 호스트 도구가 자동으로 시작되어 서비스를 로컬로 호스팅합니다. WCF 서비스 호스트는 WCF 서비스 프로젝트의 서비스를 열거하고, 프로젝트의 구성을 로드하고, 검색되는 각 서비스에 대해 호스트를 인스턴스화합니다.

WCF 서비스 호스트를 사용하면 코드를 추가로 작성하거나 개발 단계에서 특정 호스트에 커밋하지 않고 WCF 서비스를 테스트할 수 있습니다.

WCF 서비스 호스트에 대한 자세한 내용은 WCF Service Host (WcfSvcHost.exe)를 참조하십시오.

WCF 테스트 클라이언트

WCF 테스트 클라이언트 도구를 사용하면 테스트 매개 변수를 입력한 후 해당 입력 내용을 WCF 서비스에 제출하여 서비스에서 보내는 응답을 볼 수 있습니다. 이 도구를 WCF 서비스 호스트와 함께 사용하면 서비스 테스트 작업을 편리하게 수행할 수 있습니다.

F5 키를 눌러 WCF 서비스 프로젝트 디버깅을 시작하면 WCF 테스트 클라이언트가 열리고 구성 파일에 정의되어 있는 서비스 끝점 목록이 표시됩니다. 매개 변수를 테스트하고 서비스를 시작할 수 있으며 이 프로세스를 계속 반복하여 서비스를 지속적으로 테스트하고 유효성을 검사할 수 있습니다.

WCF 테스트 클라이언트에 대한 자세한 내용은 WCF Test Client (WcfTestClient.exe)를 참조하십시오.

Visual Studio에서 WCF 서비스에 액세스

Visual Studio 2008에서는 서비스 참조 추가 대화 상자를 사용하여 추가하는 서비스의 프록시와 끝점이 자동으로 생성되기 때문에 WCF 클라이언트를 간단하게 만들 수 있습니다. 필요한 모든 구성 정보는 app.config 파일에 자동으로 추가됩니다. 따라서 대부분의 경우 사용자는 사용할 서비스를 인스턴스화하기만 하면 됩니다.

서비스 참조 추가 대화 상자를 사용하면 서비스의 주소를 입력하거나, 솔루션에 정의되어 있는 서비스를 검색할 수 있습니다. 이 대화 상자에서는 서비스 목록 및 해당 서비스에서 제공하는 작업을 반환합니다. 또한 이 대화 상자를 사용하면 코드에서 서비스를 참조하는 데 사용할 네임스페이스를 정의할 수도 있습니다.

서비스 참조 구성 대화 상자를 사용하면 서비스의 구성을 사용자 지정할 수 있습니다. 예를 들어 서비스의 주소를 변경하거나 액세스 수준, 비동기 동작 및 메시지 계약 형식을 지정하거나, 형식 재사용을 구성할 수 있습니다.

관련 항목

제목

설명

연습: WCF 서비스 만들기 및 액세스

Visual Studio에서 WCF 서비스를 만들고 사용하는 방법을 단계별로 보여 줍니다.

연습: Visual Studio에서 WCF 데이터 서비스 생성 및 액세스

Visual Studio에서 WCF Data Services를 만들고 사용하는 방법을 단계별로 보여 줍니다.

Using the WCF Development Tools

Visual Studio에서 WCF 서비스를 만들고 테스트하는 방법을 설명합니다.

방법: 서비스 참조 추가, 업데이트 또는 제거

프로젝트에서 WCF 서비스를 추가, 업데이트 또는 제거하는 방법을 설명합니다.

방법: WCF 데이터 서비스 참조 추가, 업데이트 또는 제거

Visual Studio에서 WCF Data Services를 참조하고 사용하는 방법을 설명합니다.

방법: 웹 서비스에 참조 추가

프로젝트에 XML(ASMX) 웹 서비스에 대한 참조를 추가하는 방법을 설명합니다.

방법: 서비스 끝점 선택

끝점을 여러 개 노출하는 WCF 서비스에서 끝점을 선택하는 방법을 설명합니다.

방법: 비동기적으로 서비스 메서드 호출

WCF 서비스를 비동기적으로 호출하는 방법을 설명합니다.

방법: 서비스에서 반환된 데이터 바인딩

WCF 서비스에 대해 데이터 바인딩을 설정하는 방법을 설명합니다.

방법: 기존 형식을 재사용하도록 서비스 구성

WCF 서비스에 대해 형식 공유를 사용하거나 사용하지 않도록 설정하는 방법을 설명합니다.

서비스 참조 문제 해결

서비스 참조 시 발생할 수 있는 일반적인 오류와 이러한 오류를 방지하는 방법을 설명합니다.

Debugging WCF Services

WCF 서비스를 디버깅할 때 발생할 수 있는 일반적인 디버깅 문제와 기술에 대해 설명합니다.

Windows Communication Foundation 인증 서비스 개요

WCF를 사용하여 웹 사이트에 대한 역할 서비스를 제공하는 방법을 설명합니다.

Messaging in the .NET Compact Framework

.NET Compact Framework에서 지원되는 WCF 메시징 계층에 대해 설명합니다.

연습: N 계층 데이터 응용 프로그램 만들기

형식화된 데이터 집합을 만들고 TableAdapter와 데이터 집합 코드를 여러 프로젝트로 분리하기 위한 단계별 지침을 제공합니다.

서비스 참조 추가 대화 상자

서비스 참조 추가 대화 상자의 사용자 인터페이스 요소에 대해 설명합니다.

서비스 참조 구성 대화 상자

서비스 참조 구성 대화 상자의 사용자 인터페이스 요소에 대해 설명합니다.

참조

System.ServiceModel

System.Data.Services