티스토리 뷰

history | grep

240714/서버 점검

LHOIKTN 2024. 7. 14. 18:26

 

로드나인

12일부터 개쓰레기 rpg게임인  로드나인을 하고 있다. 

 

오픈하고 만들 생각인지 계속 점검을 띄우고 있다.  물론 난 무과금이라 조금만 더 짜증나게 하면 그냥 삭제하면 그만이지만,  무슨 점검을 뭐 이딴 식으로 올리는지 ㅡㅡ;; 이럴거면 그냥 오픈을 좀 미루지.. 하는 생각도 있지만,  나도 개발자로서 이 마음을 안다. 문제 없을 거라고 생각했는데, 막상 오픈하니까 문제 터지는? ㅋㅋ 개발도 사람이 하는 일이니 어쩔 수 없다.   점검 보상이나 확실히 줬으면 좋겠다. 

 

 

 

 

 점검시작시간에  오후 3시 0분 18초로 찍히는 거보면 그냥 누가 점검일정 생성하면 그 시간이 바로 점검 시작시간이 되는 듯 거 같다.  점검 종료 시간은 어이가 없는데 ㅡㅡ;;   도대체 저 숫자는 어디서 나오는 걸까  37년 말까지 표시된거 보면 Y2K38 과 비슷한 문제일거라고 생각된다. 날짜 입력값을 잘못 넣어겠지. 

그냥  개발자가 DB에 대충 값 넣어서 점검 생성하는건지;;  뭐 이딴식으로 확인도 안하고 점검 공지를 하는지 모르겠다.

 

블로그 쓰다가 좀 누워있다가 점검시간 끝나서 다시 들어가보니까  5시 반까지 점검 연장이다..  이런 미완성 게임 출시해도 몇백, 몇천만원씩 쓰는 사람들이 있는거 보면 마케팅이 참 중요한거 같다^^

 

 

내가 만든 귀여운 점검 서버

나도 전 직장에서 점검관련 기능을 만든 적이 있다.  뭐 내가 있던 회사도 뜬금없이 점검을 올리는 일이 많았는데 ㅋㅋ 

 

기능은 점검 일정을 등록하면 1분전 3분전 5분전 10분전 이런식으로 점검 전에 사용자에게 알림 보내야하는 기능이 필요했고,   긴 점검이라면 클라이언트를 아무것도 할 수 없는 점검페이지(점검중입니다..  이런 페이지)로 보내고,  짧은 점검이라면  사이트 내에서 이동은 가능하지만, 게임은 불가능하게 하는 기능이 필요했다.  

 

우선 회사 아이피만 접속할 수 있는 관리자 서버를 만들고,

관리자에서 점검시작시간, 점검 완료시간, 점검 내용, 점검 몇 분전에 점검알림을 보낼지 설정하면,

스케줄러가 돌다가 해당 내용을 redis publish 했다.  점검 내용은 redis에 암호화해서 저장하고,  필요시 수정할 수 있도록했다.  점검종료시간이나, 점검 내용이 변경 될 수도 있으니까.  수정할 수 있는 기능, 그리고 수정된 내용을 다시 게임서버에 알리는 기능을 만들기는 했는데 수정할 때 사용할 html,css 가 없어서 관리자가 수정을 할 수는 없었고, 점검 내용, 점검시간의 수정이 필요하면 그냥 내가 직접 수정했다. 점검서버 만드는 것보다 관리자에서 점검 설정하는데 사용할 html,css, js 만드는게 더 귀찮았다.

 

게임 서버는 redis subscribe 하고,  관리자 서버에서 점검 알림 명령이 오면, 연결된 모든 클라이언트에 점검 예정이라고 알리고,  점검 시작 명령이 오면 점검내용을 보관하고 웹소켓 통신을 통제해야했다. 

 점검 시작 후에 클라이언트로부터 요청이 오면 무조건 점검중이라는 메시지를 보내는 식으로 작동했다.  점검페이지로 보낼지, 아니면 잠깐동안 게임이 동작하는 것만 막을지는 클라이언트에서 서버로부터 받은 점검메시지를 받고 판단하도록 했다.   

 

점검 종료는  스케줄려로 동작하지 않고,  관리자가 직접 점검 종료 버튼을 눌러야 점검이 해제되도록 했다. 이걸 관리자가 깜빡해서  게임 서버를 담당하던 팀에서 점검 끝났는데,왜 계속 접속 안돼냐고 문의가 몇 번 들어왔다.  그 후로는 내가 점검을 관리했다;  애초에 관리자가 해야된다고 만들었으면서 만들고 나니가 개발자가 점검 관련 기능을 맡아야 된다고 해서 조금 짜증이 났다.  애초에 그러면 개발자가 관리하기 쉬운 방향으로 만들었을텐데,

 

이 점검 서버에도 문제가 있었는데,  c++서버 점검이 아니라 내가 맡고 있는 노드서버에 점검이 필요할 때 문제였다.   위에서 설명한 게임서버는  그 안에서도  클라이언트와 통신을 담당하는 Node서버랑 핵심 비지니스 로직을 관리하는 C++ 서버로 나뉘어져 있는데,  C++ 서버 점검할 때는 상관이 없었는데,  내 서버,, 내 Node서버 점검하는 경우에 대해서는 고민하지 않았다..  고민하지 않은 거는 아니고,  내가 만든 거에  문제가 있을 수 없다는 자신감? ㅋㅋㅋ  

 

아무튼 회사가 망하는 그낭까지 점검서버는 잘 작동했다^^

 

 

진짜 서버 개발

 

이런 MMORPG를 하면서  계속 서버 팅기고 그런거 느껴보니까, 진짜 서버 개발자는 게임서버 개발자 아닐까? 하는 생각이든다.  

 

전 직장에서 글로벌 카지노 게임 오픈 전에  부하테스트를 야매로 하긴했지만,, 소켓 6만개 붙여서 잘 작동하는지 테스트 하고 그랬는데,  카지노 게임은 뭐  일종의 보드게임이니까.. MMORPG 서비스에서 오는 부하와는 비교가 안 될 것이다.

 

캐릭터 이동하고, 공격하고, 몹 잡고 그런거 전부 서버에서 관리해야할텐데,  

 

쓰고 있는 와중에 점검시간이 또 18시 30분으로 늘어났다. 

 

아..갑자기  나도 게임서버 개발을 해보고 싶다..  대규모 트래픽은 물론이고,  저 점검 시간정 해놓고 버그 고치는 그 식은땀 나는 디버깅 타임어택. 뭐 웹개발하면서도 경험할 수 있는 거지만..

 

 

RPG 서버 개발자 채용 공고를 좀 살펴보면

 

던파 서버 C++

 

던파 서버 C++

 

마영전 서버 C#

 

프라시아 전기 서버 C#
넥슨 마비노기 서버 C++

 

nc LLL 서버 c++

 

 

nc projectG 서버 C++

 

 

nc icon2 서버 C++

 

 

 

nc projectG C++

 

 

 

웹젠 R2M 서버 C++

 

아키에이지 서버 C++

 

 

게임 서버 개발하려면  C++을 해야하는 듯

멀티쓰레드.. 네트워크.. DB..   이런거 공부하면 되는 듯... 

 

내 나이 31..    지금부터 도전하면 할 수 있을까

 

 

 

 

 

 

728x90

'history | grep' 카테고리의 다른 글

3 2 1  (0) 2024.09.03
롱베케이션  (9) 2024.08.30
220816~240708 두번째 회사  (1) 2024.07.10
240706/오로나민C그니처 시즌3 텐션대전  (0) 2024.07.08
240702/😓  (0) 2024.07.02
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함