[비동기] 비동기와 병렬
아침 식사 만들기 비동기와 병렬 작업은 우리가 생활에서 항상 실행하고 있습니다. 대표적인 예시로 아침 식사 만들기가 있습니다. 비동기 작업 집에서 아침밥을 먹을 때, 메뉴로 밥과 식은 국 그리고 냉장고에 보관된 반찬들이 있습니다. 아침밥을 준비하기 위한 일은 다음과 같고 번호는 작업 순서를 의미하지 않는다고 않습니다. 식탁에 ...
아침 식사 만들기 비동기와 병렬 작업은 우리가 생활에서 항상 실행하고 있습니다. 대표적인 예시로 아침 식사 만들기가 있습니다. 비동기 작업 집에서 아침밥을 먹을 때, 메뉴로 밥과 식은 국 그리고 냉장고에 보관된 반찬들이 있습니다. 아침밥을 준비하기 위한 일은 다음과 같고 번호는 작업 순서를 의미하지 않는다고 않습니다. 식탁에 ...
백준 문제 에이티식스에서 제가 선택한 알고리즘은 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 번째 퀸을 체스판에 배치합니다. 배치된 퀸을 두고 다른 퀸...
ProtoBuf 적용 과정 C#, C++ 으로 작성된 프로그램 사이 소켓 통신을 하기 위해 ProtoBuf 를 사용하게 되었습니다. Protobuf 란 Google 에서 제작한 오픈소스 기술로 플랫폼과 언어의 제한 없이 통신 프로토콜이나 데이텅 저장을 사용할 때, 구조화 된 데이터를 전환하게 해 주는 방법입니다. (gRPC, ProtoBuf 와 ...
개인 프로젝트에서 C#, C++ 로 각각 작성된 프로그램 사이 통신을 처리할 때 문제가 있었습니다. 패킷을 만들 때, C#과 C++는 구조체의 형식이 다르기 때문에 송수신만 한다고 해결될 문제가 아니였습니다. 따라서 최초로 시도한 해결 방법은 C++ 로 구조체를 만들고 C# 구조체로 변경해주는 파일 변환 프로그램을 직접 만들고자 하였습니다. 그...