대부분 파이썬(python)은 소스코드 그대로를 실행해서 사용하는 것이 일반적이다.

그렇다면 가장 중요하게 생각해야 할 점은 이썬을 굳이 컴파일 해야 하는 이유는 무엇인가? 일 것이다.

C언어의 경우는 소스코드를 해당 시스템의 바이너리로 변환해주는 컴파일 과정을 반드시 거쳐야만 실행이 가능한 구조를 가지고 있다.

하지만 파이썬의 경우에는 시스템에 파이썬 라이브러리가 깔려 있다면 자체 인터프리터 프로세스 기능을 활용하여 소스코드 그 자체로써의 실행이 가능해 진다.

물론 이 과정에서 시스템은 이미 해당 바이너리에 일치하는 파이썬 라이브러리 모듈을 가지고 있기 때문에 바이너리가 틀려도 얼마든지 실행될수 있다는 장점을 가지고 있다.

하지만 프로그래밍을 한 번 이상 해 본 사람은 뭔가 애매모호한 파이썬의 결점에 대해서 생각해 볼 수 밖에 없어 진다.

바로 해당 시스템에 소스코딩에 사용된 임포트(IMPORT) 라이브러리와나 기존의 베이스 기반은 파이썬 모듈이 없다면...

이것은 매우 중요한 문제이다.

예를 들어 기초 파일시스템을 설계 할때나 즉 파이썬이 설치 되지 않은 상태에서는 해당 소스코드 파일이 실행이 불가능 하기 때문이다.

즉 그 자체로서는 소프트웨어가 될수 없는 반드시 부모 프로세스인 파이썬이 있어야만 실행이 되는 비운의 운명인 것이다.

일부 의견들 중에는 파이썬을 컴파일 하는 이유가 '암호화'의 목적이 있다고 하는 경우가 있는데 그것은 매우 비전문적인 의견 이라고도 볼 수가 있다.

컴파일의 목적은 암호화가 목적이 아니라 독자적인 아키텍쳐로써의 실행을 가능케 하기 위한 바이너리화를 그 목적으로 두고 있으며 컴파일된 파일은 아스키 문자와 16진수로의 리딩이 가능하다. 뿐만 아니라 C언어나 파이썬은 디컴파일러를 수행할수 있는 소프트웨어가 존재한다.

또 파이썬의 컴파일의 장점을 또 한가지 예를 든다면 예를 들어 똑같은 GTK+(Gimp tool kit for gui)를 수행하는 각각의 컴파일 된 C언어와 파이썬 파일을 보았을때 용량에서 부터 큰 차이를 가진다.

즉 파이썬이 C언어 보다 컴파일된 크기가 훨씬 가볍다.


그렇다면 다음 장에서 부터 직접 적으로 파이썬을 컴파일 해보도록 하자.


도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


[Name]   



glotto-k



[ Section ]   


game


[ Version - 날짜]


0.7-1 ( Sun, 02 Oct 2016 21:33:54 +0900 )


[ 지원 아키텍쳐 ]   


x86_64, i386, armhf, arm64


[ 지원 운영체제 ]   


Linux_debian_ubuntu : xenial, wily, vivid, trusty, preceis, linux mint.....


[ 빌드 & 컴파일러 ]


bash


[ 의존 패키지 ]


fonts-nanum



[ 설명 ]   


본 프로그램은 대한민국의 6/45 로또를 위한 추천 번호를 의사난수를 활용해 출력해 주는 프로그램 입니다.                                                         

*주의 cpu 사용률이 의외로 상당히 높습니다. 듀얼코어 이상에서 실행 하시기를 권고 합니다.


[ 특징 및 변경 사항 : Changes log ]   


 * Source upgrade.
 * Process added ('etcs')
  * Process deleted ('getter')   


[ 개발자 ]


C O S M O S project.


site: http://cosmosproject2015.tistory.com


e-mail : cosmosproject15@gmail.com


[ 설치 방법 ]   


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>



root@test:~$ sudo apt-add-repository ppa:cosmosp2016/apps


root@test:~$ sudo apt update

root@test:~$ sudo apt install glotto-k




[실행]   


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>


root@test:~$ glotto-k







[사용 방법]


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

root@test:~$ glotto-k --help






[ 소스 다운로드 ]  

준비중



우리나라에 현재 좀비는 실재하고 있다.


아니, "좀비들이 실재 하고 있다" 라고 하는 것이 옳을지도 모른다.


하지만 그 얘기를 하기전에 과연 좀비는 무엇인가?


좀비는,


공격성이 강하고


타인을 귀히 여기지 않고 아무 이유 없이 타인을 공격하고


괴물처럼 울부 짓으며 불특정 타인들을 원망하고 비하한다.


제정신이 아니다.


그렇다면 꼭 흉측하게 생긴 것만이 좀비가 아니란 말이 된다.


그렇다면 다른게 좀비가 아니다.


우리들 중에도 좀비들이 있다.


아니 어쩌면 그 수가 10만 이상 가까이 많을수도 있으며 인터넷에 글을 쓰고 카카오톡을 할 만큼 아직 지적능력은 남아 있을지도 모른다.


그리고 그 좀비적 본성을 넷상에서도 표츌하기 마련이다.


현실 세계에서도 제정신 아닌 좀비들이 보이지만 나머지 넷상에서 놀고 있는 타인을 인신공격 하는 좀비들은 아직까지 완전히 감염이 잃어나지는 않은지 겉 모습은 멀쩡한 척 하고 다닌다.


사람들이 좀비가 되는 원인은 무엇일까?


아마도 영화 처럼 기생충 감염 이나 바이러스등 여러 요인들이 있을 것이다.


그것이 아니라면 혹시 또 그 원인이 무엇이 있을까?



"도덕적 교육의 부재" 어쩌면 그것이 가장 큰 원인이 될 지도 모른다.


도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.




우리나라에 현재 좀비는 실재하고 있다.


아니, "좀비들이 실재 하고 있다" 라고 하는 것이 옳을지도 모른다.


하지만 그 얘기를 하기전에 과연 좀비는 무엇인가?


좀비는,


공격성이 강하고


타인을 귀히 여기지 않고 아무 이유 없이 타인을 공격하고


괴물처럼 울부 짓으며 불특정 타인들을 원망하고 비하한다.


제정신이 아니다.


그렇다면 꼭 흉측하게 생긴 것만이 좀비가 아니란 말이 된다.


그렇다면 다른게 좀비가 아니다.


우리들 중에도 좀비들이 있다.


아니 어쩌면 그 수가 10만 이상 가까이 많을수도 있으며 인터넷에 글을 쓰고 카카오톡을 할 만큼 아직 지적능력은 남아 있을지도 모른다.


그리고 그 좀비적 본성을 넷상에서도 표츌하기 마련이다.


현실 세계에서도 제정신 아닌 좀비들이 보이지만 나머지 넷상에서 놀고 있는 타인을 인신공격 하는 좀비들은 아직까지 완전히 감염이 잃어나지는 않은지 겉 모습은 멀쩡한 척 하고 다닌다.


사람들이 좀비가 되는 원인은 무엇일까?


아마도 영화 처럼 기생충 감염 이나 바이러스등 여러 요인들이 있을 것이다.


그것이 아니라면 혹시 또 그 원인이 무엇이 있을까?



"도덕적 교육의 부재" 어쩌면 그것이 가장 큰 원인이 될 지도 모른다.


도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.




리눅스 우분투는 언어 패키지를 손쉽게 설치 할 수 있는 레파시토리를 가지고 있다.

뿐만 아니라 폰트 패키지도 보통 패키지 인스톨로도 손쉽게 설치가 가능하다.


그럼 여러분의 운영체제의 현재 언어와 인코딩 확인과 변경 그리고 언어팩 설치와 폰트 수동 설치를 해 보도록 하자.


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>


// 먼저 여러분의 운영체제가 어떤 언어가 기본으로 되어 있는 지를 확인해 보자.


root@test:~$ locale


LANG=ko_KR.UTF-8
LANGUAGE=ko
LC_CTYPE="ko_KR.UTF-8"
LC_NUMERIC="ko_KR.UTF-8"
LC_TIME="ko_KR.UTF-8"
LC_COLLATE="ko_KR.UTF-8"
LC_MONETARY="ko_KR.UTF-8"
LC_MESSAGES="ko_KR.UTF-8"
LC_PAPER="ko_KR.UTF-8"
LC_NAME="ko_KR.UTF-8"
LC_ADDRESS="ko_KR.UTF-8"
LC_TELEPHONE="ko_KR.UTF-8"
LC_MEASUREMENT="ko_KR.UTF-8"
LC_IDENTIFICATION="ko_KR.UTF-8"
LC_ALL=


-> 한글과 인코딩이 utf8로 설정 되어 있을 경우





만일 한글로 설정이 되어 있지 않는다면 다음과 같이 명령을 내린다.


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// 한글 언어팩과 나눔 폰트를 설치 한다.


root@test:~$ sudo apt install language-pack-ko fonts-nanum



// 언어를 전역 설정한다.


root@test:~$ sudo locale-gen ko_KR.UTF-8


Generating locales (this might take a while)...
  ko_KR.UTF-8...hash collision (1701936715) ko_KR.utf8, es_CO.utf8
 done
Generation complete.






그렇다면 이번에는 폰트(.ttf)를 수동으로 직접 설치 하는 방법에 대하여 알아 보도록 하자.


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// ls 명령으로 폰트 파일들이 있는 경로부터 확인해 보도록 하자. l


root@test:~$ ls /usr/share/fonts


X11  cmap  eot  kopub  opentype  svg  truetype  type1  woff


-> 폴더들은 폰트 패키지 폴더 들이다.


// 그렇다면 이제는 원하는 ttf 파일들이 있는 폴더를 통째로 저 폴더에 가져다 넣는다.
 그렇다면 이제는 원하는 ttf 파일들이 있는 폴더를 통째로 저 폴더에 가져다 넣는다.


root@test:~$ cp -r newfont /usr/share/fontssudo cp -r newfont /usr/share/fonts



// 이제 수동으로 복사한 폰트를 시스템에서 업데이트 한다. l


root@test:~$ fc-cache -f -v


    
-> 폰트들이 재구성 되는 것을 볼 수가 있다.
 




도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.

리눅스 우분투는 언어 패키지를 손쉽게 설치 할 수 있는 레파시토리를 가지고 있다.

뿐만 아니라 폰트 패키지도 보통 패키지 인스톨로도 손쉽게 설치가 가능하다.


그럼 여러분의 운영체제의 현재 언어와 인코딩 확인과 변경 그리고 언어팩 설치와 폰트 수동 설치를 해 보도록 하자.


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>


// 먼저 여러분의 운영체제가 어떤 언어가 기본으로 되어 있는 지를 확인해 보자.


root@test:~$ locale


LANG=ko_KR.UTF-8
LANGUAGE=ko
LC_CTYPE="ko_KR.UTF-8"
LC_NUMERIC="ko_KR.UTF-8"
LC_TIME="ko_KR.UTF-8"
LC_COLLATE="ko_KR.UTF-8"
LC_MONETARY="ko_KR.UTF-8"
LC_MESSAGES="ko_KR.UTF-8"
LC_PAPER="ko_KR.UTF-8"
LC_NAME="ko_KR.UTF-8"
LC_ADDRESS="ko_KR.UTF-8"
LC_TELEPHONE="ko_KR.UTF-8"
LC_MEASUREMENT="ko_KR.UTF-8"
LC_IDENTIFICATION="ko_KR.UTF-8"
LC_ALL=


-> 한글과 인코딩이 utf8로 설정 되어 있을 경우





만일 한글로 설정이 되어 있지 않는다면 다음과 같이 명령을 내린다.


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// 한글 언어팩과 나눔 폰트를 설치 한다.


root@test:~$ sudo apt install language-pack-ko fonts-nanum



// 언어를 전역 설정한다.


root@test:~$ sudo locale-gen ko_KR.UTF-8


Generating locales (this might take a while)...
  ko_KR.UTF-8...hash collision (1701936715) ko_KR.utf8, es_CO.utf8
 done
Generation complete.






그렇다면 이번에는 폰트(.ttf)를 수동으로 직접 설치 하는 방법에 대하여 알아 보도록 하자.


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// ls 명령으로 폰트 파일들이 있는 경로부터 확인해 보도록 하자. l


root@test:~$ ls /usr/share/fonts


X11  cmap  eot  kopub  opentype  svg  truetype  type1  woff


-> 폴더들은 폰트 패키지 폴더 들이다.


// 그렇다면 이제는 원하는 ttf 파일들이 있는 폴더를 통째로 저 폴더에 가져다 넣는다.
 그렇다면 이제는 원하는 ttf 파일들이 있는 폴더를 통째로 저 폴더에 가져다 넣는다.


root@test:~$ cp -r newfont /usr/share/fontssudo cp -r newfont /usr/share/fonts



// 이제 수동으로 복사한 폰트를 시스템에서 업데이트 한다. l


root@test:~$ fc-cache -f -v


    
-> 폰트들이 재구성 되는 것을 볼 수가 있다.
 




도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


평소 최근들어 시간이 흐를 수록 인터넷 소통 문화가 점점 더 삼엄해 지고 있다는 것에 대하여 본 필자 뿐만이 아니라 많은 사람들이 느끼고 있을 것이라고 본 필자는 생각한다.

보통 상식적으로 시간이 흐를수록 인터넷 커뮤니티의 문화는 타인에 대한 이해와 존중 타인을 비방하지 않는 차원 에서의 발언의 자유 등이 개선 되고 진보적으로 이루어져 나아가야 함이 마땅한데

우리나라의 대부분의 커뮤니티 들은 상대방의 글에 조금만 헛점이 보이거나 타인의 글이 자신의 생각과 다르거나 마음에 들지 않으면 인신공격, 집단 공격, 신상털기, 왕따 시키기, 욕설 등 타인에 대한 분노가 아주 조금한 발단으로 인해서도 이루어 지고 있다.

이러한 현상은 지식을 논하는 매니아적 커뮤니티 에서도 잘 보여지고 있다.

어저면 그런 곳이 더욱 심할지도 모른다.

그리고 타인의 글을 검열하여 심판하는 이들은 '인터넷은 확고한 사실이 보장되어야 하니까' 라는 불분명한 무서운 사상적 핑계를 가지고 있다.

그리고 결국에는 어떤 문제가 처음 제시된 글의 댓글들에는 명철한 결과적 답변 보다는 마치 전쟁처럼 인신공격이 오가는 모습들 만이 남아 있는것을 많이 볼수가 있다.



외국 특히 선진국들의 경우에는 어떠할까?

틀린 답변에 크게 게의치 않는다.

그리고 틀린 답변들에 대한 수정과 뼈대가 더해져 갈수록 업그레이드 되는 답변들이 하나 하나씩 계속 달린다.

그리고 최종적으로 엑설런트한 답변이 거의 댓글 마지막에 이루어지는 것을 흔히 볼 수가 있었다.

그리고 이러한 광경은 본 필자는 외국 커뮤니티 사이트에서 상당히 많이 보았었고 그것을 통해서 우리나라의 커뮤니티 문화는 그와는 상반되게 상대방을 비하하고 조롱하는 갑질 문화가 자리 잡혀 있는 것을 심히 크게 깨달았고 대체 이유가 무엇인가? 하는 의문점이 가슴속에 자리 잡을수 밖에 없어진다.

아무래도 외국인 지식인들은 상대방의 글이 언제든지 충분히 틀릴수 있다는 가정을 깨닫고 있으며 그것은 신경쓸 필요도 없이 매우 당연시 하는 것으로 판단된다.

그러니까 대부분 틀린 글에 일체 토를 달지 않고 그냥 업그레이된 새로운 답변을 다는 것이 일반적이다.

하지만 우리나라의 인터넷 문화는 아주 사소한것 하나라도 틀리면 물로 늘어져 처음부터 넷상에서의 전쟁이 시작되어 그 전쟁이 한 페이지를 장식한다.

무엇이 어디서 부터 잘못된 것일까?

인생이란 서로들을 전부 위하고 사랑하기엔 턱 없이 짧은 시간이다.

물론 개인의 인생 가치관은 저마다 차이가 있지만 적어도 타인에게는 상처를 쥐어 줘서는 안된다. 그것은 반드시 다시 되돌아 오기 마련이기 때문이다.

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.





평소 최근들어 시간이 흐를 수록 인터넷 소통 문화가 점점 더 삼엄해 지고 있다는 것에 대하여 본 필자 뿐만이 아니라 많은 사람들이 느끼고 있을 것이라고 본 필자는 생각한다.

보통 상식적으로 시간이 흐를수록 인터넷 커뮤니티의 문화는 타인에 대한 이해와 존중 타인을 비방하지 않는 차원 에서의 발언의 자유 등이 개선 되고 진보적으로 이루어져 나아가야 함이 마땅한데

우리나라의 대부분의 커뮤니티 들은 상대방의 글에 조금만 헛점이 보이거나 타인의 글이 자신의 생각과 다르거나 마음에 들지 않으면 인신공격, 집단 공격, 신상털기, 왕따 시키기, 욕설 등 타인에 대한 분노가 아주 조금한 발단으로 인해서도 이루어 지고 있다.

이러한 현상은 지식을 논하는 매니아적 커뮤니티 에서도 잘 보여지고 있다.

어저면 그런 곳이 더욱 심할지도 모른다.

그리고 타인의 글을 검열하여 심판하는 이들은 '인터넷은 확고한 사실이 보장되어야 하니까' 라는 불분명한 무서운 사상적 핑계를 가지고 있다.

그리고 결국에는 어떤 문제가 처음 제시된 글의 댓글들에는 명철한 결과적 답변 보다는 마치 전쟁처럼 인신공격이 오가는 모습들 만이 남아 있는것을 많이 볼수가 있다.



외국 특히 선진국들의 경우에는 어떠할까?

틀린 답변에 크게 게의치 않는다.

그리고 틀린 답변들에 대한 수정과 뼈대가 더해져 갈수록 업그레이드 되는 답변들이 하나 하나씩 계속 달린다.

그리고 최종적으로 엑설런트한 답변이 거의 댓글 마지막에 이루어지는 것을 흔히 볼 수가 있었다.

그리고 이러한 광경은 본 필자는 외국 커뮤니티 사이트에서 상당히 많이 보았었고 그것을 통해서 우리나라의 커뮤니티 문화는 그와는 상반되게 상대방을 비하하고 조롱하는 갑질 문화가 자리 잡혀 있는 것을 심히 크게 깨달았고 대체 이유가 무엇인가? 하는 의문점이 가슴속에 자리 잡을수 밖에 없어진다.

아무래도 외국인 지식인들은 상대방의 글이 언제든지 충분히 틀릴수 있다는 가정을 깨닫고 있으며 그것은 신경쓸 필요도 없이 매우 당연시 하는 것으로 판단된다.

그러니까 대부분 틀린 글에 일체 토를 달지 않고 그냥 업그레이된 새로운 답변을 다는 것이 일반적이다.

하지만 우리나라의 인터넷 문화는 아주 사소한것 하나라도 틀리면 물로 늘어져 처음부터 넷상에서의 전쟁이 시작되어 그 전쟁이 한 페이지를 장식한다.

무엇이 어디서 부터 잘못된 것일까?

인생이란 서로들을 전부 위하고 사랑하기엔 턱 없이 짧은 시간이다.

물론 개인의 인생 가치관은 저마다 차이가 있지만 적어도 타인에게는 상처를 쥐어 줘서는 안된다. 그것은 반드시 다시 되돌아 오기 마련이기 때문이다.

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.





평소 최근들어 시간이 흐를 수록 인터넷 소통 문화가 점점 더 삼엄해 지고 있다는 것에 대하여 본 필자 뿐만이 아니라 많은 사람들이 느끼고 있을 것이라고 본 필자는 생각한다.

보통 상식적으로 시간이 흐를수록 인터넷 커뮤니티의 문화는 타인에 대한 이해와 존중 타인을 비방하지 않는 차원 에서의 발언의 자유 등이 개선 되고 진보적으로 이루어져 나아가야 함이 마땅한데

우리나라의 대부분의 커뮤니티 들은 상대방의 글에 조금만 헛점이 보이거나 타인의 글이 자신의 생각과 다르거나 마음에 들지 않으면 인신공격, 집단 공격, 신상털기, 왕따 시키기, 욕설 등 타인에 대한 분노가 아주 조금한 발단으로 인해서도 이루어 지고 있다.

이러한 현상은 지식을 논하는 매니아적 커뮤니티 에서도 잘 보여지고 있다.

어저면 그런 곳이 더욱 심할지도 모른다.

그리고 타인의 글을 검열하여 심판하는 이들은 '인터넷은 확고한 사실이 보장되어야 하니까' 라는 불분명한 무서운 사상적 핑계를 가지고 있다.

그리고 결국에는 어떤 문제가 처음 제시된 글의 댓글들에는 명철한 결과적 답변 보다는 마치 전쟁처럼 인신공격이 오가는 모습들 만이 남아 있는것을 많이 볼수가 있다.



외국 특히 선진국들의 경우에는 어떠할까?

틀린 답변에 크게 게의치 않는다.

그리고 틀린 답변들에 대한 수정과 뼈대가 더해져 갈수록 업그레이드 되는 답변들이 하나 하나씩 계속 달린다.

그리고 최종적으로 엑설런트한 답변이 거의 댓글 마지막에 이루어지는 것을 흔히 볼 수가 있었다.

그리고 이러한 광경은 본 필자는 외국 커뮤니티 사이트에서 상당히 많이 보았었고 그것을 통해서 우리나라의 커뮤니티 문화는 그와는 상반되게 상대방을 비하하고 조롱하는 갑질 문화가 자리 잡혀 있는 것을 심히 크게 깨달았고 대체 이유가 무엇인가? 하는 의문점이 가슴속에 자리 잡을수 밖에 없어진다.

아무래도 외국인 지식인들은 상대방의 글이 언제든지 충분히 틀릴수 있다는 가정을 깨닫고 있으며 그것은 신경쓸 필요도 없이 매우 당연시 하는 것으로 판단된다.

그러니까 대부분 틀린 글에 일체 토를 달지 않고 그냥 업그레이된 새로운 답변을 다는 것이 일반적이다.

하지만 우리나라의 인터넷 문화는 아주 사소한것 하나라도 틀리면 물로 늘어져 처음부터 넷상에서의 전쟁이 시작되어 그 전쟁이 한 페이지를 장식한다.

무엇이 어디서 부터 잘못된 것일까?

인생이란 서로들을 전부 위하고 사랑하기엔 턱 없이 짧은 시간이다.

물론 개인의 인생 가치관은 저마다 차이가 있지만 적어도 타인에게는 상처를 쥐어 줘서는 안된다. 그것은 반드시 다시 되돌아 오기 마련이기 때문이다.

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.




BASH 쉘 프로그래밍으로 인공지능 '가위, 바위, 보' 게임을 만들어 보자.


리눅스에서 bash는 윈도우와 비교한다면 autobat 과 비슷하다고 볼수 있다 라는 것은... 훼이크고

그렇다고 말하는 사람들이 있지만 그것과는 사실 게임이 되지 않는다.


즉 bash 가 더욱 강력하고 하나의 소프트웨어를 만들 정도로 어마어마 하다 이거지~


bash는 쉘스크립트로 불리움으로써 유닉스 체계를 전부 응용하여 다룰수 있는 전역 프로그래밍 이라고 말할수 있다.


원래는 그낭 sh 로 불리우지만 기존의 sh에서 여러 기능이 업그레이드 되면서 bash 가 탄생한 것이다.

뿐만 아니라 bash가 이전 sh를 기반으로 하지만 유닉스 시스템 체계에서 이 둘은 개별적으로 존재 한다.


또 bash의 스크립트 방식으로 프로그래밍을 짰을 경우 { #!/bin/sh } 모듈을 로드해서 실행 할 경우 정상적으로 동작 하지 않을 수 있다.

그렇기에 현재로써는 주로 개발자들은 bash { #!/bin/bash }를 채택해서 사용 하는 경우가 일반적이다.


자 그렇다면 bash shell script programming을 이용해서 심플한 인공지능 형태의 '가위, 바위, 보' 게임을 만들어 보자.

여기서 중점으로 다뤄야하는 소스 형태는 크게 다섯 가지로 분류 된다.


첫째, 변수 지정


pn=0
yn=0


∴ 위는 승리 횟수 카운트 저장을 위한 숫자 0부터 시작하는 기본적은 변수 적용이다.


둘째, 함수 지정

rpsai() {

if [ $pc = 1 ]; then
    echo "
저는 가위를 냈습니다."
    if [ $rps = 1 ]; then
        echo "
        우린 비겼습니다."
        echo "
당신의 점수는 $yn 저의 점수는 $pn 입니다."
    fi
fi

}  


∴ rpsai 란 이름으로 인공지능 설정을 위한 if문을 응용한 전체 함수를 지정한다.


셋째, if문

if [ $rps = 1 ]; then
        echo "
당신은 1 (가위)를 내셨습니다."

# 지정한 rpsai 함수를 불러온다.

        rpsai       
fi


∴ 사용자 키 입력시 발생하는 스크립트를 처리하는 if 문 설계


넷째, read문

# 사용자의 입력을 받아 들이는 read 문 변수를 지정한다.

read -n 1 -p "nput key [1(가위), 2(바위), 3(보), 0(종료)]" rps


∴ rps란 이름으로 변수를 만들어 사용자 입력을 연동 (저장) 시킨다.

사실 read문은 기존 스크립트가 아닌 유닉스 기본 프로그램 중 하나고 콘솔의 명령 체계를 이용하는 것이다.


다섯째, while문

while [ : ]; do

script

done


∴ while문은 계속해서 반복수행하는 스크립트를 구성할수 있다.


실행을 위한 전체 소스코드

Source_File name : rps

[Download]

Type : Bash

클립보드로 복사 → (본문 클릭)

무제


코딩을 완료 하고 'rps'로 저장하였으면 터미널을 열고 본격적으로 실행을 위한 준비를 한다.

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

//  실행이 가능하겠끔 파일의 속성을 변환 시킨다.


root@test:~$ chmod +x rps


//  이제 실행을 해본다.


root@test:~$ ./rps

This program is 'Rock Paper Scissors game' by type simple AI.
How to play game?
    You need select 1(가위), 2(바위), 3(보), 0(exit)

Enter or any key to let's start!'

-> Enter키나 아무키를 눌러 게임을 시작하자.


Ok. let's start.'

Input key [1(가위), 2(바위), 3(보), 0(종료)]



위와 같이 게임이 진행 된다.



소스 다운로드 :


github : https://github.com/cosmosproject15/rps_game


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// git 명령으로 소스를 다운받는다.


root@test:~$ git clone https://github.com/cosmosproject15/rps_game


// 다운 받은 폴더로 진입한다.


root@test:~$ cd rps_game


// 실행한다.


root@test:~/rps_game$ ./rps

This program is 'Rock Paper Scissors game' by type simple AI.
How to play game?
    You need select 1(가위), 2(바위), 3(보), 0(exit)

Enter or any key to let's start!'



도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.

BASH 쉘 프로그래밍으로 인공지능 '가위, 바위, 보' 게임을 만들어 보자.


리눅스에서 bash는 윈도우와 비교한다면 autobat 과 비슷하다고 볼수 있다 라는 것은... 훼이크고

그렇다고 말하는 사람들이 있지만 그것과는 사실 게임이 되지 않는다.


즉 bash 가 더욱 강력하고 하나의 소프트웨어를 만들 정도로 어마어마 하다 이거지~


bash는 쉘스크립트로 불리움으로써 유닉스 체계를 전부 응용하여 다룰수 있는 전역 프로그래밍 이라고 말할수 있다.


원래는 그낭 sh 로 불리우지만 기존의 sh에서 여러 기능이 업그레이드 되면서 bash 가 탄생한 것이다.

뿐만 아니라 bash가 이전 sh를 기반으로 하지만 유닉스 시스템 체계에서 이 둘은 개별적으로 존재 한다.


또 bash의 스크립트 방식으로 프로그래밍을 짰을 경우 { #!/bin/sh } 모듈을 로드해서 실행 할 경우 정상적으로 동작 하지 않을 수 있다.

그렇기에 현재로써는 주로 개발자들은 bash { #!/bin/bash }를 채택해서 사용 하는 경우가 일반적이다.


자 그렇다면 bash shell script programming을 이용해서 심플한 인공지능 형태의 '가위, 바위, 보' 게임을 만들어 보자.

여기서 중점으로 다뤄야하는 소스 형태는 크게 다섯 가지로 분류 된다.


첫째, 변수 지정


pn=0
yn=0


∴ 위는 승리 횟수 카운트 저장을 위한 숫자 0부터 시작하는 기본적은 변수 적용이다.


둘째, 함수 지정

rpsai() {

if [ $pc = 1 ]; then
    echo "
저는 가위를 냈습니다."
    if [ $rps = 1 ]; then
        echo "
        우린 비겼습니다."
        echo "
당신의 점수는 $yn 저의 점수는 $pn 입니다."
    fi
fi

}  


∴ rpsai 란 이름으로 인공지능 설정을 위한 if문을 응용한 전체 함수를 지정한다.


셋째, if문

if [ $rps = 1 ]; then
        echo "
당신은 1 (가위)를 내셨습니다."

# 지정한 rpsai 함수를 불러온다.

        rpsai       
fi


∴ 사용자 키 입력시 발생하는 스크립트를 처리하는 if 문 설계


넷째, read문

# 사용자의 입력을 받아 들이는 read 문 변수를 지정한다.

read -n 1 -p "nput key [1(가위), 2(바위), 3(보), 0(종료)]" rps


∴ rps란 이름으로 변수를 만들어 사용자 입력을 연동 (저장) 시킨다.

사실 read문은 기존 스크립트가 아닌 유닉스 기본 프로그램 중 하나고 콘솔의 명령 체계를 이용하는 것이다.


다섯째, while문

while [ : ]; do

script

done


∴ while문은 계속해서 반복수행하는 스크립트를 구성할수 있다.


실행을 위한 전체 소스코드

Source_File name : rps

[Download]

Type : Bash

클립보드로 복사 → (본문 클릭)

무제


코딩을 완료 하고 'rps'로 저장하였으면 터미널을 열고 본격적으로 실행을 위한 준비를 한다.

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

//  실행이 가능하겠끔 파일의 속성을 변환 시킨다.


root@test:~$ chmod +x rps


//  이제 실행을 해본다.


root@test:~$ ./rps

This program is 'Rock Paper Scissors game' by type simple AI.
How to play game?
    You need select 1(가위), 2(바위), 3(보), 0(exit)

Enter or any key to let's start!'

-> Enter키나 아무키를 눌러 게임을 시작하자.


Ok. let's start.'

Input key [1(가위), 2(바위), 3(보), 0(종료)]



위와 같이 게임이 진행 된다.



소스 다운로드 :


github : https://github.com/cosmosproject15/rps_game

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// git 명령으로 소스를 다운받는다.


root@test:~$ git clone https://github.com/cosmosproject15/rps_game


// 다운 받은 폴더로 진입한다.


root@test:~$ cd rps_game


// 실행한다.


root@test:~/rps_game$ ./rps

This program is 'Rock Paper Scissors game' by type simple AI.
How to play game?
    You need select 1(가위), 2(바위), 3(보), 0(exit)

Enter or any key to let's start!'



도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.

BASH 쉘 프로그래밍으로 인공지능 '가위, 바위, 보' 게임을 만들어 보자.


리눅스에서 bash는 윈도우와 비교한다면 autobat 과 비슷하다고 볼수 있다 라는 것은... 훼이크고

그렇다고 말하는 사람들이 있지만 그것과는 사실 게임이 되지 않는다.


즉 bash 가 더욱 강력하고 하나의 소프트웨어를 만들 정도로 어마어마 하다 이거지~


bash는 쉘스크립트로 불리움으로써 유닉스 체계를 전부 응용하여 다룰수 있는 전역 프로그래밍 이라고 말할수 있다.


원래는 그낭 sh 로 불리우지만 기존의 sh에서 여러 기능이 업그레이드 되면서 bash 가 탄생한 것이다.

뿐만 아니라 bash가 이전 sh를 기반으로 하지만 유닉스 시스템 체계에서 이 둘은 개별적으로 존재 한다.


또 bash의 스크립트 방식으로 프로그래밍을 짰을 경우 { #!/bin/sh } 모듈을 로드해서 실행 할 경우 정상적으로 동작 하지 않을 수 있다.

그렇기에 현재로써는 주로 개발자들은 bash { #!/bin/bash }를 채택해서 사용 하는 경우가 일반적이다.


자 그렇다면 bash shell script programming을 이용해서 심플한 인공지능 형태의 '가위, 바위, 보' 게임을 만들어 보자.

여기서 중점으로 다뤄야하는 소스 형태는 크게 다섯 가지로 분류 된다.


첫째, 변수 지정


pn=0
yn=0


∴ 위는 승리 횟수 카운트 저장을 위한 숫자 0부터 시작하는 기본적은 변수 적용이다.


둘째, 함수 지정

rpsai() {

if [ $pc = 1 ]; then
    echo "
저는 가위를 냈습니다."
    if [ $rps = 1 ]; then
        echo "
        우린 비겼습니다."
        echo "
당신의 점수는 $yn 저의 점수는 $pn 입니다."
    fi
fi

}  


∴ rpsai 란 이름으로 인공지능 설정을 위한 if문을 응용한 전체 함수를 지정한다.


셋째, if문

if [ $rps = 1 ]; then
        echo "
당신은 1 (가위)를 내셨습니다."

# 지정한 rpsai 함수를 불러온다.

        rpsai       
fi


∴ 사용자 키 입력시 발생하는 스크립트를 처리하는 if 문 설계


넷째, read문

# 사용자의 입력을 받아 들이는 read 문 변수를 지정한다.

read -n 1 -p "nput key [1(가위), 2(바위), 3(보), 0(종료)]" rps


∴ rps란 이름으로 변수를 만들어 사용자 입력을 연동 (저장) 시킨다.

사실 read문은 기존 스크립트가 아닌 유닉스 기본 프로그램 중 하나고 콘솔의 명령 체계를 이용하는 것이다.


다섯째, while문

while [ : ]; do

script

done


∴ while문은 계속해서 반복수행하는 스크립트를 구성할수 있다.


실행을 위한 전체 소스코드

Source_File name : rps

[Download]

Type : Bash

클립보드로 복사 → (본문 클릭)

무제


코딩을 완료 하고 'rps'로 저장하였으면 터미널을 열고 본격적으로 실행을 위한 준비를 한다.

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

//  실행이 가능하겠끔 파일의 속성을 변환 시킨다.


root@test:~$ chmod +x rps


//  이제 실행을 해본다.


root@test:~$ ./rps

This program is 'Rock Paper Scissors game' by type simple AI.
How to play game?
    You need select 1(가위), 2(바위), 3(보), 0(exit)

Enter or any key to let's start!'

-> Enter키나 아무키를 눌러 게임을 시작하자.


Ok. let's start.'

Input key [1(가위), 2(바위), 3(보), 0(종료)]



위와 같이 게임이 진행 된다.



소스 다운로드 :


github : https://github.com/cosmosproject15/rps_game

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// git 명령으로 소스를 다운받는다.


root@test:~$ git clone https://github.com/cosmosproject15/rps_game


// 다운 받은 폴더로 진입한다.


root@test:~$ cd rps_game


// 실행한다.


root@test:~/rps_game$ ./rps

This program is 'Rock Paper Scissors game' by type simple AI.
How to play game?
    You need select 1(가위), 2(바위), 3(보), 0(exit)

Enter or any key to let's start!'



도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.

런치 패드 ppa에 업로드를 하면서 심각한 버그 하나를 발견하게 되었다.


그것은 다름 아닌 PPA에 업로드하고 홈페이지 자체에서 인공지능 컴파일이 이루어 지고 있는 과정 중에 패키지를 삭제 하게 되면

다음 업로드가 이루어 지지 않는 버그 이다.


0.01 사이의 버전을 변경 하여도 이름만 같아도 런치패드가 'orig.tar.xz'파일의 변동의 인식 하지 못하고 이전의 파일만 기억해 무조건 같다고 처리하여 내뱉어 버리는 것이다.


아직 0.1 사이의 버전을 변경하지 않았기 때문에 확실히 모르지만


그 전에는 같은 레파시토리에 업로드 하는 것은 불가능 하다는 것을 알게 되었다.


즉 런치패드에서 패키지를 삭제 할때는 인공지능 컴파일 & 빌드가 다 끝난 다음 해야 된다.


차라리 냅두고 다음 버전을 로그체인지 하여 업로드 시키는 것이 더욱 낫다고 볼 수 있다.



'orig.tar.xz' 파일 생성은


{ dh_make -c gpl --createorig } 명령과 직접적인 관계점이 있는데 이 orig 파일 생성 에서도 버그가 존재 한다는 것을 알게 되었다.


바로 실제 패키지의 라이브러리 디렉토리들이 변경이 되었어도 이전 정보로만 'orig.tar.xz' 파일을 만드는 버그 이다.


이 버그는 일일이 확인 하지 않는 이상 개발자는 까맣게 모를 수도 있다.


이 버그를 해결하려면 구축한 debian/ 폴더의 파일들을 백업해 놓고 debian/ 폴더를 완전히 삭제한후 { dh_make -c gpl --createorig } 명령을 통해 재갱신 한 다음에 백업한 파일들을 debian/ 폴더에 다시 갈아 치워야 한다.


하지만 이 버그는 무조건 항시 발생하는 것은 아니기에


아직 본인도 발생하는 이유와 원인에 대해서는 알지 못했다.



While uploading the launchpad ppa was discovered a serious bug in one.


When it is none other than the PPA and uploaded to delete a package in the process of being compiled artificial intelligence made on the website itself

The bug then upload unfulfilled.


By changing the version between 0.01 also unaware of the variation of Launchpad 'orig.tar.xz' gatahdo file name will only discard my spit to equal treatment before the file only remember unconditionally.


Certainly, but it has not changed between versions 0.1


Before that, it was discovered that you upload to the same directory Les Pacifico impossible.


That will be followed by AI compiled halttaeneun remove packages from the launch pad and build it over.


I'd rather leave that synapses change the log upload the next version that can be seen even better.



Created 'orig.tar.xz' files


{Dh_make -c gpl --createorig} command and there was a direct relationship problem learned that there is a bug in the generated file orig.


Just the actual package library directory even if they have changed a bug to create a 'orig.tar.xz' only previous file information.


This bug has charred more than developers may not know does not check individually.


After To work around this bug, make a backup copy of the files in the debian / folder built completely delete the debian / backup folder on the file and then re-update through the {dh_make -c gpl --createorig} command in the debian / folder The clean up ground.


But this is a bug that occurs unconditionally at all times ahnigie


Still I did not know about the reason and cause of my degree.

런치 패드 ppa에 업로드를 하면서 심각한 버그 하나를 발견하게 되었다.


그것은 다름 아닌 PPA에 업로드하고 홈페이지 자체에서 인공지능 컴파일이 이루어 지고 있는 과정 중에 패키지를 삭제 하게 되면

다음 업로드가 이루어 지지 않는 버그 이다.


0.01 사이의 버전을 변경 하여도 이름만 같아도 런치패드가 'orig.tar.xz'파일의 변동의 인식 하지 못하고 이전의 파일만 기억해 무조건 같다고 처리하여 내뱉어 버리는 것이다.


아직 0.1 사이의 버전을 변경하지 않았기 때문에 확실히 모르지만


그 전에는 같은 레파시토리에 업로드 하는 것은 불가능 하다는 것을 알게 되었다.


즉 런치패드에서 패키지를 삭제 할때는 인공지능 컴파일 & 빌드가 다 끝난 다음 해야 된다.


차라리 냅두고 다음 버전을 로그체인지 하여 업로드 시키는 것이 더욱 낫다고 볼 수 있다.



'orig.tar.xz' 파일 생성은


{ dh_make -c gpl --createorig } 명령과 직접적인 관계점이 있는데 이 orig 파일 생성 에서도 버그가 존재 한다는 것을 알게 되었다.


바로 실제 패키지의 라이브러리 디렉토리들이 변경이 되었어도 이전 정보로만 'orig.tar.xz' 파일을 만드는 버그 이다.


이 버그는 일일이 확인 하지 않는 이상 개발자는 까맣게 모를 수도 있다.


이 버그를 해결하려면 구축한 debian/ 폴더의 파일들을 백업해 놓고 debian/ 폴더를 완전히 삭제한후 { dh_make -c gpl --createorig } 명령을 통해 재갱신 한 다음에 백업한 파일들을 debian/ 폴더에 다시 갈아 치워야 한다.


하지만 이 버그는 무조건 항시 발생하는 것은 아니기에


아직 본인도 발생하는 이유와 원인에 대해서는 알지 못했다.



+ Recent posts