반응형
Web Server(aka. HTTP Server)
- 테이크 아웃 포장 전문 식당
- 손님이 음식을 받아서 떠나면, 그 이후론 연락이 끊긴다.
- 질의/응답 형태
- 드물게 정보를 요청/갱신한다.
- 실시간 interaction이 필요하지 않다.
- 식당에서 손님에게 먼저 접근할 일은 없다.
- 주문 후 손님이 바로 떠나면, 손님의 상태를 당분간 잊고 지낸다.(Stateless)
- 게임에 국한되지 않고 웹 서비스 만드는데 사용
- 처음부터 만드는 경우는 없고 프레임 워크를 하나 골라서 사용
Game Server(aka. TCP Server, BInary Server, Stateful Server...)
- 일반 식당
- 서빙 직원이 와서 손님에게 물어볼 수 있고
- 손님이 추가 주문을 하기도 하고
- 실시간 Interaction이 있다.
- 요청/갱신 횟수 많다
- 실시간 interaction이 필요
- 언제라도 직원이 손님한테 접근 가능해야 한다
- 손님이 식당에 머무는 동안, 손님의 상태를 보며 최상의 서비스를 제공한다.
Game Server 제작은?
- 클라이언트는 유니티나 언리얼 배우면 내부 동작 몰라도 그럭저럭 만들 수 있어. 하지만 서버는 지식 없이 사용할 만큼 간단하지 않아.
- 최적의 프레임워크라는 것이 존재하기 애매함
- 메뉴가 다른데 식당 인테리어와 채용 직원 수가 동일할 수 없다.
- 그럼 무엇을 고려해야 할까?
MMORPG 게임 서버 제작은, 식당 운영에 비유 가능
- 멀티쓰레드(Concurrency) : 직원들 고용하고 운영하는 것.
- 네트워크 : 직원들이 손님과 어떤 방식으로 대화를 할지.
- DB: 결제 및 장부 처리를 어떤 방식으로 할지.
- 게임 로직 : 손님들의 주문을 신속하고 맛있게 요리하는 것.
- 서버 구조 : 위에서 정한 정책에 맞는 식당의 인테리어에 대해 고민하는 것.
반응형
'Server programming' 카테고리의 다른 글
01_01_멀티쓰레드 개론 (0) | 2023.03.12 |
---|---|
00_03_OT_환경 설정 (0) | 2023.03.12 |
00_01_OT_OT (0) | 2023.03.12 |
02_08_멀티쓰레드 프로그래밍_Sleep (0) | 2022.08.05 |
02_07_멀티쓰레드 프로그래밍_SpinLock (0) | 2022.08.05 |
댓글