Java Web Game 개발 가이드(11)
구 현
디자이너가 html 화면에 디자인을 꾸미는 동안 개발자는 화면에 표현 되어질 내용들을 데이터 베이스에서 가져 와야 합니다. 사용자의 건물 리스트, 추가 할 수 있는 건물 리스트, 플레이어의 각종 자원, 플레이어의 경매장 내용, 레벨 등을 가져 와야 합니다. 이 정보를 가져오기 위해서는 최초 GAME START 버튼을 클릭 할 때 각 정보들을 조회 해서 넘어와야 합니다.
처음 로그 인을 수행하는 화면의 input 태그를 form 으로 감싸고 로그 인을 수행하는 액션을 설정합니다.
<div>
<h2>아직도 영농 RPG의 회원이 아니세요?</h2>
<form method="post" action="<%=RequestUtils.getPageLink(request,"/ActCOM_LGN_001000.do")%>" >
<input type="hidden" name="command" value="COM_LGN_001000" />
<input type="hidden" name="member_id" value="test" />
<input type="hidden" name="member_pw" value="1234" />
<input type="submit" value="GAME START" />
</form>
</div>
해당 액션을 struts-config 에 추가 합니다.
로그인용 자바로 이동합니다.
Act 클래스에 해당 정보를 얻기 위한 조회 메서드를 호출 합니다.
다음은 위의 조회를 위한 Model 클래스의 메서드입니다.
/**
* 사용자 건물 조회
* @param box
* @return box
* @throws Exception
*/
public Box selTBL_USR_BUILDING_01(Box box, UserSession usersession) throws Exception {
Connection con = null;
DBWrapper wrapper = null;
SQLStore sql = null;
JResultSet jrs = null;
try{
con = ConnectionManager.getConnection(box);
wrapper = new DBWrapper(con);
sql = new SQLStore(box,this,"selTBL_USR_BUILDING_01");
sql.setString(1, usersession.getMEMBER_ID());
jrs = wrapper.exeQuery(sql);
box.put("selTBL_USR_BUILDING_01", jrs);
}catch (Exception e){
e.printStackTrace();
log.error(e);
throw e;
}finally{
if(con != null){
con.close();
}
}
return box;
}
/**
* 사용자 건물 조회
* @param box
* @return box
* @throws Exception
*/
public Box selPOINT(Box box, UserSession usersession) throws Exception {
int point = 348726000;
try{
box.put("USER_POINT", point);
}catch (Exception e){
e.printStackTrace();
log.error(e);
throw e;
}
return box;
}
점수 조회 부는 예를 위해 그냥 점수를 넣었습니다. 다음은 화면에서 이 값들을 조회할 쿼리파일을 손 봅니다.
이제 조회한 결과를 화면에서 가져옵니다. 화면의 상단 부에서 정보를 조회한 값을 받기 위한 변수를 선언하여 화면에 표현 합니다.
화면의 최 상단에서
위와 같이 조회한 ResultSet을 가져옵니다.
가져온 데이터를 위와 같이 동적으로 표현해 줍니다.
위와 같이 데이터 베이스에 입력된 사용자의 건물이 표현 된 것을 볼 수 있습니다.
여기까지 웹 화면의 시안 작성, 퍼블리싱, 디자인, 개발까지의 과정을 차례대로 진행해 보았습니다. 여러분의 작품은 잘 진행이 되고 있나요? 이제 기본적인 개발에 관한 소양은 모두 쌓은 듯 합니다. 새로운 기능을 지속적으로 추가하는 것은 위의 작업들을 반복하는 일들 이니까요. 위의 샘플 페이지에 있는 다양한 메뉴들을 차례로 개발하다 보면 참 다양한 코딩 스킬이 필요해질 것입니다. 이 글도 이제 거의 마지막을 향해 다가서는 듯 한데 아직 게임의 완성을 위해서 개발보다 더 중요하다 생각 되는 몇 가지 들을 살펴 보려 합니다.