Search

2019년 10월 26일 토요일

[Cocos2d-x] 프로젝트 생성하기 실행하기

#1. 들어가기


직전에 올린 글
Cocos2d-x 설치하기 (https://oskardevelopers.blogspot.com/2019/10/cocos2d-x-cocos2d-x.html)에서
Python 2.x와 Visual Studio Community, Cocos2d-x를 모두 설치했다면, 이번에는 본격적으로 프로젝트를 만들어보자.
여담이지만.. 현재 Python3을 사용중이었고, 앞으로 cocos2d-x로 개발을 개속 해볼거라면 Python2를 미리 환경변수에 등록하길 추천한다.. 매번 Anaconda Powershell Prompt를 통해 작업하긴 귀찮은 일이므로..

#2. Cocos2d-x 를 통해 첫 프로젝트 생성해보기


cmd 창을 열어 아래와 같이 kr.sam.martin패키지의 FirstGameTest라는 프로젝트를 생성해보자. (패키지명과 프로젝트 명은 자유롭게 작성하자~)
* 추가적으로 -l이후 언어를 js 등으로 선택할 수도 있다.

프로젝트 생성 형식:   cocos new {프로젝트명} -p {패키지명} -d {생성위치} -l cpp

cocos new FirstGameTest -p kr.sam.martin -d C:\Users\Martin\cocos2d-x-workspace -l cpp

조금 기다리면 cmd창에 아래와 같이 정상적으로 프로젝트가 생성되는 것을 확인할 수 있다.


해당 위치에 가면 'FirstGameTest' 프로젝트가 잘 생성되어 있는 모습을 확인할 수 있다.


#3. 프로젝트 실행해보기


프로젝트는 생성을 했는데 정작 실행을 못하면 소용 없으니.. 실행하는 법을 알아보자.
먼저, 아까 생성된 위치에서 아래와 같이 {프로젝트명}.sln 파일을 더블클릭 해보자.
필자의 경우 FirstGameTest.sln


미리 설치된 Visual Studio를 연결프로그램으로 선택해 열어주면, 또 뭘 업데이트 하라고 한다.. (귀찮지만) 업그레이드를 눌러주자.

다 끝나면, 아래처럼 탐색기에 내가 생성했던 FirstGameTest가 보일 것이다.
이걸 마우스 우클릭으로 '디버그 -> 새 인스턴스 시작' 을 눌러주자.


기나긴 warning의 향연이 지나고 나면... (시간이 꽤 걸린다..)
아래와 같이 귀여운(?) 로고와 함께 첫 프로젝트를 실행시켜볼 수 있다.


그럼 이제 남은건 개발뿐인가..?!


[Cocos2d-x] Cocos2d-x 설치하기

#1. 들어가기


무슨 바람이 분건지 모르겠지만, 최근들어 분석이 아니라 게임 개발이 급 해보고싶어졌다.
그래서 찾다보니 유니티는 나에게 너무 거창하고, 조그만 2D 게임을 테스트삼아 만들어보고 싶을땐 Cocos2d-x가 더 제격이라는 결론에 이르렀다.
우선, Cocos2d-x는 자체적으로 개발할 수 있는 통합 툴이 아니어서 Visual Studio CommunityPython 2.x 버전도 설치되어 있어야 한다는 점을 알고 들어가자.

* Visual Studio Community 설치: 최신의 설치파일을 받아서 그냥 인스톨하면 된다.
* Python 설치 참고: 참고 사이트는 3.x버전인데, 2.x버전을 설치해야 한다는점 기억하자.  https://oskardevelopers.blogspot.com/2019/04/python-python-anaconda.html

#2. 다운로드 및 설치


Cocos2d-x 다운로드 사이트(https://www.cocos2d-x.org/download)로 들어가서,
가장 좌측 상단에 최신버전(현재 기준으로 3.17.2) 파일을 다운받는다.

다운로드가 완료되면, 적당한 위치(필자의 경우 C:\Program Files\cocos2d-x)에 압축을 풀어주고, cmd 창을 열어 해당 경로로 가서 아래와 같이 인스톨을 실행한다. (기존 Python3 사용자가 Python2를 설치하게 됐을 경우, Path를 조정하지 않고 Anaconda Powershell Prompt (Anaconda2)를 열어서 설치하면 보다 간단하게 해결된다.)

C:\Program Files\cocos2d-x>  python setup.py


설치 도중에 아래와 같은 문구가 나오는데,
- Please enter the path of NDK_ROOT (or press Enter to skip):
- Please enter the path of ANDROID_SDK_ROOT (or press Enter to skip):
지금 당장 안드로이드 개발 환경을 구축할 필요는 없으니, 엔터를 눌러 스킵하고 나중에 필요할 때 설정하자.

설치가 완료되고 환경변수 창에 들어가보면, 아래와 같이 cocos관련한 변수들이 등록된 것을 확인할 수 있다.


#3. 실행테스트


설치한 cmd창(혹은 Ananconda Powershell Prompt창)을 열어 cocos라고 입력하고 엔터를 입력하면 아래와 같은 화면이 나타난다. (최초 실행시)


데이터 전송에 대해선 취향것 Y or N를 선택하면 되고,
두 번째부터 cocos를 입력하거나, cocos --version을 입력하면 아래와 같이 정상적으로 동작하는 것을 확인할 수 있다.




2019년 4월 23일 화요일

[R] [bash] bash에서 argument(인자)를 받아 R script내 변수로 활용하기

#1. 들어가기

R script를 모두 작성한 이후, batch작업 등을 통해 시스템적으로 반복적인 작업을 해야할 때가 있다.
이럴 경우 shell 창 자체에서 argument를 설정하여 script 내부의 변수로 활용할 수 있다.


#2. 코드

* R script 내부 ( test.R )
# bash에서 argument를 받아, args 변수에 저장
args = commandArgs(trailingOnly=TRUE)

# args에 저장된 내용 프린트
print(paste("test args :", args))

* shell 에서 명령
Rscript test.R thisIsTest


* 결과 화면








#3. 추가

보통은 일/월 별 특정 날짜에 배치작업을 수행하는 목적으로 많이 사용하는데, 아래의 코드로 server의 시스템 날짜를 바로 가져와서 활용할 수 있다.
#Set this month 'YYYYMM'
curr_month <- format(Sys.time(), "%Y%m")   # server의 시스템 날짜를 가져와 입력
print(curr_month)

2019년 4월 17일 수요일

[Python] library(or package) install

#1. 들어가기

파이썬을 사용하다보면 추가적으로 필요한 라이브러리(혹은 패키지)를 사용해야 할 때가 있다.
Windows를 기준으로 cmd나 사용중인 IDE의 terminal 창을 이용해 명령어로 간단하게 동작시킬 수 있다.


#2. 명령어

python -m pip install {lib_name}

여기에서 {lib_name} 대신 본인이 설치하길 원하는 라이브러리명을 넣으면 된다.


[Python] Python 설치하기 - Anaconda 사용

#1. 들어가기

최근들어 많은 사람들이 프로그래밍 언어로 Python을 사용하는데, 설치 및 간략한 환경 설정하는 법을 작성해본다. (Python의 3.x 버전을 기준으로 작성하였으며, 현 시점 최신버전인 3.7버전으로 진행)

먼저, python을 설치하는데, 왜 자꾸 anaconda 이야기가 나오지? 라는 분들도 간혹 있으실텐데, 복잡한건 다 빼고 간단하게 설명하자면.. 영어로 python은 작은 비단뱀이고 anaconda는 거대한 뱀이다. (거대한 뱀이 작은 뱀을 삼키는 이미지를 머릿속에 그려본다면..) 기본적인 프로그래밍 언어로서 python에다가 이것저것 편리한 기능 및 패키지들을 기본 옵션으로 장착한 녀석이 바로 anaconda라고 생각하면 수월하다.


#2. 다운로드 및 설치

아나콘다의 다운로드 사이트(https://www.anaconda.com/distribution/#download-section)로 들어가보면, 각자의 OS와 bit에 맞춰서 다운로드를 받을 수 있다. (여기에서는 Windows 64bit를 기준으로 작성)


다운로드 받은 파일을 실행하여 next를 눌러가며 설치하되,
'Advanced options' 라는 창이 뜨며 체크박스 항목이 중간에 한번 뜨게된다.
이 때, 직접 환경변수를 편집해서 추가할 생각이 아니라면 모두 체크하고 설치하면 보다 간편하게 설치를 진행할 수 있다.

* 혹이라도 체크를 못하고 넘어갔어도, 환경 변수->시스템 변수 -> Path에서

C:\ProgramData\Anaconda3;C:\ProgramData\Anaconda3\Library\mingw-w64\bin;C:\ProgramData\Anaconda3\Library\usr\bin;C:\ProgramData\Anaconda3\Library\bin;C:\ProgramData\Anaconda3\Scripts;

위와 같이 직접 경로를 추가할 수 있으니 걱정은 안해도 된다.
Path 자체를 추가할줄 모른다면, OS마다 그리고 설치 경로마다 조금씩 상이하니, 검색을 추천한다... (아니면 지우고 다시 설치..?)


#3. 실행 테스트

시작->실행->cmd 창을 열어서 아래와 같이 명령어를 바로 입력하고 엔터를 쳐보자.

python --version

그러면 하단에 'Python 3.7.0' 라고 현재 PC에 설치된 python 버전을 가르쳐주면 정상적으로 설치가 된 것을 나타낸다.



2019년 1월 31일 목요일

[Linux] [CentOS] 반복 및 예약 작업 설정하기 (crontab)

#1. 들어가기

매월 혹은 매일 단위로 배치 작업을 수행해야 하거나, 특정 날짜의 특정 시간에 이벤트성으로 작업을 걸어줘야 하는 경우가 있다.
이럴 경우엔 사람이 직접 수작업으로 수행할 수 없으니 crontab을 활용해 자동화 시키는 방법을 알아보자.


#2. crontab 사용

crontab을 사용하기 위해서는 crond가 동작되고 있어야 한다.
아래의 명령어를 통해 cornd가 돌아가고 있는지 확인/시작/중지 시킬 수 있다.
bash ~]$ ps -ef | grep crond                 # crond 확인
bash ~]$ /etc/rc.d/init.d/crond start        # crond 시작
bash ~]$ /etc/rc.d/init.d/crond stop         # crond 중지

crond가 정상적으로 확인된다면, crontab을 통해 현재 예정된 작업들을 확인/수정 할 수 있다.
bash ~]$ crontab -l                          # 예정된 작업리스트 확인
bash ~]$ crontab -e                          # 작업리스트 수정(추가/수정/삭제)


#3. crontab 작업리스트 추가 옵션

작업리스트는 총 6개의 항목을 작성하여 등록할 수 있는데, 아래와 같이 순서에 맞게 6개의 항목을 작성해주면 된다. (구분은 스페이스바 공백으로 하면 되고, 전체의 의미는 *이다.)

기본구문:     (1)   (2)   (3)   (4)   (5)요일   (6)실행명령구문

ex> 15  2  *  *  *  ~/run_batch.sh                                설명: 매월 매일 새벽 2시 15분에 home의 run_batch.sh 파일을 실행시킨다.
ex> 15  2  *  *  0  ~/run_batch.sh > ~/batch_log.txt    설명: 매주 일요일 새벽 2시 15분에 명령을 수행하고, batch_log.txt에 로그를 기록한다.


아래와 같이 조금 더 세부적인 컨트롤도 가능하다.

- 콤마(,): 여러 특정 범위를 지정할 수 있다.
- 하이픈(-): 여러 연속된 범위를 지정할 수 있다.
- 슬래쉬(/): 범위에 대한 간격을 지정할 수 있다.

ex> 0,15,30,45  2  *  *  *  ~/run_batch.sh                       설명: 매월 매일 새벽 2시 00, 15, 30, 45분에 명령 수행.
ex> */15  2  *  *  *  ~/run_batch.sh                                설명: 매월 매일 새벽 2시 00, 15, 30, 45분에 명령 수행.
ex> 0  1-5  *  *  *  ~/run_batch.sh                                  설명: 매월 매일 새벽 1~5시 정각에 명령 수행.



기타 더 세부적인 옵션은 아래의 참조 사이트들을 참고해보자.
참조1: https://www.adminschoice.com/crontab-quick-reference
참조2: http://egloos.zum.com/program/v/802690

2018년 12월 23일 일요일

[Database] [Oracle] sequence에 상관없이 string 값 비교하기 (TRANSLATE)

#1. 들어가기

특히, 코드값 등을 비교하는 쿼리를 작성할 때, 아래와 같이 특정 시퀀스에 관계없이 일치 여부를 판별해야 하는 경우가 종종 있다.
아래의 예는 TMP_TABLE에서 A_COL과 B_COL을 비교해 EQUAL 컬럼을 생성한 예제이다.



즉, 모든 유니크한 원소의 개수는 일치하면서 순서만 다른 경우를 판별하는 케이스인데, CONNECT BY LEVEL 등을 활용한 구문보다 TRANSLATE의 알고리즘을 활용하면 보다 간결하고 빠르게 동작하는 쿼리를 작성할 수 있다.


#2. 쿼리

아래와 같이 TRANSLATE 구문을 사용해 문제를 해결할 수 있다.

--string값의 순서에 상관없이 비교하기
SELECT      A_COL
           ,B_COL
           ,CASE WHEN TRANSLATE(A_COL, B_COL,' ') = TRANSLATE(B_COL, A_COL,' ')
                 THEN 'TRUE'
            ELSE      'FALSE'  END  AS  EQUAL
FROM        TMP_TABLE
;