Mgcllee

[알고리즘] KMP 문자열 매칭 알고리즘

길이가 100’000 인 문자열에서 길이가 10 인 특정 문자열을 찾으려면 어떻게 해야 할까요? 이번 포스트에서는 문자열 탐색을 위한 알고리즘은 무엇이 있는지 알아보겠습니다. 하나씩 전부 비교하기 O(M x N) 구현이 가장 간단한 방법은 찾는 문자열을 100’000 자에서 한 글자씩 이동하면서 전부 비교하는 방법 입니다. 100’000 자를...

[C#] async 및 await를 사용한 비동기 프로그래밍

async 한정자 이번 포스트에서는 비동기와 병렬에서 설명한 비동기를 C#에서 직접 사용해 보겠습니다. C# 에서는 비동기 프로그래밍을 위해 async 한정자와 await 키워드가 존재합니다. C# 컴파일러가 async 한정자를 만나면 반환을 기다리지 않고 다음 다음 코드를 실행할 수 있도록 컴파일합니다. async 한정자를 사용하는 메서드는 ...

[RHTF] C#, C++에서 protobuf의 oneof 키워드 사용하기

문제의 코드 개인 프로젝트를 간단히 소개하면 통신하는 프로그램은 유저의 최초 접속부터 매치 메이킹까지 진행하는 C# 메인 서버와 게임 스테이지를 전문적으로 관리하는 C++ 스테이지 서버로 이루어져 있고 클라이언트는 PC에서 UE5, 모바일에서 Unity 로 되어있습니다. GitHub Repo 다양한 기술에 도전해보고 싶어 프로젝트에 많은...

[멀티스레드] 비동기와 병렬

아침 식사 만들기 비동기와 병렬 작업은 우리가 생활에서 항상 실행하고 있습니다. 대표적인 예시로 아침 식사 만들기가 있습니다. 비동기 작업 집에서 아침밥을 먹을 때, 메뉴로 밥과 식은 국 그리고 냉장고에 보관된 반찬들이 있습니다. 아침밥을 준비하기 위한 일은 다음과 같고 번호는 작업 순서를 의미하지 않는다고 않습니다. 식탁에 ...