kyuseo의 게임 프로그래밍

클로버 자동 업데이트(패치) 프로그램 전체 설명서 :: Clover Auto Update(Patch) Manual 본문

만든 게임 및 프로그램

클로버 자동 업데이트(패치) 프로그램 전체 설명서 :: Clover Auto Update(Patch) Manual

kyuseo 2008. 7. 8. 19:00

클로버 자동 업데이트 개요..

 

클로버 자동 업데이트(패치) 프로그램 전체 설명서 :: Clover Auto Update(Patch) Manual

 

클로버 업데이트는 프로그램을 항상 최신으로 유지시켜주는 자동 업데이트, 자동 패치 기능을 빠르고 쉽게 그리고 편리하게 구현할 수 있도록 도와주는 프로그램입니다.

 

클로버 업데이트는 서버와 클라이언트의 능력을 최대한 끌어내어 매우 빠른 속도를 제공하고 네트워크 상에 존재하는 각종 오류상황을 제어하여 안전한 업데이트를 지원합니다.

 

작성자 : 채경석, kyuseo, http://a.tk.co.kr, kyuseo99@chol.com

최종 수정일 : 2008-07-08

 

다운로드

 

버전

 

버전 1.0 : 다운로드

 

설명서 버전 : 1.0

클로버 업데이트 빌더 버전 : 1.0

클로버 업데이터 버전 : 1.0

 

 

히스토리

 

2008-07-08 : 공개 배포 시작

 

 

라이선스 (저작권)

 

- 클로버 업데이트의 저작권은 채경석, kyuseo, http://a.tk.co.kr 에게 있습니다.

- 클로버 업데이트 프로그램은 무료 공개 프로그램(Freeware)입니다.

- 개인,학교, 학원, 개발회사, 게임회사에서도 무료로 사용할 수 있습니다.

- 하단 익스플러러 창을 제외한 모든 이미지는 자유롭게 변경이 가능합니다.

- 클로버 업데이트 프로그램을 이용하여 발생되는 모든 문제점은 개발자가 책임지지 않습니다.

- 출처를 밝히고 자유롭게 배포가 가능합니다.

- 원본 설치 파일의 수정을 금지합니다.

- 번들 및 유료 판매는 금지합니다.

 

 

사용예

 

게임 리모콘 지모콘 : http://gmocon.com

게임 포털 티케이게임 : http://tk.co.kr

 

 

특징

 

- 클로버 업데이트 프로그램은 무료 공개 프로그램 입니다.

- 개인, 학교, 학원, 개발회사, 게임회사에서 무료로 사용할 수 있습니다.

- 업데이트 프로그램의 개발이 빠르고 편리합니다.

- 수년간의 실전 테스트로 업데이트의 속도가 빠르고 안전합니다.

- 개발사의 비용이 절감됩니다.

- 업데이트 파일의 유지 보수가 쉽습니다.

 

 

주요기능 및 장점

 

- 안전한 업데이트

1개의 업데이트 서버라도 살아있다면 업데이트가 이루어짐

유저의 실수 및 고의로 파일 조작 시 자동으로 업데이트가 이루어짐

다중 업데이트 지원으로 업데이트도중 1개의 서버가 다운되더라도 업데이트 가능

자체 오류제어 시스템으로 네트워크상에서 발생되는 오류 최소화

 

- 빠른 업데이트

가장 빠른 서버를 찾아 업데이트

다중 업데이트 지원으로 서버와 클라이언트의 최대 네트워크 속도를 보장

파일들을 압축하여 전송

동일한 파일이 여러 번 변경 되었더라도 최신의 파일만 업데이트함

 

- 연속성 있는 업데이트

업데이트를 진행하더라도 웹 서버 또는 패치 서버를 중단, 재 시작이 불필요함

업데이트 도중에도 유저는 이전 버전을 항상 업데이트 할 수 있음

 

- 비용의 절감

FTP, HTTP만을 이용하여 별도의 서버 호스팅이 필요 없고 서버 프로그램도 필요 없음

데이터베이스(Database)가 필요 없음

업데이트 크기에 따라 서버의 개수를 다양하게 증감이 가능함

웹 서버를 병행하여 이용이 가능

불필요한 네트워크 자원의 사용이 없음

 

- 작업의 편리함

편리한 업데이트 제작 툴의 제공으로 작업이 쉬움

텍스트 파일의 편집만으로 누구나 업데이트 클라이언트를 개발가능

 

- 확장성

다수의 업데이트 서버를 이용과 변경이 가능함

특징 있는 런처 프로그램을 쉽게 만들 수 있음

 

 

기타 특장점 ..

 

- 유저의 수가 적다면 업데이트용 서버의 비용을 최소화 할 수 있습니다.

이미 사용하고 있는 웹 서버나 웹 호스팅 업체를 이용할 수 있습니다.

 

- 유저의 수가 많다면 서버의 증가가 쉽게 이루어 집니다.

도메인이 있을 경우 도메인을 이용한 트래픽 분산을 통하여 업데이트 속도를 증가 시킬 수 있고 도메인이 없더라도 다중 업데이트 서버를 이용하므로 최대 4개까지 업데이트서버를 운영할 수 있습니다.

 

- 별도의 서버 호스팅이 필요 없고 서버프로그램도 필요 없습니다.

FTP와 HTTP 만을 이용한 방식이기 때문에 초기비용 및 유지, 관리비용이 많이 드는 서버 호스팅이 필요 없습니다.

 

- Ftp와 Http 만을 이용

별도의 서버 프로그램이 필요 없으므로 단독 서버 호스팅이 필요하지 않습니다.

따라서 서버유지비가 매우 절감되며 별도의 서버프로그램 관리인원이 필요하지 않아서 비용이 절약됩니다. 또한 일반적인 웹 호스팅을 이용 할 수 있으므로 개인 개발자들도 쉽게 접근 할 수 있습니다.

 

- 다중 서버 시스템

여러 개의 서버를 등록하여 업데이트를 할 수 있습니다.

업데이트 서버등록을 일반적인 DNS 방식과 IP 방식을 동시에 다수 지원합니다.

초기 1개서버만 운영하다가 클라이언트 상황에 따라서 2~4개의 서버를 쉽게 증감 할 수 있습니다.

3개 이상의 다중 서버를 등록하여 사용할 경우 클라이언트에서 가장 빠른 서버에 접속하여 업데이트를 하기 때문에 더욱더 빠른 속도를 보장하게 됩니다.

(최소 2개 이상 등록 사용권장)

 

- 자체 오류 제어 시스템

다중서버를 이용할 경우 1개의 서버라도 살아있다면 업데이트가 이루어 지도록 설계되어있으므로 서비스도중 몇몇 서버의 중단 및 변경, 점검에 대해서 크게 걱정 할 필요가 없습니다.

클라이언트의 실수 및 고의로 파일 조작 시 자동으로 업데이트가 되고 파일 체크 기능으로 오류를 복구 할 수 있습니다.

 

- 파일 별 개별 버전관리를 이용

파일 별 개별 버전관리를 함으로써 변경된 최종 파일만 업데이트되는 매우 빠르고 편리한 구조를 가지게 됩니다.

 

- 투(Two)-쓰레드 방식의 업데이트 시스템

다운로드와 압축해제의 비동기적 중첩 현상을 보완하기 위해서 투-쓰레드 (Two-Thread) 방식을 이용함으로 압축해제와 다운로드를 동시에 진행하여 클라이언트의 최대 성능을 이끌어내고 빠른 실행을 보장합니다.

 

- Http 및 Ftp 서버의 재 시작이 필요 없습니다.

서버의 재 시작이 필요가 없어 클라이언트 실행의 연속성을 보장하고 관리자의 시간을 절약해 드립니다.

일반적인 업데이트 형태 : 1.서버 정지 -> 2.업데이트 파일 업로드 -> 3.서버 재시자 -> 끝

클로버 업데이트 형태 : 1.업데이트 파일 업로드 -> 끝

 

 

클로버 자동 업데이트 빌더 소개

 

클로버 자동 업데이트 빌더는 업데이트 프로젝트를 제작하고 FTP서버에 업데이트할 파일들을 등록 관리하는 프로그램입니다.

 

 

특징

 

- 탐색기형 구조를 이용하여 쉽고 직관적인 인터페이스로 쉽게 사용할 수 있습니다.

 

- 다수의 FTP서버에 업로드 하여 서버의 네트워크 부하를 분산합니다.

 

- 패치파일 생성 과 FTP 등록, 최종 업데이트 적용을 3단계로 분리하여 안정적이고 빠른 등록이 가능합니다.

 

- 자동 업데이트 버전 별 파일이 자동으로 저장되어 원본 파일의 관리가 쉽습니다.

 

 

메뉴 설명

 

파일 : 새로운 파일을 만들거나 저장합니다.

 

 

편집 : 업데이트할 파일을 등록하거나, 폴더 추가, 삭제, 이름 바꾸기 등이 가능합니다.

 

 

프로젝트 : 프로젝트를 설정하거나 빌더, 업로드, 업데이트 합니다.

 

 

빈 공간 팝업 메뉴 : 새 폴더를 만들거나, 탐색기를 실행합니다.

 

 

파일 팝업 메뉴 : 파일을 삭제하거나, 탐색기를 실행합니다.

 

 

클로버 자동 패치 시스템 사용 예제..

 

- 업데이트 빌더( u_builder.exe )를 실행합니다.

 

 

- 프로젝트 등록정보를 실행 합니다.

   

 

- 프로젝트 등록 정보의 내용을 입력합니다.

이름 : 프로젝트의 이름을 입력합니다. FTP / HTTP에도 적용이 되므로 영문과 숫자만을 이용하여 입력합니다.

현재버전 : 자동으로 버전이 증가됩니다. 일반적으로는 변경하지 않습니다.

설명 : 프로젝트의 설명을 입력합니다.

 

   

 

FTP 업로드 추가 버튼을 클릭하여 업로드 할 FTP 의 정보를 입력 & 테스트 합니다.

(부하 분산을 위한 다수의 FTP 입력 가능)

   

 

HTTP 다운로드 추가버튼을 클릭하여 사용자가 다운로드 할 HTTP 의 정보를 입력합니다.

(부하 분산을 위한 다수의 FTP 입력 가능)

 

※ 주의 : 프로젝트 등록정보는 업데이트 이후 변경이 어려우므로 최초에 정확한 정보를 입력하세요.

 

 

프로젝트가 저장된 모습

 

 

업데이트 파일 및 폴더의 등록

- 파일을 탐색기에서 드래그&드롭하여 파일 및 폴더를 등록합니다.

- 편집 메뉴 및 마우스 오른쪽 클릭하여 파일, 폴더를 등록합니다.

 

※ 주의 : u_client.exe, u_changer.exe, u_client.ini, u_client_2.bmp 파일을 반드시 등록해야 합니다.

 

 

 

빌드 위치를 설정합니다. (안 해도 무방함, 기본 빌드위치 c:\UpdateBuild\")

※ 빌드 위치 설정은 1번만 하면 모든 프로젝트에 적용됩니다.

 

 

 

빌드 (F7)

빌드는 파일들을 버전 정보를 포함하여 배포 할 파일들을 압축하고 정리하는 것을 말합니다.

 

 

 

빌드가 성공적으로 되었다면 "C:\UpdateBuild\sample" 폴더에서 다음과 같은 결과를 볼 수 있습니다.

 

 

빌드 폴더 설명

sample : 프로젝트의 이름입니다.

2 : 빌드 된 버전입니다.

media : 최종 사용자에게 배포함 파일들이 폴더를 포함하여 복사되어있습니다.

upload : FTP에 업로드 될 파일들이 버전정보를 포함하여 압축이 되어있습니다.

   

 

업로드 (F8)

업로드는 버전 정보를 포함하여 압축된 파일을 FTP 서버에 업로드 하는 것을 말합니다.

 

메뉴의 "프로젝트 -> 업로드"를 이용하여 FTP에 업로드 합니다.

업로드가 끝이 되었다면 FTP 서버에 접속하시면 올바르게 업로드가 되었는지를 확인 할 수 있습니다.

 

주의 : 업로드가 완료 되었더라도 실제 업데이트가 되는 것은 아닙니다.

주의 : FTP 업로드는 네트워크나 FTP 서버의 문제로 가끔 오류가 발생되니 2~3번 반복하여 다시 시도하십시오.

주의 : FTP 의 정보가 틀린다면 업로드가 되지 않습니다.

 

 

 

업데이트 (F9)

업데이트는 아주 작은 버전 정보파일을 FTP 서버에 업로드 하여 실제 사용자의 프로그램이 자동 업데이트 가 되도록 하는 것을 말합니다.

 

메뉴의 "프로젝트 -> 업데이트"를 이용하여  실제 정보를 업데이트를 합니다.

   

 

전체 업데이트 (F10)

위 일련의 과정이 번거롭다면 전체 업데이트를 하면 빌드, 업로드, 업데이트가 자동으로 이루어집니다.

 

 

 

INI 파일 설정 (매우 중요)

 

특히 아래 부분을 다운로드 받을 HTTP 주소와 업데이트 파일 이름으로 올바르게 설정 합니다.

[main]

update_url = http://a.tk.co.kr/_update1_

update_url_2 = http://a.tk.co.kr/_update2_

update_name = clover_update

 

 

 

업데이트 테스트

 

- "C:\UpdateBuild\sample\2\media"의 "u_client.exe" 을 실행합니다.

 

- 파일 및 폴더를 삭제, 변경 후 테스트

(클로버 업데이트는 등록된 파일이 변경사항이 있거나 유저의 조작 등으로 제거, 변경되었을 경우 업데이트가 자동으로 이루어집니다. )

 

 

1차 배포 이후 자동 업데이트, 패치 관리

 

파일의 추가되었을 경우…

만일 "readme.txt" 라는 파일이 추가 되었을 경우 "프로젝트 파일의 등록" 과 같은 방법으로 드래그&드롭을 이용하거나 "편집->세파일"을 이용하여 "readme.txt" 파일을 추가합니다.

 

빌드(F7) -> 업로드(F8)-> 업데이트(F9) 과정을 실행하면 자동 업데이트 됩니다.

 

 

파일의 수정, 변경되었을 경우…

만일 "readme.txt" 라는 파일이 수정 되었을 경우 별도의 작업을 하지 않고 빌드(F7) -> 업로드(F8)-> 업데이트(F9) 과정을 실행하면 자동 업데이트 됩니다.

 

 

파일의 삭제되었을 경우…

파일의 삭제는 지원하지 않습니다.

 

 

사용자 배포

 

"C:\UpdateBuild\sample\2\media" 의 모든 파일을 인스톨쉴드, NSIS 와 같은 프로그램을 활용하여 유저에게 배포합니다.

실행파일의 링크는 "u_client.exe"로 설정 합니다.

 

 

다운로드



오류코드

 1010 = 버전 파일 정보 로드 오류
1020 = 버전 파일 다운로드 오류
3010 = HTTP 생성 오류
3020 = 다운로드 & 압축 풀기 오류
3030 = 아이템 로드 오류
3040 = 다운로드 아이템 체크 오류
3050 = 다운로드 스레드 생성 오류
3060 = 사용자 취소
3070 = 다운로드할 목록이 남음