더북(TheBook)

서버 쪽에서 이러한 방식으로 구동하게 하면 됩니다.

• 메시지를 받습니다. 버전 1이 보낸 메시지 안에는 종류만 기재되어 있고 개수는 없습니다. 버전 2가 보낸 메시지 안에는 종류와 개수가 모두 있습니다.

• 서버에서는 받은 메시지 안에 개수 값이 없으면 개수를 1로 가정합니다.

서버에서 메시지 안에 원하는 내용 일부가 있는지 없는지에 따라 작동을 다르게 만들어 준다면 버전 1과 버전 2의 클라이언트를 동시에 처리할 수 있습니다.

대부분의 PC 온라인 게임은 게임 클라이언트를 실행시키면 먼저 자동 업데이트 프로그램이 켜집니다. 자동 업데이트 프로그램은 클라이언트 프로그램 파일을 항상 최신 상태로 만들어 줍니다. 그러고 나서 클라이언트 프로그램을 실행합니다. 따라서 버전 1과 버전 2가 같이 서버에 접속하는 경우가 거의 없습니다.

모바일 앱은 상황이 다릅니다. 자, 여러분이 개발한 클라이언트 프로그램을 애플 앱스토어나 구글 플레이스토어에 업로드합니다. 그런데 iOS나 안드로이드에서는 앱 업데이트를 앱 실행 전에 자동으로 완료해 주지 않습니다. 따라서 구 버전으로 서버에 접속하는 사용자가 있을 수밖에 없습니다.

구글 플레이스토어나 애플 앱스토어에 앱을 등록하더라도 즉시 모든 사용자가 업데이트를 받는 것도 아닙니다. 여러분이 프로그램을 업로드한 후 이것을 실제로 사용자들이 업데이트할 수 있게 하려면 애플이나 구글의 승인 과정을 거쳐야 하는데 보통 1~10일 정도 걸립니다.

PC 프로그램처럼 우리 마음대로 프로그램을 업데이트하면 되지 않을까요? 안타깝게도 구글과 애플은 그러한 기능이 들어가지 못하도록 기술적으로, 그리고 법적으로 규제하고 있습니다. 이러한 상황에서는 최신 버전의 클라이언트와 구 버전의 클라이언트가 한 서버에 접속하는 상황이 반드시 생기기 마련입니다. 따라서 여러분은 메시지 구조에 변화를 가할 때 주의를 기울여야 합니다. 메타데이터 방식은 이럴 때 유리합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.