Posts List

2013년 7월 8일 월요일

[Game]용어

알고리즘(Algorithm)
: 알고리즘은 문제를 어떻게 해결하는가를 기술한 놀리적인 단계들의 집합이다. 이러한 단계들은 프로그램 상에서 문젠아 절차를 효율적으로 풀어가기 위한 일련의 연산 과정들을 자바스크립트나 PHP와 같은 프로그래밍 언어들을 통해 프로그래밍 된다.



응용 프로그램 인터페이스(API)
: 서로 다른 프로그램들이 상호작용할 수 있도록 해주는 코드의 집합이다. 이 책에서는 API를 사용해 여러분의 웹 브라우저 또는 페이스북의 시스템에 존재하는 데이터와 상호작용하도록 할 것이다.



애셋(Assets)
: 여러분의 게임에 사용된 코드 이외의 데이터들로 음향이나 이미지 파일들이 여기에 해당한다.



인공지능(AI)
: 여러분이 개발하게 될 게임은 그 스타일에 따라 플레이어가 게임(또는 전투)과 상호작용하게 된다. 인공지능은 여러분이 작성하는 프로그램 코드로 특정한 논리적 절차에 따라 게임이 반응하는 것을 말한다. 예를 들면 체스와 같은 보드 게임에서 자동으로 플레이어와 상대하는 상대방 캐릭터나 전투 게임에서 자동으로 플레이어와 상대하는 상대방 캐릭터나 전투 게임에서 캐릭터를 공격하거나 도망가며 상호작용하는 적 캐릭터가 여기에 해당한다. 비록 이러한 알고리즘은 꽤 복잡하지만 그 기본은 사람이 환경에 어떻게 반응하는지에 대한 논리적 절차들을 구현하도록 디자인하는 것이다.



아바타(Avater)
: 힌두교에서 신이 지구 상에 나타난 화신을 뜻하는 말로 게임에서는 플레이어를 대신하는 게임 캐릭터를 의미한다. 게임에서 아바타는 플레이어를 대변하고 플레이어가 게임 세상을 경험할 수 있도록 하는 통로가 된다.



충돌 감시(Collision Detection)
: 두 물체가 부딪힐 때 발생하는 충동을 감지한는 것은 게임 대부분에서 중요한 요소이다. 슈퍼 마리오를 예로 들면 마리오가 점프해 굼바를 밟는 것을 감지해 내는 것은 게임 플레이에 중요한 요소 중 하나이다.



프레임 워크(Framework)
: 라이브러리 또는 코드의 집합으로 일반적으로 빈번히 사용되는 기능들을 한데 모아 제공하는 소프트웨어를 말한다. 개발자는 프레임워크의 기능들을 선별적으로 사용하거나 수정해 프로그램을 개발한다.






[ Reference : 페이스북 게임 앱 개발 (Beginning Facebook Game Apps Development)  , 웨인 그래함(Wayne Graham), 2012]

2013년 6월 13일 목요일

[dictionary]Single Sign On

싱글사인온(Single-Sign-On) 방식은 세션을 이용해 접속해 있는 동안 재접하지 않도록 해주는 오픈된 테크놀로지.

이 기술을 사용한 앱에 한 번만 로그인하면 다시 로그인 하는 번거로움 없이 사용할 수 있도록 고안된 방식.

2013년 6월 12일 수요일

[dictionary]네트워크, 인트라넷, 인터넷


네트워크(network) : 사용자들 간에 하드웨어와 소프트웨어를 공유할 수 있도록 서로 연결된 노드들(nodes:컴퓨터와 프린터 같은 주변기기들)의 콜렉션.

인트라넷(intranet : 조직 내의 네트워크를 의미.

인터넷(Intranet) : 조직들 간에 연결되어 있는 네트워크, 네트워크의 글로벌 네트워크를 의미.
-글로벌 네트워크를 의미하는 인터넷의 결우 첫 글자 I를 대문자로 사요.



워킹 레벨 자바 7 실무 바이블

[ Reference : 워킹 레벨 자바 7 실무 바이블 (Working-level Java7)  , 제프 프리슨(Jeff Friesen), 2012]

[Java]RandomAccessFile

import java.io.RandomAccessFile;

파일에 대한 임의 접근을 제공하는 클래스 제공
인자값의 의미는 다음과 같다.


"r" : 읽기 전용으로 파일을 오픈한다. 만일 이 모드로 오픈한 파일에 쓰기 작업을 하면 IOException이 던져진다.

"rw" : 읽기/쓰기 모드로 파일을 오픈한다. 만일 지정한 파일이 존재하지 않으면 파일을 생성한 후 읽기/쓰기 모드로 오픈한다.

"rwd" : 읽기/쓰기 모드로 파일을 오픈한다. 만일 지정한 파일이 존재하지 않으면 파일을 생성한 후 읽기/쓰기 모드로 오픈한다. 더불어 파일의 내용이 업데이트될 때마다 동기화되어 저장장치에 저장된다.

"rws" : 읽기/쓰기 모드로 파일을 오픈한다. 만일 지정한 파일이 존재하지 않으면 파일을 생성한 후 읽기/쓰기 모드로 오픈한다. 더불어 파일의 내용 또는 메타데이터가 업데이트될 때마다 동기화 되어 저장장치에 저장된다.

-rwd,rws, 는 운영체제가 문제가 생겨 멈추더라도 데이터를 잃지 않도록 로컬 저장 장치와 동기화되어 안전하다. 하지만, 저장 장치가 시스템 내부에 있는 장치가 아니면 동기화를 보장하지 못한다.


워킹 레벨 자바 7 실무 바이블

[ Reference : 워킹 레벨 자바 7 실무 바이블 (Working-level Java7)  , 제프 프리슨(Jeff Friesen), 2012]

[Java][Eclipse]eclipse args error


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.io.File;
import java.io.IOException;
 
/**
 * 추상 경로명에 대한 정보 획득
 * 
 * @author SW_Hu
 * 
 */
public class ch08_673_PathnameInfo {
    public static void main(String[] args) throws IOException {
        
          if (args.length != 1) { System.err.println("error"); return; }
         
 
        File file = new File(args[0]);
        System.out.println("abs : " + file.getAbsolutePath());
    }
}

print:
error



-------------------------------------------------------------
args의 값을 받아 파일 경로 값을 나타내게 하는 코드 이다.
하지만 args가 계속 에러로 빠진다.

찾아보니 이클립스에서는 args가 설정해놓은 것으로 된다.

설정 방법은 다음과 같다.

Run As - Run Configurations

Argument 탭에 있는 arguments 에 값을 넣어준다.

print :
abs : D:\~~~~~~~~~~~\0
(~~~~ 에 경로가 들어감)


위와 같이 제대로 출력된다.


워킹 레벨 자바 7 실무 바이블

[ Reference : 워킹 레벨 자바 7 실무 바이블 (Working-level Java7)  , 제프 프리슨(Jeff Friesen), 2012]

2013년 6월 5일 수요일

[dictionary]기계 학습

기계 학습(machine learning) : 컴퓨터가 스스로 학습하게 하는 알고리즘에 관련된 인공지능(artificial intelligence)의 한 영역.

(1) 새로운 정보를 학습하고, 습득한 정보를 효율적으로 사용할 수 있는 능력과 결부시키는 지식 습득.
(2) 작업을 반복적으로 수행함으로써 결과를 얻어내는 기술의 개선 과정.


집단지성 프로그래밍
[ Reference : 집단지성 프로그래밍(Programming Collective Intelligence), 토비 세가란(Toby Segaran),2008]
[ Reference : 네이버 지식백과] 

[dictionary]집단지성이란?

집단지성(collective intelligence)

간단히 말해 여러 DB를 모아 새로운 결론을 유추하는 것.

---------------------------------------------------------------------------------
'집단지성(Collective Intelligence)'은 생태계에서 다수의 개체들이 협동하여 하나의 집합적인 지능을 만들고, 그것이 어떤 지능적인 활동과 역할을 수행하는 것을 말한다. 벌이나 개미, 떼지어 이동하는 새나 물고기 등의 활동을 지칭하는 '떼 지성(Swarm Intelligence)'이란 용어도 있다. 집단지성은 다수의 컴퓨터 이용자 간의 상호 협동적인 참여와 소통으로 만들어지는 결과물, 집합적 행위의 결과물, 판단과 지식의 축적물 혹은 그 과정을 말한다.
컴퓨터 네트워크의 결합을 ‘집합적 지능(Collective Intelligence)’으로 정의한 피에르 레비(Pierre Levy, 1956~ )
컴퓨터 네트워크의 결합을 ‘집합적 지능(Collective Intelligence)’으로 
정의한 피에르 레비(Pierre Levy, 1956~ ) ⓒ 커뮤니케이션북스
[네이버 지식백과] 집단지성 (디지털 데이터, 정보, 지식, 2012, 커뮤니케이션북스)

마셜 매클루언(Marshall McLuhan)이 말한 "미디어는 인간의 확장이다"라는 명제를 극단으로 끌고 가면 지식과 정보의 외화가 '전 지구적인 두뇌(Global Brain)'를 만들 것임을 예측할 수 있다. 컴퓨터가 두뇌의 확장이라면 컴퓨터 네트워크는 전 지구적 차원에서 두뇌들이 결합한 '집합적 지성'의 탄생을 의미한다. 컴퓨터 네트워크의 결합은 데이터베이스의 전 지구적인 결합이며, 이는 전 지구적인 차원에서 이루어지는 지성의 실시간 연결이다. 피에르 레비(Pierre Levy)는 이를 '집합적 지능(Collective Intelligence)'이라 불렀다. 그는 그의 저서에서 집단지성을 '어디에나 분포하며, 지속적으로 가치 부여되고, 실시간으로 조정되며, 역량의 실제적 동원에 이르는 지성' 이라고 정의하였다.

집단지성은 편재성, 지속성, 실시간 상호 조정성, 실천성이라는 특성을 지닌다. 이러한 집단지성은 전자 미디어에 의해 본격적으로 나타나게 되었다. 전자 미디어 이전에도 상호 소통과 협동을 통해 사회적으로 만들어지는 집단지성이 존재하였다. 근대 사회의 인쇄 매체나 다양한 의사소통으로 만들어지는 여론이나 공중도 집단지성의 한 형태로 볼 수 있다. 그러나 집단지성의 편재성과 실시간으로 활동하는 지속성, 행위를 통한 실천성이라는 특성은 인터넷이란 컴퓨터 네트워크에 의해 본격적으로 나타나게 되었다. 이러한 새로운 사회적 지성의 특성에 주목하여 '집단지성'이라는 개념이 의미를 갖게 되었다.

[ Reference : 네이버 지식백과]

2013년 6월 2일 일요일

[Book][경영]삼성, 집요한 혁신의 역사


Star : ★★★★☆
삼성이 여기까지 오게된 과정이 적혀있다. 삼성이 다른 기업과 차이와 목표를 이루는 과정, 앞으로의 모습을 볼 수 있는 듯 하다. 아쉬운 것은 소프트웨어 직전 까지의 내용이라 그 후의 내용은 다음을 기대해 봐야 한다는 것?


2013년 5월 10일 금요일

[dictionary]TCP, UDP, IP

TCP(Transmission Control Protocol)
:양방향 커뮤니케이션 프로토콜
-연결이 완료 후 TCP는 메시지 패킷을 전송하고 패킷이 정확하게 전달되었다는 응답이 오기를 기다린다. 만일 네트워크 문제로 메시지가 도착했다는 답장이 없으면 타임 아웃이 된다. 이것으로 안정적인 견결을 보장할 수 있다.


UDP(User Datagram Protocol)
:단방향 프로토콜


IP(Internet Protocol)
:TCP와 UDP들이 커뮤니케이션 작업을 수행할 때 기본이 되는 프로토콜

2013년 5월 9일 목요일

[dictionary]Long data (롱데이터)




롱데이터(Long data)는 통계학에서 말하는 시계열 데이터이다.

보통 빅데이터(Big data)는 많은 데이터를 뜻하는데
그것과 다르게 어떤 특정 부분에서 오랜 시간 수집한 데이터를 뜻한다.

이때 보통 시간은 10년 이상을 뜻하며 개인적인 생각으로는
기상청이 이것을 가장 잘 활용하는 기관으로 보인다.

[Java]Dangling else


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
    public static void main(String[] args) {
        int key = 1;
        
        System.out.println("no1");
        if(key == 1)
            if(key==1)
                System.out.println("key OK");
        else
            System.out.println("key nonono");
        
        
        System.out.println("no2");
        if(key == 2)
            if(key==2)
                System.out.println("key OK");
            else
                System.out.println("key nonono");
        
        
        
        System.out.println("no3");
        if(key == 1)
            if(key==2)
                System.out.println("key OK");
            else
                System.out.println("key nonono");
-->
no1
key OK
no2
no3
key nonono


if문을 2중으로 사용시 else가 { }가 없을 때의 문제점이다.

no1처럼 1번째 if문에 else가 속할까?
no2처럼 2번째 if문에 속할까? 

정답은 no2 이다.
{ }없이 사용하려면 no2처럼 tab 길이를 맞쳐놓으면 헷갈리지 않을 수 있으나
혹시 모르니 이럴 경우 {  } 써주는게 좋을듯 하다.

[Java]배열 선언


1
2
int x, y[], z;  //배열 1개 생김 
int[] a, s, d;  //배열 3개 생김

워킹 레벨 자바 7 실무 바이블

[ Reference : 워킹 레벨 자바 7 실무 바이블 (Working-level Java7)  , 제프 프리슨(Jeff Friesen), 2012]

2013년 5월 8일 수요일

[Java]Javadoc 주석

/** 와 */ 사이에 있는 모든 내용을 컴파일러에 의해 무시 된다.

/**
  *  start
  *
  *
  *  @paramargs 메소드에 전달되는 커맨드 라인 인자들의 배열
  *
  *  /



--태그 종류 : @ 으로 시작-----------------------------
@author : 소스 코드 작성자를 식별하고자 할 때 사용
@deprecated : 메소드와 같은 소스 코드의 엔티티를 식별하는데 사용하지만 더 이상 사용되지 않을 예정
@param : 메소드의 매개변수를 식별하고자 할 때 사용
@see : see-also 참조를 제공
@since : 엔티티가 처음으로 지원하기 시작한 소프트웨러 릴리즈를 표기할 때 사용
@return : 메소드의 리턴 값을 표기할 때 사용

워킹 레벨 자바 7 실무 바이블

[ Reference : 워킹 레벨 자바 7 실무 바이블 (Working-level Java7)  , 제프 프리슨(Jeff Friesen), 2012]

2013년 5월 2일 목요일

[Data Analysis][Head First Data Analysis]Index


1. 데이터 분석 입문 - 잘게 쪼개라 : 데이터는 어디든지 있습니다.
2. 실험 - 이론을 검증하라 : 여러분의 생각을 증명할 수 있나요?
3. 최적화 - 최대한 가져가기 : 우리 모두는 무언가를 더 얻고 싶어 합니다.
4. 데이터 시각화 - 그림은 여러분을 더 똑똑하게 만든다 : 수치표만드로는 충분X
5. 가설검정 - 그렇지 않다고 말해줘 : 세상은 설명하기 까다로울 수 있습니다.
6. 베이지안 통계 - 첫 걸음을 내딛다 : 여러분은 항상 새로운 데이터를 수집할 것입니다.
7. 주관적 확률 - 숫자에 대한 믿음 : 때로는 숫자로 표현하는 것이 좋은 방법입니다.
8. 휴리스틱 분석 - 인간처럼 분석한다. : 현실 세계에는 여러분이 다룰 수 있는 것보다 더 많은 변수가 있습니다.
9. 히스토그램 - 숫자의 모양 : 차트에는 얼마나 많은 것을 알 수 있을까요?
10. 회귀 - 예측 : 예측하세요.
11. 오류 - 오류를 잘 처리하다 : 세상은 복잡합니다.
12. 관계형 데이터베이스 - 관련지어보자 : 다변량 데이터를 어떻게 구조화할 수 있을까요?
13. 데이터 정리 - 순서를 부여하다 : 데이터 구조가 엉망이면...

헤드 퍼스트 데이터 분석
[ Reference : Head First Data Analysis , 마이크 밀튼(Michael Milton), 2013]

2013년 4월 2일 화요일

[Data Mining][Mining the Social Web] install 트위터 API

easy_intall 을 활용하면 쉽게 설치가 가능하다.

ActivePython 을 설치했다면 따로 easy_intall을 다운 받아 설치할 필요는 없다.

cmd 창에서

easy_install twitter 라고 친다.




이 패키지는 사용하기 쉬운 커맨드라인 유틸리티와 IRC bot 을 포함한다.



Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites소셜 웹 마이닝
[ Reference : 소셜 웹 마이닝, Mining the Social Web : Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites, 매튜 러셀(Matthew A. Russell), 2011 ]

[Data Mining][Mining the Social Web] install NetworkX

easy_intall 을 활용하면 쉽게 설치가 가능하다.

ActivePython 을 설치했다면 따로 easy_intall을 다운 받아 설치할 필요는 없다.

cmd 창에서

easy_install extworkx 라고 친다.


그림과 같이 NetworkX 패키지를 설치 한다.
이것은 그래프와 분석, 유사한 결과물 관찰 사용된다.





Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites소셜 웹 마이닝
[ Reference : 소셜 웹 마이닝, Mining the Social Web : Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites, 매튜 러셀(Matthew A. Russell), 2011 ]

[Python]파이썬 설치

보통은 http://www.python.org/download/ 에서 다운을 받아 설치하면 된다.
대부분의 운영체제를 지원한다.

2.X 버전과 3.X 버전이 있는데 아직 많은 소프트웨어가 2.X버전에 맞쳐져 있으므로 2.X버전을 추천한다.

그렇다고 크게 차이나는건 아니고 2to3 라는 라이브러리로 2.x에서 만든 코드를 3.x에서 사용도 가능하다.(함수 쓰는 법이 약간 다르기 때문.)

추후의 변화를 위해 차이점을 알고 사용하면 좋을듯 하다.


윈도 사용자를 위한ActivePython 도 있다.
http://www.activestate.com/activepython/downloads
윈도 명령 프롬프트에서 Python 명령어를 사용할 수 있게 자동으로 path에 추가하고, 기타 다른 여러 가지도 함께 설치해준다.

따로 다른 설명은 필요없을 정도로 다운 받아 설치하면 된다.
쉽다 ! :)

[Data Mining][Mining the Social Web]쇼셜 웹 마이닝 Link



Code Resouce : https://github.com/ptwobrussell/Mining-the-Social-Web

Svn URL : https://github.com/ptwobrussell/Mining-the-Social-Web.git

corrigenda - original : http://shop.oreilly.com/product/0636920010203.do



Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites소셜 웹 마이닝
[ Reference : 소셜 웹 마이닝, Mining the Social Web : Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites, 매튜 러셀(Matthew A. Russell), 2011 ]

2013년 3월 28일 목요일

[golden saying]Take time


Take time


Take time to work 
It is the price of success.
그것은 성공의 대가입니다.

Take time to think 
It is the source of power.

Take time to play
It is the source of perpetual youth
노는 시간을 가지세요.
그것은 영원한 젊음의 비결입니다.

Take time to read
It is the fountain of wisdom
그것은 지혜의 샘이 됩니다.

Take time to pray
It is the greatest power on earth
그것은 지상에서 가장 위대한 힘입니다.

Take time to love
It is the highest joy of life
그것은 삶의 가장 높은 기쁨입니다.

Take time to love and be loved
It is a God-given privilege
사랑하고 사랑받는 시간을 가지세요.
그것은 하나님이 주신 특권입니다.

Take time to be friendly
It is the road to happiness
친절을 베푸는 시간을 가지세요. 
그것은 행복에 이르는 길입니다.

Take time to laugh
It is the music of the soul
그것은 영혼의 음악이 됩니다.

Take time to give
It is too short a day to be selfish
베푸는 시간을 가지세요. 
이기적으로 살기에는 하루가 너무 짧습니다.

Take time to dream
It's hiching your wagon on to a star
꿈꾸는 시간을 가지세요. 
그것은 그대의 수레를 별에다 매는 것입니다.
(그것은 큰 뜻을 품는 것입니다.)

An Old Irish Prayer...
옛 아일랜드인의 기도...


[golden saying]인간은..

[스크랩] 

인간은 누구든
언젠가는 죽게
돼있단다... 

그래서...

다들 열심히
살아가는 거야.

2013년 3월 26일 화요일

[Data Mining]Data Mining?

데이터 마이닝(Data Mining)은 대규모 데이터 저장소에서 유용한 정보를 자동적으로 탐색하는 과정.

미래를 예측하는 기능을 제공하기도 한다.

하지만 일반 질의나 검색을 통해 찾는 것은 정보 검색(Information Retrieval)의 작업이다.

데이터 마이닝은 입력 데이터를 변환하여 유용한 정보를 토출하는 전체 과정인 DB에서 지식 탐사(Knowledge Discovery in DB : KDD)의 핵심 과정이다. 이 과정이 데이터 전처리에서 데이터마이닝 결과의 후처리 까지 일련의 변환 과정으로 구성 된다.



[Reference : INTRODUCTION TO DATA MINING]