Server programming

00_02_OT_서버 개론

devRiripong 2023. 3. 12.
반응형
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

댓글