
개요
소켓 서버를 C++의 Boost.asio라이브러리를 기반으로 구현할 것이기 때문에 관련 패키지 설치가 필요하다.
또한 PostgreSQL과 트랜잭션이 필요하므로 관련 라이브러리가 필요하다. 그 외에도 통신에 사용될 타입을 json으로 사용, 서버 로그를 기록하고 보안을 유지하기 위해 관련 라이브러리들의 설치가 필요하다.
vcpkg를 사용한다면 마치 python의 venv처럼 프로젝트 내에서 필요한 패키지를 설치하고 사용할 수 있다.
이는 컴퓨터 내에 전역으로 패키지를 설치하지 않기 때문에 다양한 장소에서도 레포지토리를 clone 후 이미 지정해 놓은 패키지들을 명시하여 설치해 줄 수 있어 편리하다.
vcpkg 설치
윈도우 환경이라면 powerShell을 사용하여 설치할 수 있다.
# vcpkg 저장소 클론 및 부트스트랩 스크립트 실행
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
vcpkg를 clone해온 후 해당 디렉토리로 이동하여 bootstrap-vcpkg.bat을 실행해 주면 된다.
리눅스 환경이라면 bash쉘을 사용하여 bootstrap-vcpkg.sh를 실행해 주면 된다.
# vcpkg 클론
echo "vcpkg 저장소 클론 중..."
git clone https://github.com/microsoft/vcpkg.git
# vcpkg 부트스트랩
echo "vcpkg 부트스트랩 실행 중..."
cd vcpkg
./bootstrap-vcpkg.sh
vcpkg.json
vcpkg를 통해 설치할 라이브러리들을 json파일로 미리 지정해 둘 수 있다.
{
"name": "game-socket-server",
"version": "1.0.0",
"dependencies": [
"boost-system",
"boost-asio",
"boost-beast",
"boost-uuid",
"libpqxx",
"nlohmann-json",
"spdlog",
"fmt",
"openssl"
]
}
- boost-system : boost라이브러리의 시스템을 사용하기 위한 라이브러리다.
- boost-asio : boost라이브러리를 활용해 소켓 통신에 대한 기능을 사용하기 위한 라이브러리다.
- boost-beast : boost라이브러리를 활용해 HTTP 통신을 위한 라이브러리다, 혹여 필요할까 의존성을 추가해 주었지만 딱히 사용할 일은 없었다.
- boost-uuid : 세션 토큰을 지정하기 위해 사용한 UUID 암호화 관련 라이브러리다.
- libpqxx : postgresSQL 데이터베이스와 트랜잭션 처리를 하기 위한 라이브러리다.
- nlohmann-json : 요청과 응답 패킷을 JSON타입으로 편하게 주고받기 위한 JSON 관련 라이브러리다.
- spdlog : 요청에 대한 수행, 에러 등을 로깅하기 위한 라이브러리다.
- fmt : JSON데이터의 포맷을 쉽게 명시해 주기 위한 포매터 라이브러리다.
- openssl : 간단한 해시 알고리즘을 통해 암호화를 하기 위한 라이브러리다.
패키지 설치
vcpkg를 clone 후 패키지 설치를 진행하였고, vcpkg.json파일을 제작하였다면 프로젝트에서 사용할 라이브러리를 설치할 수 있다.
# 루트 디렉토리로 이동 및 vcpkg.json에 정의된 의존성 설치
cd ..
\vcpkg\vcpkg install
vcpkg설치 후 해당 디렉토리로 이동했으므로 다시 루트 디렉토리로 돌아와준다.
vcpkg디렉토리 하위의 vcpkg디렉토리에서 install 명령어를 입력하면 vcpkg.json에서 명시한 라이브러리 설치가 진행된다.
패키지 설치가 완료되면 이제 라이브러리를 사용할 준비가 되었다, 하지만 바로 사용할 수 있는 것이 아니며 관련 라이브러리의 위치를 명시해 주어 컴파일 단계에서 의존성을 확인할 수 있도록 해주어야 한다.
관련 내용은 Windows와 Linux OS로 나누어 추후에 빌드 관련 세팅을 진행하도록 하겠다.
'프로젝트 > 메타버스 게임' 카테고리의 다른 글
[메타버스 게임] 캐쥬얼 배틀로얄 프로젝트 Linux 빌드 환경 세팅(Makefile) (0) | 2025.03.31 |
---|---|
[메타버스 게임] 캐쥬얼 배틀로얄 프로젝트 Windows 빌드 환경 세팅(VisualStudio) (0) | 2025.03.31 |
[메타버스 게임] 캐쥬얼 배틀로얄 프로젝트 ERD 제작, 물리 DB 구현 (0) | 2025.03.27 |
[메타버스 게임] 캐쥬얼 배틀로얄 프로젝트 기술 스택 (0) | 2025.03.27 |
[메타버스 게임] 캐쥬얼 배틀로얄 프로젝트 기획 (0) | 2025.03.27 |