2014년 1월 13일 월요일

[System] R and RStudio Server x64 on Linux CentOS 6

데이터 분석 스터디 그룹을 위한 RStudio Server RPM 버전 설치 작업  #1
#패키지 다운로드   
[root@ ~] yum install R
#만일 위에서 설치 중 TCL 관련 패키지가 요구되는 경우 아래와 같이 진행 한다.
yum [root@ ~]  install tcl
[root@ ~]  sudo yum clean all
[root@ ~]  sudo yum install R
  
#RStudio 설치 - 버전에 따라 다를 수 있으니 항상 최신 버전 확인 후 설치  
[root@ ~]  sudo yum install --nogpgcheck rstudio-server-0.97.551-x86_64.rpm

#RStudio 시작, 종료, 재시작 확인 사항 
[root@ ~]  /etc/init.d/rstudio-server start | stop | restart

 #리눅스 방화벽에 해당 포트 접속 승인 추가 8787 
[root@oracle ~] vi /etc/sysconfig/iptable  
#서비스 재시작 
[root@oracle ~] service iptables restart  

2014년 1월 9일 목요일

[ORACLE] FUNCTION - GREATEST OR LEAST


MAX VALUE --> GREATEST(EXPR1, EXPR2, ..., EXPR-N)  
MIN VALUE --> LEAST(EXPR1, EXPR2, ..., EXPR-N)


SAMPLE) 100 = GREATEST(100, 50, 20) --> TRUE 
SAMPLE) 20 = LEAST(100, 50, 20) --> TRUE 
SAMPLE) NULL = LEAST(100, 50, 20, NULL) --> TRUE 

* EXCEPTION
SAMPLE) 'A' = LEAST(100, 50, 20, NULL, 'A') --> ERROR 

[ORACLE] PL/SQL PREDEFINED EXCEPTION - 미리정의된 예약


오랜만에 PL/SQL을 하다 보니 예외처르 부분에 대해서 작성하다가 자꾸 책을 찾아 보게 되서 정리된 내용을 블러그에 올려 놓고 참고 하기로


예외내용예외번호SQLCODE발생시점
ACCESS_INTO_NULLORA-06530-6530초기화 되지 않은 오브젝트에 값을
할당하려고 할 경우 
CASE_NOT_FOUNDORA-06592-6592CASE 문장에서 ELSE 구문도 없고 WHEN 절에 명시된 조건을 만족하는 것이 하나도 없을 경우 
COLLECTION_IS_NULLORA-06531-6531초기화 되지 않은 중첩 테이블이나 VARRAY 같은 콜렉션을 EXISTS 외의 다른 메소드로 접근을 시도할 경우 발생 
COURSOR_ALREADY_OPENORA-06511-6511이미 오픈된 커서를 다시 오픈하려고
시도 하는 경우 
DUP_VAL_ON_INDEXORA-00001-1유일 인덱스가 걸린 컬럼에 중복
데이터를 입력할 경우 
INVALID_CURSORORA-01001-1001허용되지 않는 커서에 접근할 경우
(오픈되지 않은 커서를 닫으려고 시도하는 경우) 
INVALID_NUMBERORA-01722-1722SQL 문장에서 문자형 데이터를 숫자형으로 변활할 때 제대로 된 숫자로 변환이 되지 않을 경우 
LOGIN_DENIEDORA-01017-1017잘못된 사용자나 비밀번호로
로그인을 시도 할 때 
NO_DATA_FOUNDORA-01403100SELECT INTO 문장의 결과로 선택된
로우가 하나도 없을 경우 
NOT_LOGGED_ONORA-01012-1012오라클에 연결되지 않았을 경우 
PROGRAM_ERRORORA-06501-6501PL/SQL 내부에 문제가 발생했을 경우 
SELF_IS_NULLORA-30625-30625OBEJCT 타입이 초기화 되지 않은 상태에서 MEMBER 메소드를 사용할 경우 
STORAGE_ERRORORA-06500-6500메모리가 부족한 경우 
SUBSCRIPT_BEYOND_CONUNTORA-06532-6532충첩 테이블이나 VARRAY의 요소값에 접근할 때, 명시한 인덱스 번호가 콜렉션 전체 크기를 넘어서는 경우 
SUBSCRIPT_OUTSIDE_LIMITORA-01410-1410충첩 테이블이나 VARRAY의 요소값에 접근할 때, 잘못된 인덱스 번호를 사용할 경우 
SYS_INVALID_ROWIDORA-01410-1410문자열을 ROWID로 변환할 때 변환값에 해당하는 ROWID값이 없을 경우 
TIMEOUT_ON_RESOURCEORA-00051-51오라클이 리소스를 기다리는 동안
타임아웃이 발생했을 때 
TO_MANY_ROWSORA-01422-1422SELECT INTO 문장에서 하나 이상의
로우가 반환될 때 
VALUE_ERRORORA-06502-6502문자형 데이터를 숫자형으로 변환하는데 타당한 숫자가 아니거나 값을 할당 시 값의 크기가 선언된 변수의 크기를 넘어서는 경우와 같이 값을 변환하거나 할당할 때 오류가 발생할 경우 
ZERO_DIVIDEORA-01476-1476제수가 0일때 발생

2013년 12월 17일 화요일

[PowerBuilder] 일상적인 Tip 그리고 오류 들

Tip 01. Windows7 64Bit 레지스트리 값을 가져오지 못하는 경우

XP 환경에서 계속 개발을 하다가 올해 부터 Windows7 64Bit 를 사용하였다. 그러다 보니 과거 프로그래밍해 놓은것들이 64Bit 환경에서 잘 안되는 것들이 하나둘 씩 생기기 시작 했다.
그중 레지스트리 값을 읽어 오지 못하는 경우가 있었음..

* 변경 이전
RegistryGet("HKEY_LOCAL_MACHINE\SOFTWARE\AAA\SetText", "SetYn", Ls_SetYn)

* 변경 이후
RegistryGet("HKEY_CURRENT_USER\SOFTWARE\AAA\SetText", "SetYn", Ls_SetYn)

기본적으로 windows 7에서는 사용자계정컨트롤이 켜져 있을때와 꺼져있을때 참조하는 위치가 다릅니다. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node 여기 아래를 참조하게 되지요.. 따라서, local_machine 보다는 HKEY_CURRENT_USER 아래로 위치를 바꾸세요~
[출처] 윈도우7(64Bit)레지스터 가져오기 안되는데요 (파워빌더 커뮤니티(PBExpertClub))
| 덧글 작성자 까리보이 허륜석


Tip 02.

2013년 10월 8일 화요일

[책추천 #21] 통계의 힘 - 나사우치 히로무 지음

빅데이터, 빅데이터 라는 말을 저도 자주 언급했지만 뉴스나 신문지상에 나오는 키워드로 많이 듣고 있습니다. 추천드리는 이 책도 제목의 시작으로 빅데이터를 지해하는 이라는 말을 붙이기는 했습니다만 책의 전반적인 내용은 통계학이 가지고 있는 장점들이 주요 내용이고 이러한 장점들이 빅데이터 시대를 맞이 하여 그 활용 가치가 극대화 될것이라는 내용입니다. 

최근의 신문이나 방송에 나오는 많은 서비스들은 예측되어 나오는 것이거나 한 사람에게 개인화 되어 있는 것들이 대부분 입니다. 사람들의 소비패턴을 분석한다든가 하는 세상의 많은 것들 ( 그러니깐 과거에는 분석할 엄두를 또는 분석할 가치를 느끼지 못했던 것들)에 대한 새로운 관점의 분석을 요구하게 되어 있습니다. 그러한 분석을 위한 전문인력을 키우려고 하고 또 보유하려는 노력을 기울이고 있습니다. 이러한 흐름은 우리나라 뿐 아니고 이미 세계적으로도 동일한 흐름이라고 이해 하시면 됩니다. 그래서 이러한 분석을 위해서 기반이 되는 통계적 사고법은 우리가 글을 읽고/쓰는 능력 만큼 기본적인 능력이 될것입니다. 

디지털 시대라고 하는 이전과 현재의 시대에는 정보를 얼마나 빨리 정확하게 수집하느냐가 세계를 다스리는 시대라면 현재와 미래에는 수집된 정보를 활용하는 통계학적 사고법을 가진자가 세계를 다스리는 시대가 될것 입니다. (윤종록 - 미래창조과학부 제2차관 ) 

우리는 많은 분야 많은 부분에 대해서 단순 비교법을 주로 활용합니다. 전체 중 평균적인 값이라든지 집계된 합계 값이라든지.. 극단적인 비교이긴 하지만. 책의 내용 중에 인과관계에 대한 비교의 중요성에 대한 부분을 첨가 합니다. 

적절한 비교를 거치지 않은 단순집계가 얼마나 문제인지 알기 쉬운 사례를 들어 설명하겠다. 
다음 음식을 금지해야 마땅한지 생각해보자 
* 심근경색으로 사망한 일본인의 95% 이상이 이 음식을 먹었다. 
* 강도, 살인범의 70% 이상이 범행전 24시간 내 이 음식을 먹었다. 
* 일본인에게 섭취를 금지하면 정신적 스트레스를 조장한다. 
* 에도시대 이후 일본에서 발생한 폭동의 대부분은 이 음식이 원인이다. 

이 음식은 다름 아닌 밥이다. 이렇게 한쪽의 단순집계만을 보면 "쌀밥 먹는 것을 금지해야 한다" 같은 어처구니 없는 결론이 내려질 위험도 있다. 이러한 무의미한 "분석"이 부지기수로 많다. 해외의 일류 비즈니스 스쿨에서 널리 읽히는 전문서에조차 이처럼 무의미한 해석과 근거로 "그 캠페인이 성공했다"고 주장하는 사례가 실려 있기도 하다 

하지만 "충분한 데이터"를 바탕으로 "적절한 비교"를 하는 통계적 인과추론의 기초만 몸에 배어 있으면 경험이나 감을 뛰어넘어 비즈니스를 단숨에 한 단계 업그레이드 시키는 비결을 손쉽게 찾아 낼 수 있다. 

-- 페이지 82 ~ 83 

이쯤 되면 그래서 어떻게 해야 하는데 하는 의문이 드실 수 있습니다. 그런 분들께 이 책을 추천드립니다. 기존의 의사결정에서 좀더 데이터적 분석과 의사결정이 필요 하신 분들께 추천 드립니다. 이 책은 통계학에 대한 세부 알고리즘을 설명하기 보다는 기본적인 통계학 개념이 어떤 분야에 사용되어지고 간략한 예제는 어떤것이 있다고 까지만 설명하고 있습니다. 전체를 좀 훌터보면서 읽어 보시는 것을 추천드리고 이에 각 분야 또는 업무에 활용 할 수 있는 통계학적 지식이 있다면 추가로 전문적인 문서를 좀더 읽어 보시기를 권장 합니다. 

"To Err is Human - 누구나 실수 할 수 있다" 또는 "Why to Err is Human - 무엇이 우리 판단을 조작하는가?"  책을 읽어 보면 실수는 사람의 일이라고 이해 하는것이 더 적절한 표현이라는 생각이 듭니다. 우리는 앞으로 수없이 많은 실수를 범하게 될것 입니다. 그리고 이미 지금도 그 많은 실수를 하고 있겠지요. 그것이 뇌가 하고 있는 습관과 경험의 관점에서는 비합리적인 의사결정이라고 하더라도 인간이 좀더 다양한 관점과 좀더 다양한 분석을 통한 최선을 다 할 때 해결책이 구해지는 것은 인간에게 허락된 대단히 고마운 용서라고 생각합니다.


이 책에서 다루는 내용은 다음 목차를 통해서 공유합니다. 


제1장 빅데이터, 통계학에서부터 시작하라
   01 _ 실생활과 밀접한 통계 리터러시 
   02 _ 답을 알려주는 실용적인 학문, 통계학
   03 _ 통계학은 모든 과학적 분석 방법의 기본 
   04 _ IT와 통계학의 기막힌 결혼 

제2장 정보비용을 대폭 줄여주는 통계 
   05 _ 통계가가 본 빅데이터 광상곡 
   06 _ 뉴딜정책을 뒷받침한 통계가들
   07 _ 의미 있는 오차범위와 비용

제3장 오차와 인과관계가 통계학의 핵심이다
   08 _ 나이팅게일식 통계의 한계 
   09 _ 인과관계를 생각하지 않는 통계해석은 의미가 없다
   10 _ ‘60억 엔을 버는 비결’이 담긴 리포트 
   11 _ 오바마가 선거에서 승리한 이유 
   12 _ 그것은 이익에 직결되는가? 
   13 _ ‘인과관계의 방향’을 밝혀내어야 한다

제4장 ‘임의화’라는 최강의 무기 활용하기 
   14 _ 우유가 먼저인가, 홍차가 먼저인가? 
   15 _ 임의화 비교실험이 사회과학을 가능하게 했다 
   16 _ ‘재봉틀 두 대 사면 10% 할인’으로 매출이 오를까 
   17 _ 임의화의 세 가지 한계 

제5장 통계학은 계속 발전하고 있다 
   18 _ 역학의 발전이 증명한 담배의 위험 
   19 _ ‘평범으로의 회귀’를 분석하는 회귀분석 
   20 _ 천재 피셔의 또 다른 업적 
   21 _ 통계학의 이해도를 높여주는 단 한 장의 도표8
   22 _ 다중회귀분석과 로지스틱 회귀 
   23 _ 통계학자가 극대화한 인과의 추론 

제6장 통계학의 여섯 가지 활용 분야
   24 _ 사회조사법 대 역학과 생물통계학
   25 _ IQ를 탄생시킨 심리통계학 
   26 _ 마케팅 현장에서 생겨난 데이터마이닝 
   27 _ 문장을 분석하는 텍스트마이닝
   28 _ ‘연역’의 계량경제학과 ‘귀납’의 통계학 
   29 _ 베이즈파와 빈도론파의 확률을 둘러싼 대립 

제7장 에비던스 활용하기 
   30 _ 거인의 어깨 위에 서는 방법
   31 _ 에비던스, 어떻게 찾을 것인가 

 

2013년 8월 15일 목요일

[책추천 #20] Head First Data Analysis - Michael Milton

 
오늘 드리는 책추천은 데이터를 분석하는 업무를 하거나 컨설팅을 하는 친구들이 기본적으로 알아야 할 통계개념과 분석 기법 그리고 풀어가는 시나리오를 알 수 있는 책입니다. 내 업무하고는 관계 없어라고 하기 보다는 기초적인 분석기법을 배워두는 것은 어느 부서나 어느 누구에게나 도움이 될것이라 생각이 듭니다. 우리는 많은 데이터의 주변에 살고 있고 또 데이터를 만지고 있는 사람들 이니까요.
 
 
책에 대한 이야기를 해보겠습니다.
일반적인 데이타 분석 절차는 정의 -> 분해 -> 평가 -> 결정  각각의 절차별 필요한 내용을 단계적으로 설명하고 시나리오를 통하여 어떻게 접근하는지를 예제문제 (책장 2장 3장에 한번씩 나와서 처음엔 당황했습니다. )가 계속 나오고 답안을 다음장에서 제시 합니다.  
 
미를 가질만한 도입부 스토리가 인상적입니다. "Acme 화장품 CEO는 데이터 분석을 통해 매출을 올릴 수 있길 바랍니다. " 이러한 주제와 주어진 데이터 비교를 통한 실험, 주어진 조건하에서의 최적화, 데이타 시각화, 베이지안 통계, 예측, 휴리스틱 분석, 히스토그램, 통계도구 R 사용법 등을 알려줍니다.
 
아무래도 데이타를 다루는 책이다보니 표나 숫자 도표등이 끊임없이 나오지만 군더더기없이 꼭 필요한 분량과 주석만이 표시되어 있기에 수학에 알레르기가 있는 분들도 충분히 읽으실 수 있을거 같습니다.
 
개인적으로는 각자의 의견 정확도(확률)를 수치화하여 주관적 확률로 표현하고 표준편차로 어느정도 의견차가 있는지 파악하는 베이즈 정리파트가 가장 흥미로웠습니다. 늘상 현업에서 이뤄지고 있는 의사결정과 협의 과정에서 부딪치게 되는 의견 충돌이 실제로 숫자로 표현을 해보면 의견 충돌이 아니라는 사실을 알게 된다는 결론이 더욱 흥미롭게 했습니다. ( 7. 주관적확률 내용 참고 )
 
이론적인 내용과 한빛미디어 홈페이지를 통해서 제공되는 예제데이타를 통한 엑셀, R등의 도구를 통해서 실습해볼 수 있다는 점도 좋았습니다. 실습할 수 있는 내용이 있다고 해도 분량이 적고 제한적이라는 부분이 조금은 아쉽게 느껴지지만 오히려 깊숙히 들어가서 설명을 하게 되면 또 해메이게 되는것이 분석이라는 분야가 아닌가 싶습니다.
 
모든 부서에 필독서가 되길 희망해 보는 책입니다. 오늘도 화이팅 하시길 바랍니다.

2013년 7월 24일 수요일

[책추천 #19] 또라이 제로 조직 - 로버트 서튼

시작하기 전에 이미 책의 제목을 보고 섬뜩한 느낌을 받으셨나요? 이미 책이 나온지는 좀 지났는데 저는 이제 알게 되었습니다.  조직혁신과 조직 행동의 세계적 권위자이자, 스탠퍼드 대학 공과대학 교수인 ‘로버트 서튼’은 이 책을 통하여 조직 내 또라이의 폐해에 대해서 기술하고 있습니다. 어떤 행동 패턴을 갖고 있는지 그런 또라이를 조직내에서 어떻게 대처해야 하는지 그리고 새로운 문화를 만들어가야 하는지에 대한 이야기를 거침없이(?) 그리고 리얼하게 말해주고 있는 책입니다. 

“나는 이 책에서 이런 인간들의 파괴적인 성격이 동료들에게 얼마나 많은 피해를 주고 조직의 성과를 갉아 먹는지 말하려고 한다. 또한 그런 놈들이 회사에 발붙이지 못하게 하고, 만일 어쩔 수 없이 함께 해야 한다면 어떻게 그들의 말과 행동을 고칠 수 있는지, 도저히 고칠 수 없다면 어떻게 쫓아내야 하는지, 그리고 이런 또라이들이 가져오는 손해를 어떻게 줄일 수 있는지 이야기하려고 한다”라고  로버트 서튼 교수는 말하고 있고 이 책을 쓰게된 근본적인 동기라고 책에는 씌여져 있습니다. 

또라이를 판별하는 방법은 무엇이 있을까? 저자가 말하는 여러가지 중 한가지는 " 약자와 강자를 어떻게 대하느냐"를 보면 알 수 있다고 합니다. 대부분의 또라이들은 이 전략을 아주 잘 구사하기 때문에 조직에서 잘 살아 남아 있다고 말하고 있네요. ^^ 

그 사례로 스탠퍼드 대학에서 한 학생이 찾아와 도움을 청하자 무시하고 거절했던 교수가 학생의 부모가 막강한 힘을 가지 임원으로 이 대학에 엄청난 기부를 했다는 것을 알자, 이전의 거만함을 벗어 던지고 순식간에 자상하고 매력적인 사람으로 바뀐 사례를 듭니다. 잘 모르는 사람, 지위가 낮은 사람에게도 언제나 따뜻하고 예의 바르게 대하는 너그러운 사람이어야 한다는 것입니다. 이 사례로 본다면 또라이들의 첫 번째 공통점은 권위주의자, 관료주의자라 할 수 있겠죠 

‘사우스 웨스트 항공’의 공동 창업자이자 전 CEO였던 허브 켈러는 “기장 지원자 중 한 사람이 우리 안내 직원에게 아주 거만하게 굴었어요. 그래서 바로 그 자리에서 그를 불합격시켰지요. ‘그런 식으로 사람을 대하는 태도는 여기서는 허용이 안 됩니다. 당신은 우리가 원하는 리더가 될 수 없다’라고 말하면서요” 라고 했다는 일화가 있습니다. 

결국 우리 모두는 자신의 내면에 존재하는 또는 존재할 수 있는 미래에 또라이를 찾아 내고 좋은 방향으로 고쳐야 하고 다른사람과이 진실한 소통, 협업 하는 담금질의 과정이 필요 합니다. 근본적으로 그것이 바로 내부의 조직 그리고 더 나아가 외부의 고객과 소통할 수 있는 근본적인 힘이라고 생각하기 때문입니다.

** 주의사항 
책을 읽다 보면 자가진단 테스트의 문구가 많이 나옵니다. 이로 인하여 아.. 진짜 내가 또라이 인가? 라고 생각이 든다고 하더라도 안심하세요. 고칠수 있습니다. ^^  

언제 부터 였던가 생각해보니 아르바이트 겸 외부 컨설팅을 의뢰 받고 맥북 프로를 처음 써봤을 때 부터 였던 것 같다. 지금은 거의 대부분의 작업을 맥으로 작업을 하다 보니 윈도우에서만 실행되는 일부 프로그램들 때문과 회사 내부 ERP프로그램이 윈도우 ...