지난 포스팅에서 구글 프로토콜 버퍼에 대해서 간략히 알아보았습니다. 직접 구글 프로토콜 버퍼를 사용해보기 위해서 발품 팔았지만, 정보가 생각보다 쉽게 나오지 않아서 설치하면서 얻은 경험을 바탕으로 포스팅하고자 합니다. 설치 다운로드 먼저 구글 프로토콜 버퍼 패키지를 다운 받아야 합니다. 링크는 다음과 같습니다 : https://github.com/protocolbuffers/protobuf/releases/tag/v3.11.4 들어가시면 다음과 같은 그림을 볼 수 있습니다. 이 중에서 자신이 사용하고자 하는 언어의 패키지를 다운 받으시면 됩니다. 제 경우 cpp로 사용하고자 했으므로, cpp를 다운 받았습니다. 이후, 압축을 풀면, 다음과 같이 파일이 압축 해제되는데 여기서 눈 여겨 봐야할 것이 cmak..
저는 구글 프로토콜 버퍼를 좀 색다른 경로로 알게 되었지만, 포스팅을 작성하면서 검색한 결과 gRPC로부터 프로토콜 버퍼의 유입이 많다는 것을 알게 되었습니다. 구글 프로토콜 버퍼는 구글에서 오픈소스로 공개한 언어 및 플랫폼에 중립적이면서 프로토콜 통신, 데이터 저장 등에 대해 직렬화하여 사용할 수 있는 데이터 구조(data structure)입니다. 줄여서 protobuf, 더 줄여서 pb라고도 부릅니다. 구글에서는 프로토콜 버퍼를 다음과 같이 설명합니다 : 프로토콜 버퍼는 구조적 데이터(XML과 같은)를 직렬화하기 위한 유연하고 효율적인 자동화된 메커니즘이며, 작고 빠르고 간결합니다. 여러분이 여러분의 데이터가 어떻게 구조화되기를 원하는 지를 결정했다면, 다양한 언어를 사용하여 다양한 형태의 데이터 ..
객체 지향의 꽃이라고도 할 수 있는 객체들 간의 '관계'는 설계에 있어서 중요하다고 할 수 있습니다. 객체 간의 관계를 정의하는 키(key)라고도 볼 수 있습니다. 이 포스팅에서 is-a 와 has-a에 대해 간단히 알아 본 다음, 어떠한 상황에서 사용해야 하는지에 대해 알아보도록 하겠습니다. is-a is-a는 말 그대로 'A는 B이다'일 때의 '~이다'와 같습니다. 좀 더 구체적인 얘기를 위해 위키피디아의 내용을 발췌하였습니다 : is-a는 추상화(형식이나 클래스와 같은)들 사이의 포함 관계를 의미하며, 한 클래스 A가 다른 클래스 B의 서브클래스(파생클래스)임을 이야기합니다. 다른 말로, 타입 A는 타입 B의 명세(specification)를 암시한다는 점에서 타입 B의 서브타입이라고도 할 수 있습..
Visual Studio에서 Linux 프로젝트를 이용하여 간단한 프로젝트 작성을 하고 있었습니다. sigaction 함수를 사용하기 위해 struct sigaction 구조체를 정의하려고 할 때 나타나는 구문입니다. 다음 그림과 같이 인텔리센스가 '불완전한 형식은 사용할 수 없습니다' 에러를 뱉었고, 실제로도 원격 컴파일에서 컴파일에 실패하였습니다. 해결 두 가지 해결 방법이 있습니다. 첫 번째 방법은 컴파일러 표준을 c11에서 gnu11로 바꿔주는 것입니다(-std:gnu11). 이 경우, gnu11에서 정의된 struct sigaction이 활성화 됩니다. 이 경우, sigaction 이외에도 다양한 c표준은 아니지만 gnu 표준인 함수들까지 사용할 수 있게 되는 side effect를 발생시킵니다..
퍼포스(perforce)는 중앙 집중형 형상 관리 툴로서, git가 마찬가지로 클라이언트와 서버로 구분됩니다. git은 오픈 소스이고, 소규모 팀 또는 인디 개발 팀에게 높은 인기를 구사하여 많은 git 호스팅 업체들이 이러한 팀들을 위한 무료 플랜을 제공하고 있습니다. 하지만 퍼포스의 경우, 기업에서 많이 사용하는 툴로 git에 비해 개인에 대한 접근성이 쉽지 않고 이를 호스팅 해주는 사이트를 찾기 쉽지 않습니다. 제가 정리한 퍼포스 서버 호스팅을 지원하는 도메인 목록은 아래에서 설명합니다. 이와는 별개로 이번 포스팅은 Helix TeamHub 로 진행될 것을 알립니다. 서버 호스팅 사이트 목록 Assembla Assembla는 Git, SVN, 프로젝트 관리 뿐 아니라 Perforce 호스팅 역시 지..
앞서서 펜윅 트리에 대해서 소개한 적이 있습니다[링크]. 위 링크에서 세그먼트 트리와의 비교점 역시 쓰여있으므로, 차이점을 알고 싶으신 분들은 위 링크를 방문해 주시면 되겠습니다. 따라서 이 포스팅에서는 순수하게 세그먼트 트리에 대해서 설명하도록 하겠습니다. 세그먼트 트리 역시 부분합을 빠르게 찾을 수 있는 자료구조입니다. 위키피디아에서는 다음과 같이 정의하고 있습니다 : 통계 트리(statistic tree)라도고 하는 세그먼트 트리(Segment tree) 는 세그먼트나 간격에 대한 정보를 저장하는 트리 자료구조입니다. 주어진 지점에서 포함된 세그먼트들을 쿼리할 수 있습니다. 이론적으로 정적 구조체이며, 이 말은 한번 만들어지면 수정될 수 없음을 의미합니다. 유사한 데이터 구조로 간격 트리(inter..
오래 전에 어떠한 사유를 계기로 리눅스 마스터 2급을 준비하였던 적이 있습니다. 1차는 온라인이라서 별 어려움이 없었지만, 2차는 오프라인 실기였기 때문에 없는 시간에 준비하느라 꽤나 고생했었습니다. 인터넷에 리눅스 마스터 2급 정리에 대한 많은 자료들이 배포되고 있지만, 그 중 일부는 오래되거나 요약 형식으로 정리된 문서였고 또다른 일부는 문서가 유료여서 굳이 구매하면서까지 합격하고 싶지는 않았습니다. 배포 그래서 30시간 정도 준비하면서 만든 제 정리집을 배포하고자 합니다. 이 문서가 특정 타겟을 위해 작성된 문서가 아닌 만큼 대부분의 사람들이 이해하는데 어렵지 않은 내용들을 담고 있지만, 다음의 취지를 가진 사람들에게 특히 잘 맞으리라 생각됩니다, 1. 시간이 부족하여 인터넷 레퍼런스를 찾아볼 여유..
자동적으로 메모리를 관리해주지 않는 언어로 프로그래밍을 작성하다 보면, 내 프로그램에 누수가 있는지에 대한 걱정은 한 번씩 해볼 만한 문제입니다. 이와 관련하여, _crtdbg, visual leak detector 등 다양한 방법에 대해 논의되어 있는 사이트를 소개하고자 합니다. https://post.naver.com/viewer/postView.nhn?volumeNo=14962388&memberNo=559061 메모리 누수 잡아버리기 [BY MastProgs] 언제부터 누수됐는지 모른다. 어디서 누수가 된지도 모른다. 다만 남다른 재주는 있지. ... m.post.naver.com 레퍼런스 참고자료 게임 서버 플머의 노트장 - 메모리 누수 잡아버리기
- Total
- Today
- Yesterday
- UE4
- 코드 저작권
- C++ Compile error
- Auto
- MSVC C1083
- 퍼포스 개요
- P4 Stream
- DXGI
- c++ 핫 리로드
- C# 람다식
- visual studio hot reload
- P4 Streams
- C++
- code copyright
- C7568
- C# lambda expression
- 행렬
- 언리얼 엔진
- visual studio 핫 리로드
- 구간합
- c++ hot reload
- Visual Studio C1083
- Perforce Streams
- 구글테스트
- game hot reload
- 알고리즘
- 퍼포스 스트림
- GoogleTest
- C# 익명함수
- Perforce Stream
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |