마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

서버 임시세션 관리 질문드립니다.

0 추천

안녕하세요.

고수님들의 도움을 많이받아,

많은 어려움을 해결해 나가고 있습니다.

항상 친절해주셔서 감사합니다.

 

유저마다 20마리의 캐릭터를 관리해야 하며 1:1대전을 합니다.

실시간으로 100ms마다 정보를 갱신해줍니다.

 

캐릭터 20마리의 베이스 정보는 db에 저장되어 있고

게임전에 최초 1번 쿼리로 정보를 불러옵니다.

 

여기서 문제가

기본적인 정보는 db에 저장되어있지만,

게임시에는 db입출이 잦으면 성능상 문제가 잇기에,

임시 세션을 두어 관리하려고 합니다.

 

최초 어레이리스를 사용하려 했으나,

속도면에서 hashtable이 빨라서

 

아래의 표와같이 한 유저당 캐릭터 20개는 arraylist에 담고

유저의 아이디를 키값으로 하여 해쉬테이블에 어레이리스트를 넣으려고 하는데요...

 

image

 

문제점이나 더 좋은 방법이 있다면 알려주시면 감사하겠습니다.

만약 방향설정이 아예 잘못되었다면 조언 부탁드립니다.

수고하세요..

 

p.s 예상코딩입니다.

// 유저당 캐릭터 20마리를 관리할 해쉬테이블, CharList는 arraylist<class>입니다.

private static Hashtable<String, CharList> charlist[] = new Hashtable[1000];

 

/**

- 생성자-

서버의 최대 인원을 1000명으로 가정,

객체 생성과 소멸시 발생하는 리소스를 줄이기 위해서

서버 최초 부팅시 해쉬테이블에 1000개의 방을 만들어 놓고,

접속자의 데이터를 보관할 때,

로그인, 로그아웃 등의 식별할 수 있는 변수를 두어

로그아웃인 공간에 덮어씌우는 방식으로 설계하려고 합니다.

*/

public Div_01_Login() {
    if (mConTF = false) {                          // 서버 부팅시 최초 한번만 생성되도록 하는 Flag로 처리
        for (int i = 0; i < MAXUSER; i++) {
            charlist[i] = new Hashtable<String, CharList>();
        }
    mConTF = true;
    }
}

익명사용자 님이 2013년 9월 3일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...