다음을 통해 공유


Windows Communication Foundation이란?

WCF(Windows Communication Foundation)는 서비스 지향 애플리케이션을 빌드하기 위한 프레임워크입니다. WCF를 사용하여 한 서비스 엔드포인트에서 다른 서비스 엔드포인트로 데이터를 비동기 메시지로 보낼 수 있습니다. 서비스 엔드포인트는 IIS에서 호스트하는 지속적으로 사용 가능한 서비스의 일부이거나 애플리케이션에서 호스트되는 서비스일 수 있습니다. 엔드포인트는 서비스 엔드포인트에서 데이터를 요청하는 서비스의 클라이언트일 수 있습니다. 메시지는 XML로 전송된 단일 문자나 단어처럼 간단하거나 이진 데이터의 스트림처럼 복잡할 수 있습니다. 몇 가지 샘플 시나리오는 다음과 같습니다.

  • 비즈니스 트랜잭션을 처리하는 보안 서비스입니다.

  • 트래픽 보고서 또는 기타 모니터링 서비스와 같은 다른 사용자에게 현재 데이터를 제공하는 서비스입니다.

  • 두 사람이 실시간으로 데이터를 통신하거나 교환할 수 있는 채팅 서비스입니다.

  • 데이터에 대해 하나 이상의 서비스를 폴링하고 논리적 프레젠테이션에 표시하는 대시보드 애플리케이션입니다.

  • Windows Workflow Foundation을 WCF 서비스로 사용하여 구현된 워크플로 노출

WCF가 존재하기 전에 이러한 애플리케이션을 만들 수 있었지만 WCF를 사용하면 그 어느 때보다 쉽게 엔드포인트를 개발할 수 있습니다. 요약하자면, WCF는 웹 서비스 및 웹 서비스 클라이언트를 만드는 관리 가능한 접근 방식을 제공하도록 설계되었습니다.

WCF의 대안으로 gRPC

gRPC는 WCF에 대한 인기 있는 대안인 최신 RPC 프레임워크입니다. gRPC는 HTTP/2를 기반으로 빌드되며 다음을 포함하여 WCF에 비해 다양한 이점을 제공합니다.

  • 성능: gRPC는 특히 장기 실행 연결의 경우 WCF보다 훨씬 효율적입니다.
  • 확장성: gRPC는 많은 수의 클라이언트 및 서버로 확장하도록 설계되었습니다.
  • 보안: gRPC는 TLS 및 인증을 비롯한 다양한 보안 메커니즘을 지원합니다.
  • 플랫폼 간: gRPC는 플랫폼 중립적이며 다양한 프로그래밍 언어와 함께 사용할 수 있습니다.

WCF 앱을 개발하거나 gRPC로 마이그레이션하는 방법에 대한 자세한 내용은 다음을 참조하세요.

WCF의 기능

WCF에는 다음과 같은 기능 집합이 포함되어 있습니다. 자세한 내용은 WCF 기능 세부 정보를 참조하세요.

  • 서비스 방향

    WS 표준을 사용하면 WCF를 통해 서비스 지향 애플리케이션을 만들 수 있습니다. SOA(서비스 지향 아키텍처)는 데이터를 보내고 받는 웹 서비스에 의존합니다. 서비스는 한 애플리케이션에서 다른 애플리케이션으로 하드 코딩하는 대신 느슨하게 결합되는 일반적인 이점이 있습니다. 느슨하게 결합된 관계는 필수 계약이 충족되는 한 모든 플랫폼에서 만든 모든 클라이언트가 모든 서비스에 연결할 수 있음을 의미합니다.

  • 상호 운용성

    WCF는 웹 서비스 상호 운용성을 위한 최신 산업 표준을 구현합니다. 지원되는 표준에 대한 자세한 내용은 상호 운용성 및 통합을 참조하세요.

  • 여러 메시지 패턴

    메시지는 여러 패턴 중 하나로 교환됩니다. 가장 일반적인 패턴은 한 엔드포인트가 두 번째 엔드포인트에서 데이터를 요청하는 요청/회신 패턴입니다. 두 번째 엔드포인트가 회신합니다. 단일 엔드포인트가 회신을 전혀 기대하지 않고 메시지를 보내는 단방향 메시지와 같은 다른 패턴이 있습니다. 더 복잡한 패턴은 두 엔드포인트가 인스턴트 메시징 프로그램과 유사하게 연결을 설정하고 데이터를 주고 받는 이중 교환 패턴입니다. WCF를 사용하여 다른 메시지 교환 패턴을 구현하는 방법에 대한 자세한 내용은 계약을 참조하세요.

  • 서비스 메타데이터

    WCF는 WSDL, XML 스키마 및 WS-Policy와 같은 업계 표준에 지정된 형식을 사용하여 서비스 메타데이터 게시를 지원합니다. 이 메타데이터를 사용하여 WCF 서비스에 액세스하기 위한 클라이언트를 자동으로 생성하고 구성할 수 있습니다. 메타데이터는 HTTP 및 HTTPS를 통해 게시하거나 웹 서비스 메타데이터 Exchange 표준을 사용하여 게시할 수 있습니다. 자세한 내용은 메타데이터를 참조하세요.

  • 데이터 계약

    WCF는 .NET Framework를 사용하여 빌드되므로 적용하려는 계약을 제공하는 코드 친화적인 방법도 포함됩니다. 범용 계약 유형 중 하나는 데이터 계약입니다. 기본적으로 Visual C# 또는 Visual Basic을 사용하여 서비스를 코딩할 때 데이터를 처리하는 가장 쉬운 방법은 데이터 엔터티에 속하는 속성이 있는 데이터 엔터티를 나타내는 클래스를 만드는 것입니다. WCF에는 이러한 쉬운 방식으로 데이터를 사용하기 위한 포괄적인 시스템이 포함되어 있습니다. 데이터를 나타내는 클래스를 만든 후에는 클라이언트가 사용자가 디자인한 데이터 형식을 준수할 수 있는 메타데이터를 서비스가 자동으로 생성합니다. 자세한 내용은 데이터 계약 사용을 참조하세요.

  • 보안

    개인 정보를 보호하기 위해 메시지를 암호화할 수 있으며 사용자가 메시지를 수신하도록 허용하기 전에 직접 인증하도록 요구할 수 있습니다. SSL 또는 WS-SecureConversation과 같은 잘 알려진 표준을 사용하여 보안을 구현할 수 있습니다. 자세한 내용은 보안을 참조하세요.

  • 여러 전송 및 인코딩

    여러 기본 제공 전송 프로토콜 및 인코딩에서 메시지를 보낼 수 있습니다. 가장 일반적인 프로토콜 및 인코딩은 World Wide Web에서 사용하기 위해 HTTP(HyperText Transfer Protocol)를 사용하여 텍스트로 인코딩된 SOAP 메시지를 보내는 것입니다. 또는 WCF를 사용하면 TCP, 명명된 파이프 또는 MSMQ를 통해 메시지를 보낼 수 있습니다. 이러한 메시지는 텍스트로 인코딩하거나 최적화된 이진 형식을 사용하여 인코딩할 수 있습니다. MTOM 표준을 사용하여 이진 데이터를 효율적으로 보낼 수 있습니다. 제공된 전송 또는 인코딩이 요구 사항에 맞지 않는 경우 사용자 지정 전송 또는 인코딩을 만들 수 있습니다. WCF에서 지원하는 전송 및 인코딩에 대한 자세한 내용은 전송을 참조하세요.

  • 신뢰할 수 있는 메시지 및 큐에 대기된 메시지

    WCF는 WS-Reliable 메시징 및 MSMQ를 통해 구현된 신뢰할 수 있는 세션을 사용하여 신뢰할 수 있는 메시지 교환을 지원합니다. WCF의 안정적이고 대기 중인 메시징 지원에 대한 자세한 내용은 큐 및 신뢰할 수 있는 세션을 참조하세요.

  • 내구성 있는 메시지

    지속성 메시지는 통신 중단으로 인해 손실되지 않는 메시지입니다. 지속성 메시지 패턴의 메시지는 항상 데이터베이스에 저장됩니다. 중단이 발생하면 데이터베이스를 사용하면 연결이 복원될 때 메시지 교환을 다시 시작할 수 있습니다. WF(Windows Workflow Foundation)를 사용하여 지속성 메시지를 만들 수도 있습니다. 자세한 내용은 Workflow Services를 참조하세요.

  • 트랜잭션

    또한 WCF는 WS-AtomicTransactions, 네임스페이스의 API System.Transactions 및 Microsoft Distributed Transaction Coordinator의 세 가지 트랜잭션 모델 중 하나를 사용하는 트랜잭션을 지원합니다. WCF의 트랜잭션 지원에 대한 자세한 내용은 트랜잭션을 참조하세요.

  • AJAX 및 REST 지원

    REST는 진화하는 Web 2.0 기술의 예입니다. SOAP 봉투에 래핑되지 않은 "일반" XML 데이터를 처리하도록 WCF를 구성할 수 있습니다. ATOM(인기 있는 RSS 표준)과 같은 특정 XML 형식과 JSON(JavaScript Object Notation)과 같은 비 XML 형식도 지원하도록 WCF를 확장할 수 있습니다.

  • 확장성

    WCF 아키텍처에는 여러 확장성 지점이 있습니다. 추가 기능이 필요한 경우 서비스의 동작을 사용자 지정할 수 있는 여러 진입점이 있습니다. 사용 가능한 확장성에 대한 자세한 내용은 WCF 확장을 참조하세요.

다른 Microsoft 기술과 WCF 통합

WCF는 유연한 플랫폼입니다. 이러한 뛰어난 유연성 때문에 WCF는 다른 여러 Microsoft 제품에서도 사용됩니다. WCF의 기본 사항을 이해하면 이러한 제품을 사용하는 경우 즉시 이점이 있습니다.

WCF와 페어링하는 첫 번째 기술은 WF(Windows Workflow Foundation)였습니다. 워크플로는 워크플로의 단계를 "활동"으로 캡슐화하여 애플리케이션 개발을 간소화합니다. Windows Workflow Foundation의 첫 번째 버전에서 개발자는 워크플로에 대한 호스트를 만들어야 했습니다. Windows Workflow Foundation의 다음 버전은 WCF와 통합되었습니다. 이를 통해 모든 워크플로를 WCF 서비스에서 쉽게 호스트할 수 있습니다. Visual Studio 2012 이상에서 WF/WCF 프로젝트 형식을 자동으로 선택하여 이 작업을 수행할 수 있습니다.

Microsoft BizTalk Server R2는 WCF를 통신 기술로 활용합니다. BizTalk는 표준화된 형식에서 다른 형식으로 데이터를 수신하고 변환하도록 설계되었습니다. 메시지는 엄격한 매핑을 사용하거나 워크플로 엔진과 같은 BizTalk 기능 중 하나를 사용하여 메시지를 변환할 수 있는 중앙 메시지 상자에 전달되어야 합니다. 이제 BizTalk에서 WCF LOB(기간 업무) 어댑터를 사용하여 메시지 상자에 메시지를 배달할 수 있습니다.

Windows Server AppFabric 애플리케이션 서버의 호스팅 기능은 통신에 WCF를 사용하는 애플리케이션을 배포하고 관리하기 위해 특별히 설계되었습니다. 호스팅 기능에는 WCF 지원 애플리케이션용으로 특별히 설계된 다양한 도구 및 구성 옵션이 포함됩니다.

참고하십시오