기술 | 선택지 | 선택 근거 |
---|---|---|
Database | MySQL, | |
PostgreSQL, | ||
mongoDB | 타입 안정성 | |
Protobuf는 정적 타입 기반이기 때문에 데이터 타입에 대한 오류를 사전에 방지할 수 있다. |
효율성 Protobuf는 이진 형식으로 JSON, XML보다 데이터 크기가 훨씬 작아 데이터 전송 비용이 줄일 수 있고 처리 속도가 매우 빠르다.
확장성 기존 데이터 구조에 새로운 구조가 추가되어도 추가적인 파싱 로직 등이 필요하지 않기 때문에 빠르고 개발하면서 호환성도 유지할 수 있다. | | In-Memory Database | Redis, Memcached | 데이터 구조 Redis는 Collection 구조를 제공하기 때문에 List, Hash, set, sets, sorted set 등 다양한 데이터 구조를 지원하지만 Memcached는 string 타입만 지원한다. 게임 서버는 다양한 데이터를 관리하기 때문에 Redis가 더 적합하다.
장애 대비 In-memory DB의 경우 서버가 중단되는 경우 데이터가 사라질 수 있으나 Redis의 경우 AOF같은 로그를 사용하거나 Cluster 등을 활용해서 영속성과 고가용성을 확보할 수 있다.
다양한 기능 Redis의 경우 pub/sub 등 고급 기능들을 활용해 게임 서버에 대한 다양한 니즈를 충족시킬 수 있다. |