탐험노트

MVC 중에서 Controller와 View를 알아봤고, 이제 Model을 살펴보겠습니다.

Model을 단독으로 설명하면 이해가 살짝 안될 수 있기에 아래 그림을 첨부합니다.

 

전투정보실 화면으로 진입하여 내 스킬 정보를 저장하는 일련의 과정입니다.

Model 쪽을 살펴볼 것이기에 왼쪽의 DB Select 처리와 Update 처리의 전후를 보겠습니다.

(참고로 개발 중인 source는 CodeIgniter로 제작된 내용입니다.)

 

원래대로라면 여기에 로그인 체크 기능과 각종 예외처리가 들어가겠지만, 설명을 쉽게 하기 위해 많은 부분을 생략하였습니다^^

핵심은 jqrpg_model이라고 하는 곳에 조회하려는 ID를 전달하면, 해당 정보들을 다 불러와서 결과값을 controller 쪽으로 다시 되돌려준다는 것이지요.

jqrpg_modelgetPlayerInfo는 어떻게 결과값을 되돌려줄까요?

 

이해를 돕기 위한 화면이므로 마찬가지로 상당부분 제외하고 가렸습니다^^;

DB에서 결과값을 조회해서 그 결과물을 다시 돌려주고 있습니다.

 

간단한 과정인데 왜 이리 여러 개로 나눠놨냐고요?

지금은 단순하지만 나중되면 소스가 매우 길어지고, DB에서 조회해야 할 양이 방대해질 수 있습니다.

그럴 경우를 대비해서 미리미리 저렇게 기능별로 나눠놓는 습관을 들여놓는게 좋답니다ㅎㅎ

 

 

이어서 DB Update 처리를 볼까요~

비동기 방식으로 요청이 오면 json이라는 데이터 포맷 형태로 되돌려주기 위한 기능입니다.

비동기가 뭐고 json은 뭔지... 이것도 다음 시간들에 나눠서 다룰 것이니까요ㅎㅎ

 

캐릭터 정보를 저장하는데 있어서

- 로그인은 되어 있는지

- 변경하려는 캐릭터의 소유 ID가 로그인한 회원의 ID가 맞는지

- 데이터가 제대로 저장되었는지

까지만 볼 것입니다.

(보유하지 않은 스킬로 변경하려는 해킹시도를 막는 구문은 위에 포함하지 않았습니다)

 

DB 저장에 필요한 무엇을(where)어떻게(set)를 Model로 전달합니다.

setPlayerInfo에서 처리되는 것을 보면...

 

이해를 돕기 위해 여러가지 예외처리 및 유효성 검사 등은 뺀 소스입니다ㅎ

update 하려는 데이터가 확실한지 다시 체크해주고 update 명령어를 실행합니다. 결과여부만 다시 되돌려줍니다.

그러면 위의 controller에서 사용자 화면으로 결과여부(성공/실패)와 해당 메세지를 보여지도록 데이터를 전달할 겁니다.

 

 

여기까지가 MVC의 기본적인 동작 방식과 데이터 처리과정이었습니다.

게임이 제작되면 이보다 좀 더 복잡한 구조로 개발이 진행되겠지요.

다양한 경우의 수와 예외처리 등을 고려하여 안전장치를 설정하겠고요.

 

 

다음 시간에는 위에서 언급한 비동기 방식(ajax)와 json 데이터 포맷에 대해 살펴보겠습니다.

 

댓글 0
첫 댓글의 주인공이 되어 보세요!
  • 폴리매스 문제는 과학기술진흥기금 및 복권기금의 재원으로 운영되고, 과학기술정보통신부와 한국과학창의재단의 지원을 받아 수행된 성과물로 우리나라의 과학기술 발전과 사회적 가치 증진에 기여하고 있습니다.

  • ☎문의 02-6749-3911