Windows IOCP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํํ ์ค์๊ฐ ๋ฉํฐํ๋ ์ด CodeNames ๊ฒ์ ์๋ฒ ๋ฐ ํด๋ผ์ด์ธํธ์ ๋๋ค. C++17๊ณผ Winsock2๋ฅผ ํ์ฉํ์ฌ ๋น๋๊ธฐ ๋คํธ์ํฌ ํต์ ์ ๊ตฌํํ์ผ๋ฉฐ, SQLite ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํตํด ์ฌ์ฉ์ ์ธ์ฆ ๋ฐ ๊ฒ์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
์ด ํ๋ก์ ํธ๋ Claude AI(Sonnet, Haiku)๋ฅผ ์ฌ์ฉํ Vibe-Coding๋ก ์งํ๋์์ต๋๋ค.
โข IOCP ๊ธฐ๋ฐ ๋น๋๊ธฐ ๋คํธ์ํฌ ํต์ โฆ Windows IOCP๋ฅผ ํ์ฉํ ๊ณ ์ฑ๋ฅ ๋ฉํฐ์ค๋ ๋ ์๋ฒ โฆ ๋์ ๋ค์ค ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ์ฒ๋ฆฌ (4๋ช ๋์ ๊ฒ์ ๋งค์นญ) โฆ ์์ปค ์ค๋ ๋ ํ ๊ธฐ๋ฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ
โข ์ฌ์ฉ์ ์ธ์ฆ ์์คํ โฆ SQLite ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ฐ ๊ณ์ ๊ด๋ฆฌ โฆ ํ์๊ฐ์ , ๋ก๊ทธ์ธ, ํ ํฐ ๊ธฐ๋ฐ ์ธ์
โข ๊ฒ์ ๋งค์นญ ๋ฐ ์ธ์ ๊ด๋ฆฌ โฆ ํ๋ ์ด์ด ๋งค์นญ ํ ์์คํ โฆ 4๋ช ๋ชจ์ด๋ฉด ์๋ ๊ฒ์ ์์ โฆ ํ ๋ถ๋ฐฐ ๋ฐ ์ญํ ์๋ ํ ๋น (์คํ์ด๋ง์คํฐ/์์)
โข ์ค์๊ฐ ๊ฒ์ ๋๊ธฐํ โฆ ํด ๊ธฐ๋ฐ ๊ฒ์ ์ํ ์ ๋ฐ์ดํธ โฆ ์นด๋ ๊ณต๊ฐ ์ํ ์ค์๊ฐ ๋๊ธฐํ โฆ ๊ฒ์ ๋ด ์ฑํ ๊ธฐ๋ฅ
โข Observer ํจํด ๊ธฐ๋ฐ UI ๋๊ธฐํ โฆ GameState ๋ณ๊ฒฝ ์ ์๋์ผ๋ก ๋ชจ๋ UI ์ ๋ฐ์ดํธ โฆ 9๊ฐ ๊ฒ์ ์ํ ์ฝ๋ฐฑ ํจ์
โข Windows Console ๊ธฐ๋ฐ UI โฆ 5๊ฐ ํ๋ฉด ๊ตฌํ (๋ก๊ทธ์ธ, ๋ฉ๋ด, ๋งค์นญ, ๊ฒ์, ๊ฒฐ๊ณผ) โฆ ์ปฌ๋ฌ ํ ์คํธ, 5x5 ์นด๋ ๊ทธ๋ฆฌ๋
Language: C++17
Networking: Windows IOCP, Winsock2
Database: SQLite3
UI: Windows Console API
Build: CMake, vcpkg
Compiler: MSVC 19.36 (Visual Studio 2022)
Platform: Windows x64
์ด ํ๋ก์ ํธ๋ Vibe Coding ๋ฐฉ์์ผ๋ก ์งํ๋ ํ์ ํ๋ก์ ํธ์ ๋๋ค. ๊ฐ ๋จ๊ณ๋ณ๋ก AI์์ ์ํธ์์ฉ์ ํตํด ๊ฐ๋ฐ๋์์ต๋๋ค:
๊ฒ์ ์๋ฒ๋ฅผ Manager ๊ณ์ธต์ผ๋ก ๊ตฌ์กฐํํ์ฌ NetworkManager, SessionManager, DatabaseManager, GameManager๋ก ๋ถํ ํ์ต๋๋ค. ๊ฐ ๋ชจ๋ ๊ฐ Mediator ํจํด๊ณผ Observer ํจํด ๋ฑ ๋์์ธ ํจํด์ ์ ์ฉํ์ฌ ๋์จํ ๊ฒฐํฉ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ์ต๋๋ค. ๊ธฐ์กด Cํ๋ก์ ํธ์ ์ ์๋ ๊ฒ์ ํ๋กํ ์ฝ์ ํ์ฉํด ํต์ ์ ์ํํ๋๋ก ํด๋ผ์ด์ธํธ-์๋ฒ ๊ฐ ํธํ์ฑ์ ๊ฒ์ฆํ์ต๋๋ค.
bowons์ด ์ค๊ณํ Manager ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ฅผ ๊ตฌํํ์ต๋๋ค:
- NetworkManager: Windows IOCP API, CreateIoCompletionPort, WSAAccept ๋ฑ IOCP ๊ธฐ๋ฐ ๋น๋๊ธฐ I/O ๊ตฌํ
- SessionManager: ์ค๊ณ๋ ํ๋กํ ์ฝ ํธ๋ค๋ฌ๋ค์ Mediator ํจํด์ ๋ฐ๋ผ ๊ตฌํ
- DatabaseManager: SQLite ํตํฉ ๋ฐ ์ฟผ๋ฆฌ ์์ฑ - ๊ธฐ์กด ํ๋ก์ ํธ ์ฟผ๋ฆฌ๋ฌธ ์ด์ฉ
- GameManager: Mediator ํจํด์ ํตํ ๊ฐ Manager ๊ฐ ์กฐ์จ ๋ก์ง ๊ตฌํ
IOCP์ Windows ๋น๋๊ธฐ API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๋น๋๊ธฐ ๋คํธ์ํฌ ํต์ ์ ๋ณต์กํ ๋ถ๋ถ์ ๋ด๋นํ์ต๋๋ค.
bowons์ ์์ฒญ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ ์ ์ฒด๋ฅผ ๊ตฌํํ์ต๋๋ค:
- IOCPClient: Windows IOCP ๊ธฐ๋ฐ ๋น๋๊ธฐ ๋คํธ์ํน ํด๋ผ์ด์ธํธ
- GUIManager: 5๊ฐ ๊ฒ์ ํ๋ฉด ๊ด๋ฆฌ ๋ฐ ์ํ ์ ํ
- GameScreen: ๊ฒ์ UI ๊ตฌํ ๋ฐ Observer ํจํด์ ํตํ ์ํ ๋๊ธฐํ
- 20+ ๊ฐ์ ํ๋กํ ์ฝ ํ์ ๋ฐ ํจํท ํธ๋ค๋ฌ ์์ฑ