[게임 서버] 7.1 플레이어의 정보 저장
카테고리: GameServer
태그: GameServer
📦 7. 데이터베이스 기초
👉🏻 1. 플레이어의 정보 저장
💾 저장 방식
기본 원칙:
- 온라인 게임에서는 플레이어 정보를 서버에만 저장한다
저장 방법:
- 파일
- 데이터베이스
📊 파일 vs 데이터베이스 비교
| 비교 조건 | 단순 파일 | 데이터베이스 | 비고 |
|---|---|---|---|
| 소프트웨어 비용 | 없다 | 없거나 높다 | 오픈 소스 제품은 제한적으로 무료다 |
| 저장 및 로딩 속도 | 빠르다 | 느리다 | 데이터베이스도 결국 파일 시스템을 사용한다 |
| 데이터 관리, 분석 속도 | 느리다 | 빠르다 | 데이터베이스는 빠른 검색을 위한 인덱스 기능이 있다 |
| 데이터 백업 및 복원 기능 | 없다 | 있다 | - |
| 원자성 | 불가능하다 | 가능하다 | 데이터베이스의 트랜잭션 기능이다 |
| 일관성 | 없다 | 있다 | 데이터베이스의 제약(constraints) 기능이다 |
| 고립성 | 없다 | 있다 | 데이터베이스의 락 기능이다 |
| 지속성 | 없다 | 있다 | 데이터베이스의 로그 버퍼 기능이다 |
| 데이터 구조 변경 | 느리다 | 빠르다 | 컨버팅 과정 필요 vs 즉시 변경 가능 |
🔐 ACID 속성
원자성 (Atomicity):
- 데이터 2개 이상을 전부 변경하고자 할 때 전부 혹은 전무(全無) 처리가 되게 한다
- 데이터베이스의 트랜잭션 기능
일관성 (Consistency):
- 잘못된 상태의 데이터를 원천 봉쇄한다
- 데이터베이스의 제약(constraints) 기능
고립성 (Isolation):
- 경쟁 상태로부터 자유롭게 해 주는 기능
- 데이터베이스의 락 기능
지속성 (Durability):
- 장애 직전의 상태로 복구 가능한지에 관한 것
- 데이터베이스의 로그 버퍼 기능
🧐 정리
파일 방식 권장:
- 소규모 프로젝트
- 단순한 데이터 구조
- 빠른 저장/로딩이 중요
데이터베이스 권장:
- 대규모 온라인 게임
- 복잡한 데이터 관리
- 데이터 무결성이 중요
- 검색/분석 기능 필요
핵심:
- 데이터베이스는 ACID 속성으로 안정성 보장
- 파일은 간단하지만 고급 기능 없음
- 온라인 게임은 대부분 데이터베이스 사용
댓글남기기