SlideShare a Scribd company logo
1 of 47
Download to read offline
게임 개발에 도움을 주는
   CruiseControl.NET과
         Windows Terminal
    온라인 게임 서버 제작자 모임
        http://cafe.naver.com/ongameserver




                                    TTF http://www.npteam.net
빌드 자동화 아직도 두려우세요?

                 귀찮아.
               지금까지도 잘
               살았는데 뭐!
 빌드 자동화 좋다던데             써 보고 싶은데
 어떻게 쓰는 거지?              누가 설치해
                         줄 사람 없나?




               ?
빌드 자동화 이렇게 편한걸
왜 지금까지 몰랐지?
               인터넷망에서 개
               발망으로 데이터
               가져오기 귀찮았
               는데 편해졌네.
 검증된 기획 데이                  덤프 파일만
  터를 써보니까 너무              가져와도 리비전의
     편한데.                 소스 파일과 PDB
                          파일을 자동으로
                            받아오네!




               !
CruiseControl.NET은 뭔가요?
■ CruiseControl.NET 정보
 - License
   BSD License, Apache Software License

 - Webpage
  http://sourceforge.net/projects/ccnet/

 - 설치 가능 OS
   IIS 웹서버 작동이 가능한 Windows OS
   Windows XP 이후
   Windows Server 2003 이후
CruiseControl.NET로 무엇을
할 수 있나요? – Step 1
■ 주요 4가지 작업
 - Trigger
   주기적으로 Project를 시작한다.

 - Source Control
   소스 관리 프로그램에서 소스를 가져온다.

 - Task
   작업을 처리한다.

 - Publisher
   결과를 처리한다.
CruiseControl.NET로 무엇을
할 수 있나요? – Step 2
■ 게임 개발시 활용법
CruiseControl.NET은 어떻게
설치 하나요?
■ 설치 방법은 대략 난감합니다.
 - 난감한 이유

  1. 설치가 어렵지 않습니다. (복잡합니다.)

  2. PT로 소개하기엔 지루합니다.

  3. 상세하게 설명되어 있는 블로그가 많습니다.

  ex) http://www.npteam.net/839
ccnet.config 구성
■ 기본 Config 구성
                                      프로젝트 이름


                      라벨 형식
                                      대쉬보드 URL

                                시작 모드
         트리거(Trigger Block)

                              작업(Task Block)
ccnet.config 구성
■ Hello World! 배치 파일




  - Exit /B 종료코드( 0 : 성공, 1 : 실패 )

  - 배치 파일 결과를 활용하는 것이 핵심!
대쉬보드에서 결과 보기
 ■ 빌드 로그




2. 빌드 로그 보기

              3. 빌드 결과
1. 최근 빌드 결과
기초는 여기까지
      이제 응용해 봅시다.

■ 엑셀 데이터 검사하기
■ Lua Script 컴파일 검사하기
■ Python으로 Lua Script 검사하기
■ 각 단계를 CruiseControl.NET에 추가
엑셀 데이터 검사하기
■ 아이템 데이터 검사
엑셀 데이터 검사하기
■ Python을 활용한 검사

 - Python 다운로드 2.7 버전
  http://www.python.org/download/

 - Python for Windows extensions
  http://sourceforge.net/projects/pywin32/files/pywin32



 - Python을 설치합니다.
엑셀 데이터 검사하기
■ Python Script를 작성합니다.
엑셀 데이터 검사하기
■ AccessDatabaseEngine 설치
 - 오피스 2007 데이터 연결 구성 요소
   http://www.microsoft.com/downloads/ko-kr/details.aspx?displaylang=ko&FamilyID=7554f536-8c28-4598-9b72-ef94e038c891




 - DSN 연결 주소를 다음과 같이 수정한다.

  PROVIDER=Microsoft.Jet.OLEDB.4.0;
   PROVIDER=Microsoft.ACE.OLEDB.12.0;

  Extended Properties=Excel 8.0;
   Extended Properties=Excel 12.0;
엑셀 데이터 검사하기
■ 실행 결과는 이렇습니다.
엑셀 데이터 검사하기
■ 검사 코드 추가

              사는 값 < 파는 값
기초는 여기까지
      이제 응용해 봅시다.

■ 엑셀 데이터 검사하기
■ Lua Script 컴파일 검사하기
■ Python으로 Lua Script 검사하기
■ 각 단계를 CruiseControl.NET에 추가
Lua Script 컴파일 검사하기
■ Lua Compiler를 활용한 검사

                 컴파일 에러
Lua Script 컴파일 검사하기
■ Lua Compiler를 활용한 검사

 - Lua 컴파일러 다운로드
  http://luabinaries.sourceforge.net/download.html


 - Lua for Windows
  http://code.google.com/p/luaforwindows/downloads/list


 - Lua for Windows를 설치합니다.
Lua Script 컴파일 검사하기
■ Lua Compiler를 활용한 검사




1. 루아 컴파일러와 스크립트 폴더를 지정한다.
2. -p 옵션으로 컴파일 검사를 짂행한다.
Lua Script 컴파일 검사하기
■ Lua Compiler를 활용한 검사

                컴파일 에러
기초는 여기까지
      이제 응용해 봅시다.

■ 엑셀 데이터 검사하기
■ Lua Script 컴파일 검사하기
■ Python으로 Lua Script 검사하기
■ 각 단계를 CruiseControl.NET에 추가
Python으로 Lua Script 검사하기
■ _Isxxx 함수 리턴 값 검사




                리턴 값 검사(true, false)
Python으로 Lua Script 검사하기
■ Python Script 만들기
Python으로 Lua Script 검사하기
■ Python을 Batch 파일로 실행하기




  1. Python 실행파일 경로를 지정한다.
  2. Python 스크립트 경로를 지정한다.
  3. Lua Script 경로를 지정한다.
Python으로 Lua Script 검사하기
■ _Isxxx 함수 리턴 값 검사




              리턴 값 검사(true, false)
기초는 여기까지
      이제 응용해 봅시다.

■ 엑셀 데이터 검사하기
■ Lua Script 컴파일 검사하기
■ Python으로 Lua Script 검사하기
■ 각 단계를 CruiseControl.NET에 추가
각 단계를 CruiseControl.NET에 추가
■ ccnet.config에 DataChecker.cmd 등록
각 단계를 CruiseControl.NET에 추가
■ cctray에 등록된 화면
각 단계를 CruiseControl.NET에 추가
■ DashBoard에서 에러 확인하기
기초는 여기까지
      이제 응용해 봅시다.

■ NSIS Installer에 추가하기

■ 그외의 추가사항들…
NSIS Installer에 추가하기
■ Nullsoft Scriptable Install System

  - NSIS 다운로드
    http://nsis.sourceforge.net

  - NSIS를 설치합니다.
NSIS Installer에 추가하기
■ zip 파일을 Installer로 만들기
NSIS Installer에 추가하기
■ zip 파일을 Installer로 만들기
NSIS Installer에 추가하기
■ zip 파일을 Installer로 만들기
NSIS Installer에 추가하기
■ Script를 사용하여 Installer로 만들기

                  DEFINE 정의하기
                  PRODUCT_NAME        제품이름
                  PRODUCT_VERSION     날짜 시간
                  PRODUCT_PUBLISHER   배포자
                  PRODUCT_WEB_SITE    웹 사이트
NSIS Installer에 추가하기
■ Script를 사용하여 Installer로 만들기

               설치할 폴더 : C:Data
               $INSTDIR Define으로 사용될 폴더

               출력위치 : 설치할 폴더
               포함파일 :
               C:Data 폴더 하위의 모든 데이터 포함




                    출력위치 : 설치할 폴더
                    포함파일 : 재배포 패키지
                    실행 : 재배포 패키지 자동 실행
NSIS Installer에 추가하기
■ Script를 사용하여 Installer로 만들기




              컴파일 된 Installer 패키지
NSIS Installer에 추가하기
■ Script를 사용하여 Installer로 만들기
그외에 추가사항은 블로그에…

■ 다른 Project의 실행 결과에 따라
  Project 실행하기
■ 하나의 Project를 여러 개로 나누기
■ Project 그룹별 Lock 설정하기
■ Robocopy를 이용하여 파일 복사
  시갂 줄이기
Window Terminal을 활용한 패치

■ 윈도우 터미널을 이용하여 패치하기
■ TTerminal을 이용하여 패치하기
■ mRemote를 이용하여 패치하기


 장점 : 터미널간 파일 복사가 쉽다.
Window Terminal을 이용한 패치
■ 윈도우 터미널을 이용하여 패치하기


            드라이브 연결을 체크하면,
            터미널간 파일을 복사할 수 있습니다.
Window Terminal을 이용한 패치
■ TTerminal을 이용하여 패치하기
 http://dev.naver.com/projects/tterminal
Window Terminal을 이용한 패치
■ mRemote를 이용하여 패치하기
 http://www.mremote.org/wiki/Downloads.ashx
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal

More Related Content

What's hot

[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법
Amy Kim
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
Jae Sung Park
 
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
MinGeun Park
 

What's hot (20)

Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1
 
Deploying flask with nginx & uWSGI
Deploying flask with nginx & uWSGIDeploying flask with nginx & uWSGI
Deploying flask with nginx & uWSGI
 
개발자를 위한, WINDOWS 10으로 시작하는 UBUNTU LINUX
개발자를 위한,  WINDOWS 10으로 시작하는 UBUNTU LINUX개발자를 위한,  WINDOWS 10으로 시작하는 UBUNTU LINUX
개발자를 위한, WINDOWS 10으로 시작하는 UBUNTU LINUX
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화
 
2015 deploy gate 시작 가이드
2015   deploy gate 시작 가이드2015   deploy gate 시작 가이드
2015 deploy gate 시작 가이드
 
[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법
 
Snaps on Ubuntu Desktop
Snaps on Ubuntu DesktopSnaps on Ubuntu Desktop
Snaps on Ubuntu Desktop
 
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
Grunt
GruntGrunt
Grunt
 
Virtual Development Environment Setting
Virtual Development Environment SettingVirtual Development Environment Setting
Virtual Development Environment Setting
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정
 
Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기
 
HTTP2도 잘 모르는데 벌써 HTTP3 (v2)
HTTP2도 잘 모르는데 벌써 HTTP3 (v2)HTTP2도 잘 모르는데 벌써 HTTP3 (v2)
HTTP2도 잘 모르는데 벌써 HTTP3 (v2)
 
nexus helm 설치, docker/helm repo 설정과 예제
nexus helm 설치, docker/helm repo 설정과 예제nexus helm 설치, docker/helm repo 설정과 예제
nexus helm 설치, docker/helm repo 설정과 예제
 
랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치
 
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
 
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
 
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
 

Viewers also liked

Microsoft SharePoint를 활용한 개발환경 구축
Microsoft SharePoint를 활용한 개발환경 구축Microsoft SharePoint를 활용한 개발환경 구축
Microsoft SharePoint를 활용한 개발환경 구축
OnGameServer
 
MinWin에 대해서
MinWin에 대해서MinWin에 대해서
MinWin에 대해서
OnGameServer
 
Windows os 상에서 효율적인 덤프
Windows os 상에서 효율적인 덤프Windows os 상에서 효율적인 덤프
Windows os 상에서 효율적인 덤프
OnGameServer
 
C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기
OnGameServer
 
SDC 3rd 최흥배님 - Boost.multi_index 사용하기
SDC 3rd 최흥배님 - Boost.multi_index 사용하기SDC 3rd 최흥배님 - Boost.multi_index 사용하기
SDC 3rd 최흥배님 - Boost.multi_index 사용하기
OnGameServer
 
안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기
안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기
안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기
OnGameServer
 
해외 취업 이야기
해외 취업 이야기해외 취업 이야기
해외 취업 이야기
OnGameServer
 
Multi thread game server
Multi thread game serverMulti thread game server
Multi thread game server
OnGameServer
 
SDC 3rd 안중원님 - InGame CashShop 개발 하기
SDC 3rd 안중원님 - InGame CashShop 개발 하기SDC 3rd 안중원님 - InGame CashShop 개발 하기
SDC 3rd 안중원님 - InGame CashShop 개발 하기
OnGameServer
 
IPv6 이론과 소켓 프로그래밍
IPv6 이론과 소켓 프로그래밍IPv6 이론과 소켓 프로그래밍
IPv6 이론과 소켓 프로그래밍
OnGameServer
 
초보자를 위한 분산 캐시 이야기
초보자를 위한 분산 캐시 이야기초보자를 위한 분산 캐시 이야기
초보자를 위한 분산 캐시 이야기
OnGameServer
 
이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기
OnGameServer
 
Mongo db 시작하기
Mongo db 시작하기Mongo db 시작하기
Mongo db 시작하기
OnGameServer
 
임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기
OnGameServer
 
Boost 라이브리와 C++11
Boost 라이브리와 C++11Boost 라이브리와 C++11
Boost 라이브리와 C++11
OnGameServer
 
Form and purpose of the business
Form and purpose of the businessForm and purpose of the business
Form and purpose of the business
Udayan Kachchhy
 
2012過年走春3 2
2012過年走春3 22012過年走春3 2
2012過年走春3 2
Emma Chang
 
造訪蓮因寺
造訪蓮因寺造訪蓮因寺
造訪蓮因寺
Emma Chang
 

Viewers also liked (20)

Microsoft SharePoint를 활용한 개발환경 구축
Microsoft SharePoint를 활용한 개발환경 구축Microsoft SharePoint를 활용한 개발환경 구축
Microsoft SharePoint를 활용한 개발환경 구축
 
MinWin에 대해서
MinWin에 대해서MinWin에 대해서
MinWin에 대해서
 
Windows os 상에서 효율적인 덤프
Windows os 상에서 효율적인 덤프Windows os 상에서 효율적인 덤프
Windows os 상에서 효율적인 덤프
 
C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기
 
SDC 3rd 최흥배님 - Boost.multi_index 사용하기
SDC 3rd 최흥배님 - Boost.multi_index 사용하기SDC 3rd 최흥배님 - Boost.multi_index 사용하기
SDC 3rd 최흥배님 - Boost.multi_index 사용하기
 
안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기
안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기
안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기
 
해외 취업 이야기
해외 취업 이야기해외 취업 이야기
해외 취업 이야기
 
Multi thread game server
Multi thread game serverMulti thread game server
Multi thread game server
 
SDC 3rd 안중원님 - InGame CashShop 개발 하기
SDC 3rd 안중원님 - InGame CashShop 개발 하기SDC 3rd 안중원님 - InGame CashShop 개발 하기
SDC 3rd 안중원님 - InGame CashShop 개발 하기
 
IPv6 이론과 소켓 프로그래밍
IPv6 이론과 소켓 프로그래밍IPv6 이론과 소켓 프로그래밍
IPv6 이론과 소켓 프로그래밍
 
초보자를 위한 분산 캐시 이야기
초보자를 위한 분산 캐시 이야기초보자를 위한 분산 캐시 이야기
초보자를 위한 분산 캐시 이야기
 
이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기
 
Mongo db 시작하기
Mongo db 시작하기Mongo db 시작하기
Mongo db 시작하기
 
임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기
 
Boost 라이브리와 C++11
Boost 라이브리와 C++11Boost 라이브리와 C++11
Boost 라이브리와 C++11
 
Form and purpose of the business
Form and purpose of the businessForm and purpose of the business
Form and purpose of the business
 
2012過年走春3 2
2012過年走春3 22012過年走春3 2
2012過年走春3 2
 
Trimax | reclamefotografen food fotografie
Trimax | reclamefotografen food fotografieTrimax | reclamefotografen food fotografie
Trimax | reclamefotografen food fotografie
 
Moon2011
Moon2011Moon2011
Moon2011
 
造訪蓮因寺
造訪蓮因寺造訪蓮因寺
造訪蓮因寺
 

Similar to 게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal

[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
NAVER D2
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Joongi Kim
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
Jinuk Kim
 

Similar to 게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal (20)

Internship backend
Internship backendInternship backend
Internship backend
 
[온라인교육시리즈] 네이버 클라우드 플랫폼 init script 활용법 소개(정낙수 클라우드 솔루션 아키텍트)
[온라인교육시리즈] 네이버 클라우드 플랫폼 init script 활용법 소개(정낙수 클라우드 솔루션 아키텍트)[온라인교육시리즈] 네이버 클라우드 플랫폼 init script 활용법 소개(정낙수 클라우드 솔루션 아키텍트)
[온라인교육시리즈] 네이버 클라우드 플랫폼 init script 활용법 소개(정낙수 클라우드 솔루션 아키텍트)
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
 
리멤버 데스크톱 앱 개발기
리멤버 데스크톱 앱 개발기리멤버 데스크톱 앱 개발기
리멤버 데스크톱 앱 개발기
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트
 
PCF Installation Guide
PCF Installation GuidePCF Installation Guide
PCF Installation Guide
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
 
강좌 03 개발환경 구축
강좌 03 개발환경 구축강좌 03 개발환경 구축
강좌 03 개발환경 구축
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정
 
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 
Actual PoC guide for Virtual Desktop Infrastructure (Korean)
Actual PoC guide for Virtual Desktop Infrastructure (Korean)Actual PoC guide for Virtual Desktop Infrastructure (Korean)
Actual PoC guide for Virtual Desktop Infrastructure (Korean)
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
JetsonTX2 Python
 JetsonTX2 Python  JetsonTX2 Python
JetsonTX2 Python
 

게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal

  • 1. 게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal 온라인 게임 서버 제작자 모임 http://cafe.naver.com/ongameserver TTF http://www.npteam.net
  • 2. 빌드 자동화 아직도 두려우세요? 귀찮아. 지금까지도 잘 살았는데 뭐! 빌드 자동화 좋다던데 써 보고 싶은데 어떻게 쓰는 거지? 누가 설치해 줄 사람 없나? ?
  • 3. 빌드 자동화 이렇게 편한걸 왜 지금까지 몰랐지? 인터넷망에서 개 발망으로 데이터 가져오기 귀찮았 는데 편해졌네. 검증된 기획 데이 덤프 파일만 터를 써보니까 너무 가져와도 리비전의 편한데. 소스 파일과 PDB 파일을 자동으로 받아오네! !
  • 4. CruiseControl.NET은 뭔가요? ■ CruiseControl.NET 정보 - License BSD License, Apache Software License - Webpage http://sourceforge.net/projects/ccnet/ - 설치 가능 OS IIS 웹서버 작동이 가능한 Windows OS Windows XP 이후 Windows Server 2003 이후
  • 5. CruiseControl.NET로 무엇을 할 수 있나요? – Step 1 ■ 주요 4가지 작업 - Trigger 주기적으로 Project를 시작한다. - Source Control 소스 관리 프로그램에서 소스를 가져온다. - Task 작업을 처리한다. - Publisher 결과를 처리한다.
  • 6. CruiseControl.NET로 무엇을 할 수 있나요? – Step 2 ■ 게임 개발시 활용법
  • 7. CruiseControl.NET은 어떻게 설치 하나요? ■ 설치 방법은 대략 난감합니다. - 난감한 이유 1. 설치가 어렵지 않습니다. (복잡합니다.) 2. PT로 소개하기엔 지루합니다. 3. 상세하게 설명되어 있는 블로그가 많습니다. ex) http://www.npteam.net/839
  • 8. ccnet.config 구성 ■ 기본 Config 구성 프로젝트 이름 라벨 형식 대쉬보드 URL 시작 모드 트리거(Trigger Block) 작업(Task Block)
  • 9. ccnet.config 구성 ■ Hello World! 배치 파일 - Exit /B 종료코드( 0 : 성공, 1 : 실패 ) - 배치 파일 결과를 활용하는 것이 핵심!
  • 10. 대쉬보드에서 결과 보기 ■ 빌드 로그 2. 빌드 로그 보기 3. 빌드 결과 1. 최근 빌드 결과
  • 11. 기초는 여기까지 이제 응용해 봅시다. ■ 엑셀 데이터 검사하기 ■ Lua Script 컴파일 검사하기 ■ Python으로 Lua Script 검사하기 ■ 각 단계를 CruiseControl.NET에 추가
  • 12. 엑셀 데이터 검사하기 ■ 아이템 데이터 검사
  • 13. 엑셀 데이터 검사하기 ■ Python을 활용한 검사 - Python 다운로드 2.7 버전 http://www.python.org/download/ - Python for Windows extensions http://sourceforge.net/projects/pywin32/files/pywin32 - Python을 설치합니다.
  • 14. 엑셀 데이터 검사하기 ■ Python Script를 작성합니다.
  • 15.
  • 16. 엑셀 데이터 검사하기 ■ AccessDatabaseEngine 설치 - 오피스 2007 데이터 연결 구성 요소 http://www.microsoft.com/downloads/ko-kr/details.aspx?displaylang=ko&FamilyID=7554f536-8c28-4598-9b72-ef94e038c891 - DSN 연결 주소를 다음과 같이 수정한다. PROVIDER=Microsoft.Jet.OLEDB.4.0;  PROVIDER=Microsoft.ACE.OLEDB.12.0; Extended Properties=Excel 8.0;  Extended Properties=Excel 12.0;
  • 17. 엑셀 데이터 검사하기 ■ 실행 결과는 이렇습니다.
  • 18. 엑셀 데이터 검사하기 ■ 검사 코드 추가 사는 값 < 파는 값
  • 19. 기초는 여기까지 이제 응용해 봅시다. ■ 엑셀 데이터 검사하기 ■ Lua Script 컴파일 검사하기 ■ Python으로 Lua Script 검사하기 ■ 각 단계를 CruiseControl.NET에 추가
  • 20. Lua Script 컴파일 검사하기 ■ Lua Compiler를 활용한 검사 컴파일 에러
  • 21. Lua Script 컴파일 검사하기 ■ Lua Compiler를 활용한 검사 - Lua 컴파일러 다운로드 http://luabinaries.sourceforge.net/download.html - Lua for Windows http://code.google.com/p/luaforwindows/downloads/list - Lua for Windows를 설치합니다.
  • 22. Lua Script 컴파일 검사하기 ■ Lua Compiler를 활용한 검사 1. 루아 컴파일러와 스크립트 폴더를 지정한다. 2. -p 옵션으로 컴파일 검사를 짂행한다.
  • 23. Lua Script 컴파일 검사하기 ■ Lua Compiler를 활용한 검사 컴파일 에러
  • 24. 기초는 여기까지 이제 응용해 봅시다. ■ 엑셀 데이터 검사하기 ■ Lua Script 컴파일 검사하기 ■ Python으로 Lua Script 검사하기 ■ 각 단계를 CruiseControl.NET에 추가
  • 25. Python으로 Lua Script 검사하기 ■ _Isxxx 함수 리턴 값 검사 리턴 값 검사(true, false)
  • 26. Python으로 Lua Script 검사하기 ■ Python Script 만들기
  • 27. Python으로 Lua Script 검사하기 ■ Python을 Batch 파일로 실행하기 1. Python 실행파일 경로를 지정한다. 2. Python 스크립트 경로를 지정한다. 3. Lua Script 경로를 지정한다.
  • 28. Python으로 Lua Script 검사하기 ■ _Isxxx 함수 리턴 값 검사 리턴 값 검사(true, false)
  • 29. 기초는 여기까지 이제 응용해 봅시다. ■ 엑셀 데이터 검사하기 ■ Lua Script 컴파일 검사하기 ■ Python으로 Lua Script 검사하기 ■ 각 단계를 CruiseControl.NET에 추가
  • 30. 각 단계를 CruiseControl.NET에 추가 ■ ccnet.config에 DataChecker.cmd 등록
  • 31. 각 단계를 CruiseControl.NET에 추가 ■ cctray에 등록된 화면
  • 32. 각 단계를 CruiseControl.NET에 추가 ■ DashBoard에서 에러 확인하기
  • 33. 기초는 여기까지 이제 응용해 봅시다. ■ NSIS Installer에 추가하기 ■ 그외의 추가사항들…
  • 34. NSIS Installer에 추가하기 ■ Nullsoft Scriptable Install System - NSIS 다운로드 http://nsis.sourceforge.net - NSIS를 설치합니다.
  • 35. NSIS Installer에 추가하기 ■ zip 파일을 Installer로 만들기
  • 36. NSIS Installer에 추가하기 ■ zip 파일을 Installer로 만들기
  • 37. NSIS Installer에 추가하기 ■ zip 파일을 Installer로 만들기
  • 38. NSIS Installer에 추가하기 ■ Script를 사용하여 Installer로 만들기 DEFINE 정의하기 PRODUCT_NAME 제품이름 PRODUCT_VERSION 날짜 시간 PRODUCT_PUBLISHER 배포자 PRODUCT_WEB_SITE 웹 사이트
  • 39. NSIS Installer에 추가하기 ■ Script를 사용하여 Installer로 만들기 설치할 폴더 : C:Data $INSTDIR Define으로 사용될 폴더 출력위치 : 설치할 폴더 포함파일 : C:Data 폴더 하위의 모든 데이터 포함 출력위치 : 설치할 폴더 포함파일 : 재배포 패키지 실행 : 재배포 패키지 자동 실행
  • 40. NSIS Installer에 추가하기 ■ Script를 사용하여 Installer로 만들기 컴파일 된 Installer 패키지
  • 41. NSIS Installer에 추가하기 ■ Script를 사용하여 Installer로 만들기
  • 42. 그외에 추가사항은 블로그에… ■ 다른 Project의 실행 결과에 따라 Project 실행하기 ■ 하나의 Project를 여러 개로 나누기 ■ Project 그룹별 Lock 설정하기 ■ Robocopy를 이용하여 파일 복사 시갂 줄이기
  • 43. Window Terminal을 활용한 패치 ■ 윈도우 터미널을 이용하여 패치하기 ■ TTerminal을 이용하여 패치하기 ■ mRemote를 이용하여 패치하기 장점 : 터미널간 파일 복사가 쉽다.
  • 44. Window Terminal을 이용한 패치 ■ 윈도우 터미널을 이용하여 패치하기 드라이브 연결을 체크하면, 터미널간 파일을 복사할 수 있습니다.
  • 45. Window Terminal을 이용한 패치 ■ TTerminal을 이용하여 패치하기 http://dev.naver.com/projects/tterminal
  • 46. Window Terminal을 이용한 패치 ■ mRemote를 이용하여 패치하기 http://www.mremote.org/wiki/Downloads.ashx