라이브 서비스 게임의 구조는 대충이럼 블루아카이브가 이 구조라는건 아니고 대충 이런 구조라는말임 


일단 방을 만들고 여기에 입장해서 게임을 플레이하게 되는 MO 게임의 경우, 

서버는 인게임, 아웃게임 구조로 나뉘게 됨


정말 쉽게 말하면  메모리 캐시라는 큰 저장소가있고 거기에 DB가 달려있고 이 둘을 배경으로 인게임 아웃게임서버가 달려있음

그리고 이 서버를 이용해서 뜌따이들의 휴대폰으로 전송이 되는거임


일단 버그의 원인은 아무도 모른다 

진짜 배선연결오류부터 소스코드작성오류, 습도라던가 서버에 라면을 엎는다던가 아니면 

단순히 소스코드의 상반된 명령충돌부터 ㄹㅇ 뭐 존나 다양함 

그냥 본체때려서 우연히 연결이 정상화되거나 자체 재부팅으로 고쳐지는경우도 있음 


그래서 버그가 나왔다면 일반적으로는 어떻게 푸냐? 

클라이언트에서 이걸 체크할수있음 디버거를 붙여서 원인이 뭔지도 알수는 있음 

디버거는 숨겨진 프로그램의 상세한 데이터와 상태를 알수있게 해주는거임 


단점은 디버거를 붙이면 서버가 멈춰버림 그래서 라이브서비스중일때 디버거를 못붙이는거고 

그래서 차선책으로 서버의 로그를 보는거임 

아마 내 생각에도 지금 얘네가 하고있는게 오작동에 관련된 로그를 싹 긁어모아서 원인을 찾고있는중 일거임 


간단하게 너네가 받는사료는 이렇게 뜌따이들폰에 전송됨 


1. 클라이언트 요청 (유저 우편 수령 터치) 

2. 게임 서버 유저가 구매, 점검 보상을 이미 수령했는지 검증 DB 서버 쿼리 요청

3. DB서버 해당 유저 구매, 점검 쿼리 값 게임 서버로 전송 

4. 게임 서버 이미 수령했다면 해당 요청 값 무시 or 수령 안했을시 수령 처리(아이템 생성) 후  -> [DB 서버] 업데이트 쿼리 요청


그래서 아마 저 과정에서 뭐가 생긴거같은데 이게 문제는 우편함만 고쳐서 되는게 아닌가봄

"클라이언트 , 게임 서버,  DB 서버" 이거 세개를 다봐야 어디가 문제인지 파악하고 수정할거같음 그래서 오래걸리는거고 


이건 내 뇌피셜이긴 한데 

 유저가 여러번 요청한 짧은(사료 보상내놔하는) 사이에 

높은 지연 시간으로 데이터 기록이 제때 이뤄지지 않으니

"뜌따이 아직 안받음 ㅇㅇ 보상줘"  라고 데이터 서버가 송신해서 


중복보상이 나온거일거임  내생각엔 그럼 


재미없는글이긴한데 일단 이건 내 생각임