일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Bucket
- ProudNet
- streaming
- 튜토리얼
- 버킷
- nodejs
- 리사이즈
- 디지털영상
- S3
- 이미지프로세싱
- 스트리밍서버
- 아날로그영상
- Sharp
- 노선
- 이미지
- multiparty
- Node
- 게임서버
- 이미지서버
- 지하철역
- AWS
- 프라우드넷
- 시작하기
- 샘플링
- lightsail
- 좌표
- Thumbnail
- resize
- 데이터
- 화소
- Today
- Total
목록전체 글 (17)
Deep Studying
개인 프로젝트로 지도에 지하철 노선을 표시해야할 일이 있었는데 원하는 형식의 데이터셋이 없어 직접 만들게 되었습니다.각 역의 이름, 역간 연결 정보, 노선 정보가 여러 데이터셋에 파편화 되어있어 이를 통합한 데이터입니다. 데이터 형식은 JSON이며, github 링크를 첨부하겠습니다. 적절히 데이터를 수정하여 지도에 임베딩하면 다음과 같이 노선을 표시할 수 있습니다. 해당 이미지는 Mapbox라는 맵 라이브러리를 사용하여 표현된 모습입니다. 지하철 역 좌표 및 정보 깃허브 링크: 지하철 역 좌표 및 정보 / Raw 아래는 데이터의 예시 입니다.환승역의 경우 각 호선에 해당하는 역사 정보가 별도로 저장되어있습니다. 데이터 예시{ "line": "1호선", "name": "신도림", "station_n..
이전 포스트: 원카드 서버 만들기(1) 프로젝트 시작하기 이전 포스트에서는 프로젝트의 구상이나 사전 준비에 대해서만 얘기했습니다. 이번 포스트에서 본격적으로 프로젝트의 내용을 채워보겠습니다. 다만 공격카드나 7,J,Q,K와 같은 특수 카드의 처리는 이번 포스트의 내용에서는 제외하겠습니다. 게임을 시작하고, 카드를 내고, 카드를 드로우하는 플로우에만 초점을 두고 내용을 전개하도록 하고, 이후 포스트에서 디테일한 부분을 채워나가면 좋을 것 같습니다. Common > Common.cs 하단에 보이는 GamePlayer 클래스를 추가해줍니다. 모든 플레이어는 핸드를 가지고있으며 카드를 내거나 뽑는게 자유로워야함으로 List를 사용했습니다. using Nettention.Proud; namespace Onecar..
프로젝트 생성 이미 한 번 설명 드렸기 때문에 설명하는 과정은 생략하겠습니다. 프라우드넷을 처음 사용하신다면 아래 글을 따라 프로젝트를 시작해주세요. 이 때, ChattingServer, ChattingCommon, ChattingClient라고 되어있는 부분들의 Chatting이란 문구를 Onecard로 바꿔주세요 채팅 서버 만들기(1) 프로젝트 초기 설정하기 1. 프로젝트 생성 - OnecardServer ( C# 콘솔 앱 ) - OnecardCommon ( C# 클래스 라이브러리 ) - OnecardClient ( C# 콘솔 앱 ) 2. PIDL 설정 - Common 프로젝트에 PIDL 폴더 생성 - Server, Client 프로젝트에 RMI 폴더 생성 - C2S.PIDL, S2C.PIDL 파일 ..
이전 포스트에서는 유저 클래스를 등록하고 마샬링하여 주고 받는 방법을 추가해봤습니다. 하지만 채팅은 모든 유저들과 이야기를 주고 받기 보다는 들어가있는 방이나 자신의 캐릭터가 존재하는 맵에서 같은 공간에 있는 사람들끼리 주고받는 경우가 더 많습니다. 이러한 기능을 추가해보도록 하겠습니다. + 제대로된 Room 기능을 구현하는 것 보다는 Dictionary 자료구조를 설명하는 데에 더 포커스가 맞춰졌습니다. RoomNumber추가 유저 클래스에 RoomNumber라는 멤버 변수를 추가해줍니다. RoomNumber가 0이면 아무 곳에도 속해있지 않고, 다른 숫자이면 해당 방에 들어가 있는 것이라고 생각하겠습니다. Common > Common.cs public class User { static int Use..
지난 포스트에서는 RMI 통신을 이용하여 정말 간단한 채팅 서버를 만들어보았습니다. 하지만 PIDL을 통해 생성한 Proxy와 Stub은 기본적으로 ProudNet 라이브러리의 일부 혹은 닷넷에서 지원하는 기본 자료형 밖에 사용하지 못합니다. 지난 포스트에서는 string 값만 주고 받았기 때문에 문제가 되지 않았던 것입니다. 이번 포스트에서는 유저의 닉네임을 출력하는 기능을 넣으면서 직접 만든 클래스를 RMI로 전송하는 법을 알아보도록 하겠습니다. 이전 포스트: 채팅 서버 만들기 (2) RMI 통신 이용하기 요구사항 메세지는 시스템 메세지와 채팅 메세지 두 종류이다. - 클라이언트가 접속하면 모든 클라이언트에게 시스템 메세지를 보낸다. - 클라이언트가 접속을 종료하면 모든 클라이언트에게 시스템 메세지를..
이번 포스트부터는 본격적으로 서버 프로그램을 만들어보도록 하겠습니다. 기본적인 RMI통신 내용을 설명하기 위해 아주 간단한 서버와 클라이언트를 만드는 것으로 시작하겠습니다. 프로젝트 초기 설정이 안되있다면 이전 포스트를 읽고 다시 봐주시기 바랍니다. 이전 포스트: 채팅 서버 만들기(1) 프로젝트 초기 설정하기 요구사항 - 메세지는 시스템 메세지와 채팅 메세지 두 종류이다. - 클라이언트가 접속하면 모든 클라이언트에게 시스템 메세지를 보낸다. - 클라이언트가 접속을 종료하면 모든 클라이언트에게 시스템 메세지를 보낸다. - 클라이언트가 채팅을 입력하면 모든 클라이언트에게 채팅 메세지를 전달한다. 위 세 가지 기능에 필요한 요소들을 살펴보면 - 클라이언트가 접속하면 모든 클라이언트에게 시스템 메세지를 보낸다...
이제 본격적으로 서버 코드를 짜기 앞서 C계열 언어답게 초기 세팅이 필요합니다. 이전 포스트를 읽고 PIDL이 무엇인지를 이해하는 편이 글을 읽기 편하겠지만, 굳이 보시지 않아도 따라서 하실 수 있게 작성해보겠습니다. 이전 포스트: RPC 통신 이해하기 (2) - PIDL 파일에 대해 프로젝트 생성 Server 프로젝트 생성 비주얼 스튜디오를 켠 뒤 새로운 솔루션을 만들어줍니다. 콘솔 앱을 먼저 생성해줍니다. 프로젝트 이름은 정해진 것은 아니지만 우선 ChattingServer로 하겠습니다. 솔루션 이름은 원하는 이름으로 정합니다. 원하는 닷넷 프레임워크를 선택하시고 프로젝트를 생성해줍니다. 저는 6.0버전밖에 없어서 그냥 만들었지만 4.X 버전은 물론 3.X 버전도 지원이 되는 것 같습니다. Commo..
프라우드넷은 게임 서버입니다. 게임 클라이언트와 통신하여 서비스를 제공하는 것이 프라우드넷의 역할이죠. 그러므로 서버와 클라이언트는 어떤 방법으로든 통신이 이루어져야합니다. 하지만 웹서버와 브라우저가 통신하기 위해서는 http라는 프로토콜이 필요한 것처럼 게임 클라이언트와 게임 서버 사이에도 통신을 하기 위해 특별한 약속이 필요합니다. 게임서버, 그 중에 프라우드넷에서는 어떤 방식으로 클라이언트와 통신하는지 알아보도록 하겠습니다. 1.1 RPC ( Remote Procedure Call ) 분산 컴퓨팅에서 remote procedure call ( RPC )는 다른 address space( 일반적으로 네트워크 상에 존재하는 다른 컴퓨터를 지칭 합니다. )에 존재하는 프로시저 ( 혹은 subroutine..
지난 포스트에서는 프라우드넷이 RMI라는 방식을 통해 통신한다는 것을 알았습니다. 구체적으로 프로젝트에서는 어떻게 구성되어있는지 알아보겠습니다. 이전 포스트: RPC 통신 이해하기(1) - 용어 및 개념 정의 처음 포스트에서 열어보았던 SimpleCSharp 예제의 구조입니다. 우선 차근 차근 설명하겠지만 RMI란 폴더에 있는 common, proxy, stub 세 가지 파일의 존재를 기억하고 설명을 들으시면 좋을 것 같습니다. PIDL 파일 Simple.PIDL 파일을 열어보면 다음과 같은 내용이 적혀있습니다. // P2P RMI function definitions. global Simple 2000 // client-to-client RMI, first message ID = 2000 { // Ex..
필자가 게임 서버에 대해 잘 알고있어 공유하기 위한 포스트는 아닙니다. 게임 서버에 대해 처음 배우기 시작했으며, 몇 번의 시행착오만 거쳐보고 바로 올리는 글이기 때문에, 멀리 보면 틀린 내용도 있을 수 있습니다. 하지만 완벽히 초심자의 입장에서 서비스를 바라본다는 것은 가치있는 일이라 생각하여 차근차근 포스트를 올려보려고 합니다. 잘못된 내용이나 부족해보이는 내용이 있다면 메일로 알려주시면 감사드리겠습니다. 경험자 분들의 조언도 환영합니다. E-mail: rltjqdl1138@naver.com 목차 1. RPC 통신 이해하기 1-1. RPC통신 이해하기(1) - 용어 및 개념 정의 1-2. RPC통신 이해하기(2) - PIDL파일에 대해 2. 채팅 서버 만들기 2-1. 채팅 서버 만들기(1) - 프로젝..