[C++] std::async 사용해보기
async 소개 C++에서 스레드를 사용한 작업은 직접 스레드를 생성하고 종료시켰습니다. 하지만 std::async 에 어떤 함수를 전달한다면, 이전 스레드 관리 방법과 다르게 알아서 스레드를 만들어 Thread Pool 로 객체를 관리하고 해당 함수를 비동기적으로 실행한 뒤 결과값을 future 에 전달합니다. async 사용법 void ...
async 소개 C++에서 스레드를 사용한 작업은 직접 스레드를 생성하고 종료시켰습니다. 하지만 std::async 에 어떤 함수를 전달한다면, 이전 스레드 관리 방법과 다르게 알아서 스레드를 만들어 Thread Pool 로 객체를 관리하고 해당 함수를 비동기적으로 실행한 뒤 결과값을 future 에 전달합니다. async 사용법 void ...
문제의 코드 개인 프로젝트를 간단히 소개하면 통신하는 프로그램은 유저의 최초 접속부터 매치 메이킹까지 진행하는 C# 메인 서버와 게임 스테이지를 전문적으로 관리하는 C++ 스테이지 서버로 이루어져 있고 클라이언트는 PC에서 UE5, 모바일에서 Unity 로 되어있습니다. GitHub Repo 다양한 기술에 도전해보고 싶어 프로젝트에 많은...
아침 식사 만들기 비동기와 병렬 작업은 우리가 생활에서 항상 실행하고 있습니다. 대표적인 예시로 아침 식사 만들기가 있습니다. 비동기 작업 집에서 아침밥을 먹을 때, 메뉴로 밥과 식은 국 그리고 냉장고에 보관된 반찬들이 있습니다. 아침밥을 준비하기 위한 일은 다음과 같고 번호는 작업 순서를 의미하지 않는다고 않습니다. 식탁에 ...
백준 문제 에이티식스에서 제가 선택한 알고리즘은 BFS(너비 우선 탐색) 였습니다. 저거노트를 탄 신에이 노우젠(이하 신)이 전장에서 가능한 모든 레기온을 처치했을 때, 최소 소요시간을 구해야 하기 때문입니다. 그래서 최초의 코드는 다음과 같이 작성했습니다. int BFS() { bool** visited = new bool*[N]; ...
현재 문제점 문제의 코드에서는 패킷을 모두 protobuf가 아니라 구조체로 작성했을 때, 유효했습니다. 그러나 이 프로젝트에서는 Protobuf를 사용한 패킷 통신이기 때문에 문자열을 그대로 해석하면 정상적인 해석이 불가능합니다. void process_packet(int c_id, char* packet) { switch (pack...
자동으로 .join() 해줄 것이라는 착각 RHTF 프로젝트를 진행하면서, Stage Server에서 사용하는 멀티스레드를 기존에 사용해오던 thread class가 아니라, C++20의 jthread를 사용해 보았습니다. jthread는 기존 thread와 달리 join() 함수가 자동으로 처리되는 함수라고 소개되어 있습니다. 자동으로 joi...
Unity 에서 Protobuf 적용하기 이전 포스트인 “언리얼에 Protobuf 적용시키기”는 잘 보셨나요? 이번 포스트에서는 Unity 프로젝트에서 Protobuf 를 적용히시키는 방법을 알아보겠습니다. Unity 는 C# 을 주로 사용하기 때문에 C++ 과 달리 매우 쉽게 적용시킬 수 있습니다. 먼저, Nuget Packages 사이트로 ...
Unreal Engine 5.3.2 에서 Protobuf 적용하기 언리얼 엔진의 경우 여러 Plugin 이 존재하지만 gRPC 혹은 Protobuf 를 제공하는 Plugin 을 찾지 못해 직접 C++ 버전의 Protobuf 를 적용시키고자 시작하게 되었습니다. 사용하는 파일은 이전 포스트인 [RHTF] C#, C++ 프로젝트에서 Protobuf 적...
개인 프로젝트에서 C++, C# 서버와 Unity, Unreal Engine 기반 클라이언트 사이 통신을 위해 gRPC인 Protobuf 를 연습하고 있습니다. 이번 포스트에서는 C#, C++를 사용하는 프로젝트에서 Protobuf 를 적용하는 방법에 대해 설명하겠습니다. C# 프로젝트에 Protobuf 적용하기 C# 의 경우 MS 에서...
백트래킹 기법은 이름처럼 탐색 중 조건에 부합하지 않으면 되돌아 가는 기법입니다. 대표적인 예시 문제로 N-Queen 문제가 있습니다. N x N 체스판에서 N개의 퀸을 서로 이동이 겹치지 않도록 최대한 퀸을 배치하는 문제입니다. 문제를 풀기위한 방법은 아래와 같습니다. N 번째 퀸을 체스판에 배치합니다. 배치된 퀸을 두고 다른 퀸...