728x90

서버 77

서버 개발기3

서버 개발기 일단 구동을 시켜야 하기에 간단하게라도 만들어보고자 생각을 했다. 아이디어 아이디와 비밀번호 사이에 구분자를 추가해줘서 그것으로 구분하자. 성공적으로 서버에서 받는 것도 확인할 수 있었다. 이제 받은 데이터를 구분해줘야 한다. 구분자를 통해 split시키는 함수 중 strtok_s를 사용했다. 원래 strtok를 사용하려고 했는데, 더 안전한 것을 사용하라고 하기도 하고, strtok_s를 통해서면 id, pw만 받는 로그인에서 편할 것이라고 생각했다. ID, PW를 구분해주는 것을 완료했다. 여기서 또 다른 문제 LoginServer에서는 Login뿐만 아니라 Register도 처리 해줘야한다. 요청에 따른 다른 처리를 구현해야 한다. 기능에 따라 다른 메시지를 보내게 설계했다. 서버에서도..

Study/Project 2024.04.16

24.04.13 서버 개발기, C++

서버 개발기 받아오는 데이터의 문제 현재 유니티 클라이언트와 c++ 서버의 연결은 성공했다. 데이터 send와 receive도 구현을 했는데, recv한 데이터를 print했을 때, 뒤에 이상한 값들이 같이 나오는 문제가 있다. 흑흑.. 슬프다 슬퍼 어제는 받아오지도 못했으니 그래도 전진한것을 긍정적으로 생각해봐야겠다. 돌밍님 찬양, 경배해 https://stonebig.tistory.com/ 공부하는 돌맹이 stonebig.tistory.com 쓰레기 값이 들어오는 문제였다. 그래서 들어온 버퍼 사이즈만큼 받아오게 코드를 짰다. 처음에는 for문을 통해서 들어온 사이즈만큼 반복시켜줬다. for(int i =0; i

24.04.12 서버 프로그래밍, 백준

게임 서버 프로그래밍 8장. 분산 서버 구조 8.1 수직 확장과 수평 확장 확장성(scalability)이란 사용자 수가 늘어나더라도 쉽게 대응할 수 있어야 한다는 의미다. 최대로 처리할 수 있는 사용자 수가 무제한이여도 가능해야 한다는 것이 확장성 목표이다. 사용자 수가 늘어나도 서버 성능을 유지하려면 보통 다음 두 가지 중 하나를 수행한다. 스케일 업(scale-up) : 수직 확장 스케일 아웃(scale-out) : 수평 확장 수직 확장은 서버의 하드웨어를 더 좋은 것으로 교체하여 처리량을 늘리는 것을 의미한다. 수평 확장은 서버 대수를 늘려서 더 많은 처리를 하는 것이다. 수평 확장이 더 많이 사용되는 방법이지만, 소프트웨어 설계가 더 복잡하다는 대가가 따른다. 또 수평 확장은 수직 확장으로 서버..

서버 개발기 1

이 서버 개발기 1은 곧 프로젝트명으로 바뀔 예정이다. 물론 기획이 완성된다면! 아직 프로젝트가 정해지지 않아 작은 프로젝트로 로그인과 게시판을 구현하면서 연습하고자 한다. 다양한 블로그와 책,공식 docs를 통해서 공부하면서 코드를 작성했다. 받아오는 데이터의 문제 현재 유니티 클라이언트와 c++ 서버의 연결은 성공했다. 데이터 send와 receive도 구현을 했는데, recv한 데이터를 print했을 때, 뒤에 이상한 값들이 같이 나오는 문제가 있다. 흑흑.. 슬프다 슬퍼 어제는 받아오지도 못했으니 그래도 전진한것을 긍정적으로 생각해봐야겠다. 돌밍님 찬양, 경배해 https://stonebig.tistory.com/ 공부하는 돌맹이 stonebig.tistory.com 쓰레기 값이 들어오는 문제였다..

Study/Project 2024.04.13

게임 서버 프로그래밍 교과서 7장. 데이터베이스 기초

7장. 데이터베이스 기초 7.1 플레이어의 정보 저장 온라인 게임에서는 플레이어 정보를 클라이언트가 아닌 서버에만 저장한다. 클라이언트는 로그인한 후 플레이어 정보를 서버에서 받아 사용한다. 플레이어 정보를 서버에 저장하는 방법은 크게 두 가지가 있다. 파일 데이터베이스 단순파일 DB 비고 소프트웨어 비용 없다. 없거나 높다 오픈 소스 제품은 제한적으로 무료다 저장 및 로딩속도 빠르다 느리다 DB도 결국 파일 시스템을 사용한다. 데이터 관리, 분석 속도 느리다 빠르다 DB는 빠른 검색을 위한 인덱스 기능이 있다 데이터 백업 및 복원 기능 없다 있다. - 원자성 불가능하다 가능하다 DB의 트랜잭션 기능이다 일관성 (잘못된 상태의 데이터를 원천 봉쇄한다.) 없다 있다 DB의 제약(Constraints) 기능..

24.04.11 서버 프로그래밍

게임 서버 프로그래밍 교과서 7장. 데이터베이스 기초 7.1 플레이어의 정보 저장 온라인 게임에서는 플레이어 정보를 클라이언트가 아닌 서버에만 저장한다. 클라이언트는 로그인한 후 플레이어 정보를 서버에서 받아 사용한다. 플레이어 정보를 서버에 저장하는 방법은 크게 두 가지가 있다. 파일 데이터베이스 단순파일 DB 비고 소프트웨어 비용 없다. 없거나 높다 오픈 소스 제품은 제한적으로 무료다 저장 및 로딩속도 빠르다 느리다 DB도 결국 파일 시스템을 사용한다. 데이터 관리, 분석 속도 느리다 빠르다 DB는 빠른 검색을 위한 인덱스 기능이 있다 데이터 백업 및 복원 기능 없다 있다. - 원자성 불가능하다 가능하다 DB의 트랜잭션 기능이다 일관성 (잘못된 상태의 데이터를 원천 봉쇄한다.) 없다 있다 DB의 제약..

24.04.10 서버 프로그래밍

게임 서버 프로그래밍 교과서 5장. 게임 네트워킹 5.1 UML 프로그램 구조 명세를 표현하는 대표적 수단이다. UML 시퀀스 다이어그램 UML 시퀀스 다이어그램에서는 객체와 메시지를 사용한다. 객체는 상호 작용의 주체(예 : 클라이언트, 서버)에 해당한다. 메시지는 상호작용의 내용(예 : 메시지 전달, 함수 실행, 이벤트 수신)으로 화살표이다. 화살표 방향을 보고 보내는 쪽과 받는 쪽을 구분할 수 있다. 시퀀스도의 주요용도는 객체 간 메시징 흐름을 일목요연하게 표현하는 것이다. 시퀀스도는 객체 사이에 메시지를 주고 받는 것을 한눈에 알아보기 쉽게 표현할 수 있다. 시퀀스도는 주고 받는 메시지를 어떻게 처리하는지 자세하게 표현하는 데는 한계가 있는데, 플로 차트를 함께 사용하면, 보다 자세하게 프로그램의..

게임 서버 프로그래밍 교과서 5장. 게임 네트워킹

5장. 게임 네트워킹 5.1 UML 프로그램 구조 명세를 표현하는 대표적 수단이다. UML 시퀀스 다이어그램 UML 시퀀스 다이어그램에서는 객체와 메시지를 사용한다. 객체는 상호 작용의 주체(예 : 클라이언트, 서버)에 해당한다. 메시지는 상호작용의 내용(예 : 메시지 전달, 함수 실행, 이벤트 수신)으로 화살표이다. 화살표 방향을 보고 보내는 쪽과 받는 쪽을 구분할 수 있다. 시퀀스도의 주요용도는 객체 간 메시징 흐름을 일목요연하게 표현하는 것이다. 시퀀스도는 객체 사이에 메시지를 주고 받는 것을 한눈에 알아보기 쉽게 표현할 수 있다. 시퀀스도는 주고 받는 메시지를 어떻게 처리하는지 자세하게 표현하는 데는 한계가 있는데, 플로 차트를 함께 사용하면, 보다 자세하게 프로그램의 실행방식을 그림으로 묘사할 ..

728x90