Skip to content

08 Build and Run

leedg edited this page Mar 25, 2026 · 1 revision

08. ๋นŒ๋“œ ๋ฐ ์‹คํ–‰

๊ฐœ์š”

NetworkModuleTest๋Š” Windows(MSBuild) ๋ฐ Linux(CMake/Docker) ๋นŒ๋“œ๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•œ๋‹ค. ์‹คํ–‰ ์ˆœ์„œ๋Š” TestDBServer โ†’ TestServer โ†’ TestClient ์ˆœ์„œ๋ฅผ ์ง€์ผœ์•ผ ํ•œ๋‹ค.


1. Windows ๋นŒ๋“œ (MSBuild)

์š”๊ตฌ ์‚ฌํ•ญ

  • Visual Studio 2022 Professional ์ด์ƒ
  • Windows SDK (์†Œ์ผ“/RIO API ์ง€์›)
  • PowerShell 5.1 ์ด์ƒ

MSBuild ์ง์ ‘ ์‹คํ–‰

& 'C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe' `
    'NetworkModuleTest\NetworkModuleTest.sln' `
    /p:Configuration=Debug `
    /p:Platform=x64 `
    /m
์˜ต์…˜ ๊ฐ’ ์„ค๋ช…
/p:Configuration Debug / Release ๋นŒ๋“œ ๊ตฌ์„ฑ
/p:Platform x64 ๋Œ€์ƒ ํ”Œ๋žซํผ (64๋น„ํŠธ)
/m โ€” ๋ณ‘๋ ฌ ๋นŒ๋“œ ํ™œ์„ฑํ™”

์ถœ๋ ฅ ๋ฐ”์ด๋„ˆ๋ฆฌ ์œ„์น˜: x64\Debug\ (์†”๋ฃจ์…˜ ๋ฃจํŠธ ๊ธฐ์ค€)

์Šคํฌ๋ฆฝํŠธ ๋นŒ๋“œ

์ „์ฒด ๋นŒ๋“œ:

.\build_all.ps1 -Configuration Debug -Platform x64

๊ฐœ๋ณ„ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ:

์Šคํฌ๋ฆฝํŠธ ์„ค๋ช…
build_all.ps1 ์†”๋ฃจ์…˜ ์ „์ฒด ๋นŒ๋“œ
build_serverengine.ps1 ServerEngine ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ๋นŒ๋“œ
build_testserver.ps1 TestServer ํ”„๋กœ์ ํŠธ๋งŒ ๋นŒ๋“œ
build_common.ps1 ๊ณตํ†ต ๋นŒ๋“œ ์„ค์ • ์Šคํฌ๋ฆฝํŠธ

2. ์‹คํ–‰ ์ˆœ์„œ

TestDBServer โ†’ TestServer โ†’ TestClient ์ˆœ์„œ๋กœ ๊ธฐ๋™ํ•ด์•ผ ํ•œ๋‹ค. TestServer๋Š” ๊ธฐ๋™ ์‹œ TestDBServer์— ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•˜๋ฏ€๋กœ, TestDBServer๊ฐ€ ๋จผ์ € ์ค€๋น„๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

1. TestDBServer  (ํฌํŠธ 8002)  โ€” DB ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ์„œ๋ฒ„
2. TestServer    (ํฌํŠธ 9000)  โ€” ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ ์„œ๋ฒ„
3. TestClient                 โ€” ์—ฐ๊ฒฐ ํด๋ผ์ด์–ธํŠธ

์ฐธ๊ณ : TestDBServer ๊ธฐ๋ณธ ์ฝ”๋“œ ํฌํŠธ๋Š” 8001์ด์ง€๋งŒ ์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ๊ฐ’์€ 8002๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํฌํŠธ ํ˜ผ๋™ ์ฃผ์˜.

๊ฐœ๋ณ„ ์‹คํ–‰ ์Šคํฌ๋ฆฝํŠธ

์Šคํฌ๋ฆฝํŠธ ์„ค๋ช…
run_allServer.ps1 TestDBServer + TestServer๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๊ธฐ๋™ (๊ถŒ์žฅ)
run_server.ps1 TestServer๋งŒ ๊ธฐ๋™
run_dbServer.ps1 TestDBServer๋งŒ ๊ธฐ๋™
run_client.ps1 TestClient ์‹คํ–‰

run_allServer.ps1 ์‚ฌ์šฉ ์˜ˆ์‹œ

# ๊ธฐ๋ณธ ์‹คํ–‰ (ํฌํŠธ ์ž๋™ ํ• ๋‹น)
.\run_allServer.ps1 -Configuration Debug -Platform x64

# ํฌํŠธ ๊ณ ์ • ์‹คํ–‰
.\run_allServer.ps1 -Configuration Debug -Platform x64 `
    -ServerPort 9000 -DbPort 8002 -DisablePortFallback

# ๊ฐ™์€ ์ฐฝ์—์„œ ์‹คํ–‰
.\run_allServer.ps1 -Configuration Debug -Platform x64 -NoNewWindow

-DisablePortFallback ์—†์ด ์‹คํ–‰ํ•˜๋ฉด ๊ธฐ๋ณธ ํฌํŠธ๊ฐ€ ์‚ฌ์šฉ ์ค‘์ผ ๋•Œ ์ž๋™์œผ๋กœ ๋‹ค์Œ ๋นˆ ํฌํŠธ๋กœ ์ด๋™ํ•œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ

.\run_client.ps1 -Configuration Debug -Platform x64 -ServerPort 9000

3. ํ…Œ์ŠคํŠธ ์‹คํ–‰

์Šคํฌ๋ฆฝํŠธ ์„ค๋ช…
run_test.ps1 ๋‹จ์ผ ํด๋ผ์ด์–ธํŠธ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ
run_test_2clients.ps1 2๊ฐœ ํด๋ผ์ด์–ธํŠธ ๋™์‹œ ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ
run_test_auto.ps1 ์ž๋™ํ™” ํ…Œ์ŠคํŠธ (CI์šฉ)
run_perf_test.ps1 ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ

4. Linux / Docker ๋นŒ๋“œ

Linux ํ™˜๊ฒฝ ํ…Œ์ŠคํŠธ๋Š” test_linux/ ํด๋”์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค.

test_linux/
โ”œโ”€โ”€ CMakeLists.txt
โ”œโ”€โ”€ docker-compose.yml
โ”œโ”€โ”€ Dockerfile
โ”œโ”€โ”€ run_docker_test.ps1
โ””โ”€โ”€ scripts/

Docker ํ…Œ์ŠคํŠธ ์‹คํ–‰

.\test_linux\run_docker_test.ps1

๋˜๋Š” Docker Compose ์ง์ ‘ ์‚ฌ์šฉ:

cd test_linux
docker-compose up --build

CMake ๋นŒ๋“œ (Linux ์ง์ ‘)

cd test_linux
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug
make -j$(nproc)

Linux ๋นŒ๋“œ ์‹œ libpq-dev๊ฐ€ ํ•„์š”ํ•˜๋‹ค (PostgreSQL ํด๋ผ์ด์–ธํŠธ ํ—ค๋”). Dockerfile์— ์ด๋ฏธ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.


5. ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ

์ฆ์ƒ ์›์ธ ํ•ด๊ฒฐ
TestServer ์‹œ์ž‘ ์‹œ DB ์—ฐ๊ฒฐ ์‹คํŒจ TestDBServer๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์Œ TestDBServer๋ฅผ ๋จผ์ € ๊ธฐ๋™
WSAECONNREFUSED ๋กœ๊ทธ ๋ฐ˜๋ณต DB ์„œ๋ฒ„ ๊ธฐ๋™ ์ค‘ 1์ดˆ ๊ฐ„๊ฒฉ ์ž๋™ ์žฌ์—ฐ๊ฒฐ, ๊ธฐ๋‹ค๋ฆฌ๋ฉด ์ž๋™ ๋ณต๊ตฌ
๋นŒ๋“œ ์˜ค๋ฅ˜ libpq not found PostgreSQL ํ—ค๋” ๋ˆ„๋ฝ libpq-dev ์„ค์น˜ ๋˜๋Š” Docker ๋นŒ๋“œ ์‚ฌ์šฉ
ํฌํŠธ ์ถฉ๋Œ ์ด์ „ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํฌํŠธ ์ ์œ  ์ค‘ kill_test_procs.ps1 ์‹คํ–‰ ํ›„ ์žฌ๊ธฐ๋™
# ํ…Œ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค ๊ฐ•์ œ ์ข…๋ฃŒ
.\kill_test_procs.ps1

Clone this wiki locally