참고로 빅노잼임

뭔가 좀 전공자가 슬금슬금 보이고 해서 개발자 등판을 원하는가 싶어서 등판해봄

------------------------------------------

 

 

믿거나말거나 게임서버개발자라 저거 대충 설명해줄께

 

마영전때 잦이언트서버 때부터 시작해서 저런 단일서버 운영구조에 대해서 관심이 많다보니 저거 연구 좀 했었거든

 

 

클라이언트

 

 스위치 패브릭

로그인앱   베이스앱

 

스위치 패브릭

로그인앱 매니저, 베이스앱 매니저, DB매니저 - 스위치 - DB

 

 

그림은 뭐 이렇게 있었지?

 

스위치에 대해서 먼저 설명하자면 그냥 니네들 집에 하나씩 있는 그 공유기 말고,

공유기능 없는 그 스위칭허브라 보면 된다. 공유기 포트수 모자라면 허브 하나씩 달아서 포트수 늘리는데 쓰는거.

근데 이게 스위칭허브 밑에 있는 서버들끼린 서로 통신이 되거든. 그러니까 서로 짜여져있다 라는 개념이 돼서 Fabric이라고 표현하는거. 결국 별 의미 없음.

 

 

그러면 이제 스위치 패브릭은 사실상 별 의미없는거니까 다시 봐바.

클라이언트랑 로그인앱이 직접연결돼있고, 베이스앱이 또 클라이언트랑 직접 연결돼있지?

난 유저들이랑 직접 맞대는 이런것들을 보통 프론트엔드 서버라고 하는데 클라이언트가 직접 해킹가능한 서버는 프론트엔드 서버 뿐이다.

 

서버는 클라이언트로 일방적으로 정보를 보내기도 하지만, 클라이언트가 뭔가를 요청하면 답변을 하기도 하는데

이 요청이 적법한가 아닌가를 프론트엔드에서 체크해서 적절한 권한이 아니면 제껴야되는데, 그게 아니라면 가끔 권한외의 액션이 실행되기도 하거든.

 

근데 로그인앱은 뭐 로그인 기능이고, 베이스앱은 보니까 유저 접속유지용이네.

설명하기 좀 그러니까 대충 갖다붙이자면 베이스앱 = 차고 로 보면 되겠다.

 

 

그리고 실제 게임은 셀앱에서 돌아가

 

 

예를들어 내가 11번 베이스앱에 접속해있고, 내친구가 12번 베이스앱에 접속되어있다고 했을 때

새로 매칭되어서 생긴 방이 14번 셀앱에 방이 생성됐어. 그러면 11번 베이스와 12번 베이스가 14번 셀앱과 통신해서 전투정보를 서로 공유한 뒤, 각 유저한테 셀앱 내의 전투정보를 뿌려주는거지.

 

미니맵상에 셀 단위 관리는 그냥 '셀' 이라는 단어가 같은거고, 셀앱이랑은 별 상관없는 셀앱 내의 기능임.

 

유저의 접속을 관리할 서버와 전투를 관리할 서버가 서로 통신할뿐 한덩어리가 아니기때문에

이렇게 되면 동접자 수가 존나게 늘면 베이스앱이랑 셀앱을 존나게 늘리면 한 서버에서도 동접자를 몇십만 받을수있어.

(그러나 한국월탱은 6천명이면 뒤져나간다. 러시암에선 80만 동접인데 이쪽에도 셀 좀 늘려라 십라)

 

 

여튼 이게 빅왈도 엔진의 특성

 

 

그리고 이 셀앱들이 몇개가 깔려있는지, 어느서버가 부하가 심한지 체크해서 부하 약한서버에 방 새로 파주고 이러는게 셀앱 매니저고 유저수가 너무 몰린다싶으면 다른 베이스앱으로 유저들 풀어주는게 베이스앱 매니저

 

(아마도 차고 구석탱이에 적혀있는 'W.O.T 11'  뭐 이런 숫자가 베이스앱 번호가 아닌가 한다.)

 

근데 얘들은 클라이언트랑 스위치페브릭으로 연결되어있지 않지. 얘들은 서버 관리용이기 때문에 유저들하고 연결도 안돼있으니 직접적으로 해킹할 방법은 없어. 이건 백엔드라고 부르는데 보통 아예 패킷정의도 달라서 통신자체가 안된다.

 

만약 백엔드가 외부에서 통신 가능하게 열려있거나 이런 상황이면 SE팀 불빠따 쳐맞고 뒤진다

그리고 보통 핵같은게 백엔드 참조하게 만들어져있지도 않지

 

 

 

여튼 그래서 밑에서 이야기 나왔던것처럼 베이스앱 매니저 권한을 탈취해서 뭐 어쩌고... 그건 안된다고 보면 됨

 

 

뭐 그래서 결론이 뭐냐고 묻는다면

나도 몰라 내가만든거 아니라서;

 

어짜피 나도 동종업계라 '이렇겠거니' 하는거지 내부구현이나 버그상태같은거까지 내가 알수는 없는거잖아 ㅋ

그냥 빅왈도 다이어그램 보면서 오오미 서버의 상태가? 하고 궁금해하길래 좀 알려준거

 

 

* 참고로 셀앱이라 불리는 이유는 저게 MMORPG용 엔진이라 그럼

지역단위로 서버가 바뀌기도 하는데 그걸 보통 셀 단위로 부르는경우가 많았음