Server/C++ 77

C++ 환경변수 .env 파일 사용하기

C++에서 .env 파일을 사용하는데, getenv 함수가 deprecated 되었다.직접 환경변수를 저장하지 않고 메모리상 map에 key-value 값으로 사용하게끔 만들었다.간단하다. 파일을 읽어오고 "="라는 delimiter를 기준으로 key-value로 map에 저장하고 메모리에 갖고있게끔 했다.프로젝트 root 폴더에 .env 파일을 위치시킨다. // Utils.h#pragma once#include #include #include class Utils{public: Utils() = delete;public: static void Init(const std::string& filePath = "../.env"); static std::string getEnv(const std::string..

Server/C++ 2025.01.03

JSON 사용하기 - nlohmann json

1. 헤더파일 다운로드json.hpp 파일을 다운로드한다.https://github.com/nlohmann/json/releases  Releases · nlohmann/jsonJSON for Modern C++. Contribute to nlohmann/json development by creating an account on GitHub.github.com 2. VS 세팅편의성을위해 다운로드 받은 헤더파일을 위치를 옮겼다.   프로젝트 속성 - C/C++ - 일반 - 추가 포함 디렉터리 3. 예제#include using json = nlohmann::json;void TestJSON(){ json j = { {"name", "John"}, {"age", 30}, {"city", "New Yo..

Server/C++ 2024.11.20

Boost 라이브러리 사용하기

이번에도 최신버전을 설치했다가 호환되지 않아 다시 설치했다.Visual studio 2022, C++ 20에 맞는 버전으로 Boost 1.79를 선택했다. 1. zip파일 다운로드https://www.boost.org/users/history/version_1_79_0.html Version 1.79.0Version 1.79.0 April 13th, 2022 14:22 GMT Documentation DownloadsPlatformFileSHA256 Hash unixboost_1_79_0.tar.bz2475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39boost_1_79_0.tar.gz273f1be93238a068aba4f9735a4a2b00..

Server/C++ 2024.11.19

C++ MySQL 연동 - Connector/C++

C++에서 MySQL을 연동하는 방법은 크게 두 가지가 있다고 한다.C API:C API를 사용할 때는 더 많은 제어권을 가지고 있지만, 코드가 복잡할 수 있습니다.직접적인 API 호출과 메모리 관리를 해야 하므로 세심한 주의가 필요합니다.Connector/C++:C++ 객체 지향 프로그래밍을 지원하며, 더 직관적인 코드 작성을 지원합니다.객체 지향적인 접근 방식을 사용하여 관리와 유지 보수가 더 쉬울 수 있습니다.결론:C++ 객체 지향 프로그래밍을 선호하고, 코드의 가독성과 유지 보수를 중시한다면 MySQL Connector/C++를 사용하는 것이 좋습니다.저수준 제어가 필요하거나, 라이브러리의 무게를 줄이고 싶다면 MySQL C API를 사용할 수 있습니다.그리하여 Connector/C++ 라이브러리..

Server/C++ 2024.08.30

Google Protobuf - 4) 자동화 - 2

이번에는 코드 구현부가 자동으로 생성되는 파이썬 파일을 만들 것이다.파이썬 설치1. Visual Studio Installer에서 python 설치 2. 새프로젝트 만들기 - Python 프로젝트 3. cmd창에서 python 명령어로 설치 확인-> 환경변수 등록하기 4. 라이브러리 설치jinja2, pyinstallerjinja2로 자동화하기cpp로 작성한 .h파일을 그대로 복사한다. 주의) cpp의 .h파일로 만들어졌기 때문에 python 문법과 다르게 띄어쓰기가 적용된다.띄어쓰기가 틀리면 'tag name expected' 에러가 뜨니 자동완성에 주의하자.완성된 코드는 cmd창에서 확인이 가능하다.// PacketHandler.h#pragma once#include "Protocol.pb.h"usi..

Server/C++ 2024.08.21

Google Protobuf - 2) 패킷 송수신

- 다양한 방법으로 데이터를 지원해준다.- 현업에서 대중적으로 사용한다고 한다. -> 협업시 프로토콜을 맞추기에 용이하다.- 임시객체를 꼭 임시로만 사용할 필요는 없다.- C++, C# 지원이 가능해서 Unity와 연동도 가능하다. xml, JSON 보다 사용도가 더 높은 Protocol buffer라고 한다.// PDL.xml // Protocol.protosyntax = "proto3"; // versionpackage Protocol; // namespacemessage BuffData{ uint64 buffId = 1; float remainTime = 2; repeated uint64 victims = 3;}message S_TEST{ uint64..

Server/C++ 2024.08.21

Google Protobuf - 1) 21.3 설치

1. 구버전 다운로드visual studio 2022를 사용중인데, 최신버전인 27.3과 구버전인 3.17이 호환되지 않는다.무슨 에러인지는 자세히 모르겠지만... 그래서 결국 성공한 21.3 버전을 사용할 것이다. - 실행용 파일  - 라이브러리용 파일-> 8번과 연동 https://github.com/protocolbuffers/protobuf/releases?q=visual+studio&expanded=true Releases · protocolbuffers/protobufProtocol Buffers - Google's data interchange format - protocolbuffers/protobufgithub.com 2. 압축 해제 후 폴더 이동 3. Protocol.proto 파일 생..

Server/C++ 2024.08.20