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 = 다운로드할 목록이 남음