[메신저 프로그램 ] #3. 데이터베이스 연동

게임 서버 프로그래밍/개발일지

2020. 4. 26. 22:04

서버의 로직이 얼추 완성됐다. 테스트를 해보지 않아서 제대로 작동하는지는 알 수없지만 .. 소켓을 통해 들어오고 나가는 과정은 오류가 없다. 클라이언트를 만들어서 테스트를 해보려다가 먼저 데이터베이스를 사용하기로 했다.

 

방학동안 mssql을 썼었는데.. 요새 분위기를 보니 거의 끝물인 것같고, 문법이 거의 비슷하다면 더욱이 mssql을 써야 할 이유가 없다고 생각해서 mysql을 사용했다. gui가 마음에든다.. 

 

기본적인 연동을 끝내고 쿼리를 실행할 수 있는 함수까지 완성해 두었다. 처음에 어떻게 더 편하게 데이터를 읽고 쓰고 할 수 있을까 생각을 해봤었는데.. DBManager 내부에서 모든걸 해결하려 했더니 답이 안보였다. 어떤 구조체를 넣어주면 값을 넣어주고.. 아니면 읽어서 알아서 db 처리를 하려고 했는데, 이 과정을 추상화 하기란 쉽지가 않았다.

 

그래서 그냥 분리하기로 했다. DBManager는 초기화와 쿼리실행만하고 그 결과 값으로 sql 구조체 포인터가 갱신되도록 그리고 갱신된 데이터를 읽을수 있도록 반환해 주는 함수를 만들어 놨다. 데이터를 쓰는것은 생각해보니까 외부에서 값들을 버퍼를 이용하여 string에 대입한 후 해당 문장만 매개변수로 넣어주면 그만이니까. (글 쓰면서 생각한건데 쿼리 실행문을 VA_ARGS를 써서 값들도 쿼리문 하나로 결정낼 수 있으면 좋을 것 같다.)