NDC/Server

[NDC2014] WCF를 이용하여 쉽게 만드는 모바일 게임서버

MAKGA 2021. 12. 2. 21:15
320x100

WCF? (Windows Communication Foundation)

- 서비스와 클라이언트 사이에서 SOAP(Simple Object Access Protocol: xml 기반의 메시지를 네트워크 상에서 교환하는 프로토콜) 형식의 메시지를 보내는 시스템을 만드는 런타임과 API 집합

- HTTP, TCP/IP, Named Pipe, MSMQ, P2P등 다양한 프로토콜 지원

- WS-Security, WS-AtomicTransaction, WS-ReliableMessaging등 웹서비스 스펙 지원

 

WCF의 구성 요소

1. Message: 독립적인 데이터 단위 통신에 사용되는 데이터 구조

2. EndPoint: 서비스를 호출하기 위한 액세스 포인트 (Address, Binding, Contract로 구성)

3. Service: 요청을 처리하기 위한 각각의 로직

 

End Point

메시지가 전송 또는 수신되는 구문

- Address: 서비스를 액세스 하기 위한 주소

- Binding: 메시지가 전송되는 방법을 설명하는 통신 메커니즘의 사양. 채널 스택에 포함될 채널들에 대한 구성 목록 설정

- Contract: 서비스에 대한 인터페이스. 서비스의 메소드. 관련 데이터 타입들


WCF를 이용해서 어떻게 서버를 만들것인가?

1. 계약

1-1 서비스 계약: 제공하는 서비스의 기능을 정의

1-2 데이터 계약: 서버와 클라이언트 사이에서 교환할 데이터를 추상적으로 설명한 것

 

2. 바인딩

2-1 바인딩의 종류

 - WebHttpBinding: SOAP 메시지 대신 HTTP 요청(GET/POST)을 통해 노출되는 WCF 웹 서비스의 End point를 구성하는데 사용되는 바인딩

 - NetTcpBinding: TCP 프로토콜을 사용하며 바이너리 인코딩을 수행한다.


WCF의 장점

1. 다양한 프로토콜 및 서비스 방식을 지원

2. 높은 생산성 및 안정성

3. 쉬운 디버깅

4. 네트워크 프로그래밍 전문가가 아니여도 서버 작업이 가능

5. 프로그래머가 로직 및 구조적 코딩에 집중할 수 있음

6. .net 프레임워크에서 제공하는 라이브러리 사용 가능

 

WCF의 단점

1. linux에서도 사용가능하지만 windows 상에서의 퍼포먼스를 보장할 수 없다.


출처: 최연승 / 넥슨

http://ndcreplay.nexon.com/NDC2014/sessions/NDC2014_0044.html

 

NDC Replay

안녕하세요. WCF를 이용하여 쉽게 만드는 모바일 게임서버라는 주제를 가지고 여러분들하고 한 시간 동안 이야기를 나눌 넥슨 코리아 스톰 팀의 최연승 입니다. 저는 많은 분들 앞에서 이야기

ndcreplay.nexon.com

 

추가

https://docs.microsoft.com/ko-kr/dotnet/framework/wcf/?redirectedfrom=MSDN 

 

Windows Communication Foundation - WCF

서비스 지향 응용 프로그램용 프로그래밍 모델인 WCF를 사용 하 여 안전 하 고 신뢰할 수 있는 트랜잭션 솔루션을 빌드할 수 있는 방법을 알아보세요.

docs.microsoft.com

https://docs.microsoft.com/en-us/aspnet/web-api/overview/older-versions/self-host-a-web-api

 

Self-Host ASP.NET Web API 1 (C#) - ASP.NET 4.x

Tutorial with code shows how to host a web API inside a console application.

docs.microsoft.com

https://github.com/jacking75/semina_MobileServer_WCF

 

GitHub - jacking75/semina_MobileServer_WCF: WCF로 모바일 게임 서버 만들기 세미나 자료

WCF로 모바일 게임 서버 만들기 세미나 자료. Contribute to jacking75/semina_MobileServer_WCF development by creating an account on GitHub.

github.com

 

320x100