네트워크 프로그래밍에 대해서 공부를 하게 되면 기본적으로 동기 소켓통신을 시작으로 비동기 소켓통신을 배우고 프로그래밍 프로젝트 과제를 하게 됩니다. 어떻게 보면 소켓통신을 하는데 있어서 기본적인 원리와 소켓통신을 하면서 이루어지는 통신과 확인과정에 대한 이해를 돕는데 가장 간단한 방법이고 배우는 시간이 오래 걸리지 않기 때문에 그런것 같습니다. 하지만 저는 MMORPG를 봤을 때 몇십 만명이나 되는 인원들이 마다 소켓을 할당해줄 경우 메모리가 남아 나지 않을 텐데 어떻게 구현이 가능하지라는 의문을 가지게 되었고, 해결방법을 찾다가 IOCP 소켓통신에 대해 알게 되었습니다.
동기 통신과 비동기 통신으로 구현된 채팅 프로그램 소스를 IOCP로 개선하여 통신의 종류마다 테스트를 통해 성능의 차이와 IOCP 구동원리에 대한 이해와 구현까지 실습하면서 네트워크 프로그래밍의 깊이 있는 이해를 하고자 프로젝트를 시작하게 되었습니다.
기간
- 2013년 1월 - 2013년 2월 (1개월)
개발환경
- Windows 7 환경
- VC++ MFC
- JsonCPP Library for C++
- Windows IOCP Socket Library
- MySQL 5.2