김세훈

Clunix Wiki
(버전 사이의 차이)
(=데이터마이닝)
(데이터마이닝)
220번째 줄: 220번째 줄:
  
  
====데이터마이닝====
+
===데이터마이닝===
 
*일반적으로 데이터 마이닝이란 일정의 데이타를 가지고 유추를 통해 또 하나의 새로운 정보를 생산해내는 과정을 말한다.
 
*일반적으로 데이터 마이닝이란 일정의 데이타를 가지고 유추를 통해 또 하나의 새로운 정보를 생산해내는 과정을 말한다.
 
**많은 데이터 가운데 숨겨져 있는 유용한 상관관계를 발견하여, '''미래에 실행 가능한 정보를 추출해 내고 의사 결정에 이용하는 과정'''을 말한다.데이터베이스로부터 과거에는 알지 못했지만 '''데이터 속에서 유도된 새로운 데이터 모델을 발견하여 미래에 실행 가능한 정보를 추출'''해 내고 의사 결정에 이용하는 과정을 말한다. 즉 데이터에 숨겨진 패턴과 관계를 찾아내어 '''광맥을 찾아내듯이(mining)''' 정보를 발견해 내는 것이다. 여기에서 정보 발견이란 데이터에 고급 통계 분석과 모델링 기법을 적용하여 유용한 패턴과 관계를 찾아내는 과정이다. '''데이터베이스 마케팅의 핵심 기술'''이라고 할 수 있다.
 
**많은 데이터 가운데 숨겨져 있는 유용한 상관관계를 발견하여, '''미래에 실행 가능한 정보를 추출해 내고 의사 결정에 이용하는 과정'''을 말한다.데이터베이스로부터 과거에는 알지 못했지만 '''데이터 속에서 유도된 새로운 데이터 모델을 발견하여 미래에 실행 가능한 정보를 추출'''해 내고 의사 결정에 이용하는 과정을 말한다. 즉 데이터에 숨겨진 패턴과 관계를 찾아내어 '''광맥을 찾아내듯이(mining)''' 정보를 발견해 내는 것이다. 여기에서 정보 발견이란 데이터에 고급 통계 분석과 모델링 기법을 적용하여 유용한 패턴과 관계를 찾아내는 과정이다. '''데이터베이스 마케팅의 핵심 기술'''이라고 할 수 있다.
 
**예를 들어, 한 백화점에서 판매 데이터베이스의 데이터를 분석하여 금요일 오전에는 어떤 상품들이 잘 팔리는가, 그리고 팔리는 상품들간에는 어떤 상관관계가 있는가 등을 발견하고 이를 마케팅에 반영하는 것이다. 따라서 데이터마이닝의 필수 요소는 신뢰도가 높은 충분한 자료이다. 이것은 신뢰도 높은 충분한 자료가 정확한 예견을 가능하게 하기 때문이다. 그러나 '''너무 많은 자료는 오히려 데이터마이닝의 예견 능력을 떨어뜨릴 수 있으므로 최적의 결과를 산출할 수 있는 의미있는 자료의 확보'''가 필요하다. 한국에서 데이터마이닝은 아직은 초기 단계에 머물러 있다. 그러나 곧 일반화될 것으로 생각된다. 그 이유는 '''데이터마이닝을 하기 위한 최적의 시스템이 되는 데이터웨어하우스가 국내에 이미 많이 구축'''되어 있기 때문이다. 또 기업의 요구 사항이 주로 '''고객관리에 중점을 두는 데이터베이스 마케팅 쪽으로 가고 있기 때문에 데이터마이닝의 발달은 급속히 이루어질 수밖에 없다.''' 한편 기술적인 면에서 '''데이터마이닝을 잘 구현할 수 있는 소프트웨어가 나오면 데이터웨어하우스는 축소될 것이라는 의견'''도 있다
 
**예를 들어, 한 백화점에서 판매 데이터베이스의 데이터를 분석하여 금요일 오전에는 어떤 상품들이 잘 팔리는가, 그리고 팔리는 상품들간에는 어떤 상관관계가 있는가 등을 발견하고 이를 마케팅에 반영하는 것이다. 따라서 데이터마이닝의 필수 요소는 신뢰도가 높은 충분한 자료이다. 이것은 신뢰도 높은 충분한 자료가 정확한 예견을 가능하게 하기 때문이다. 그러나 '''너무 많은 자료는 오히려 데이터마이닝의 예견 능력을 떨어뜨릴 수 있으므로 최적의 결과를 산출할 수 있는 의미있는 자료의 확보'''가 필요하다. 한국에서 데이터마이닝은 아직은 초기 단계에 머물러 있다. 그러나 곧 일반화될 것으로 생각된다. 그 이유는 '''데이터마이닝을 하기 위한 최적의 시스템이 되는 데이터웨어하우스가 국내에 이미 많이 구축'''되어 있기 때문이다. 또 기업의 요구 사항이 주로 '''고객관리에 중점을 두는 데이터베이스 마케팅 쪽으로 가고 있기 때문에 데이터마이닝의 발달은 급속히 이루어질 수밖에 없다.''' 한편 기술적인 면에서 '''데이터마이닝을 잘 구현할 수 있는 소프트웨어가 나오면 데이터웨어하우스는 축소될 것이라는 의견'''도 있다
 +
===데이터 웨어하우스===
 +
**데이터 웨어하우스는 1980년대 중반 IBM이 자사 하드웨어를 판매하기 위해 처음으로 도입했던 개념으로, IBM은 인포메이션 웨어하우스(Information Warehouse)라는 용어를 사용하였다.
 +
**이후 이 개념은 많은 하드웨어와 소프트웨어 및 툴 공급 업체들에 의해 이론적, 현실적으로 성장하였으며, 1980년대 후반 인몬(Inmon)이 데이터 접근 전략으로 데이터 웨어하우스 개념을 사용함으로써 많은 관심을 모으기 시작했다.
 +
**데이터 웨어하우스는 '''원시 데이터 계층, 데이터 웨어하우스 계층, 클라이언트 계층'''으로 구성되며 '''데이터의 추출, 저장, 조회''' 등의 활동을 한다.
 +
**데이터 웨어하우스의 특징을 보면,
 +
***'''운영 시스템은 조직 운영에 필요한 재고관리와 회계정보, 영업 시스템과 같은 특화된 기능을 지원하지만'''
 +
***'''데이터 웨어하우스는 고객과 제품, 회계와 같은 주제를 중심으로 데이터를 구축한다.'''
 +
***운영 시스템의 데이터는 종종 코딩 방법과 형식에 일관성이 없을 때가 있으나,
 +
***데이터 웨어하우스의 모든 데이터는 일관성을 유지하여 데이터 호환이나 이식에 문제가 없다. 운영 시스템은 접근하는 시점을 정확히 유지하는 반면 데이터 웨어하우스에 저장된 데이터는 특정 시점에 데이터를 정확하게 유지하면서 동시에 장기적으로 유지될 수도 있다.
 +
***운영 시스템은 '''데이터는 레코드 단위'''로 계속 수정된다.
 +
***그러나 데이터 웨어하우스의 데이터는 '''대량으로 로딩되어 나중에 사용된다. 현존하는 데이터는 수정하지 않으므로 일관성이 유지된다.'''
  
 
= 이맥스 팁 =
 
= 이맥스 팁 =

2009년 4월 9일 (목) 09:39 판

목차

http://coffeenix.net/data_repository/html/gcc-err.html

  • GDB 디버깅 프로그램
b file.c:func이런 식으로 하면 외부파일의 특정함수에 브레이크 포인트를 걸어줄 수 있다.
b 10 if var = 0 10행에 브레이크 포인트를 설정하는데 var 변수 값이 0일 때 작동
외부파일일지라도 브레이크 걸어준후 c를 하자!!! (컨티뉴)


  • 리눅스 팁
이 명령을 기억하면 일일히 ps -ef안해줘도 attach할 때 많은 도움이 될것이다.
-watch -d pgrep "프로세스명1|프로세스명2|프로세스명3"
해상도 바꾸고 싶을 때
리눅스 콘솔 화면의 해상도 설정하기 위해서는 grub.conf 안에 다음 라인을 추가한다.
kernel /vmlinuz-2.6.x ro root=LABEL=/1 rhgb quiet vga=792
정확한 vga 설정값은 아래와 같다.

Colors 640x480 800x600 1024x768 1280x1024 1600x1200


256 769 771 773 775 796 32768 784 787 790 793 797 65536 785 788 791 794 798 16.8M 786 789 792 795 799


http://servermaster.pe.kr/tc/52 <- 여기 좋다.

링크 시킬때
- ln -s /원본... /링크시킬 위치...
링크 정보를 알고 싶을 떄
- phpMyadmin과 같은 html상의 링크는
- /var/www/html/ 쪽으로 가자!

남은 하드디스크량 알아 볼 때
- df -h
하드디스크 부족할 때
- fdisk /dev/sd...
- extracted는 피할 것.
- 후에 mount로 정착
- 그리고 마지막으로 링크 (위의 것 참고)

마운트

- mount /dev/sdb1(원래 있던 곳.) /tmp/hadoop-root 하둡의 원위치
- 이건 뭘까? umount /media/disk
- http://mwultong.blogspot.com/2007/07/linux-mount.html <- 여길 참고하라!
- http://user.chollian.net/~deuckgi/LinuxServer/linux.htm <-여기도 참고하라!
프로세스의 비중이 클 때
- top로 검사 (작업 관리자와 같은 화면 실시간 출력)
- pid에 따른 비중에 맞춰 막히는 프로세서 삭제
- 삭제하는 방법 pkill -9 pid
- partprobe(?) 암튼 이건 재부팅 방지용이다.

하둡

- hdfs상에서 송수신할 때, 나눠야할 블록, 버퍼량을 헤아려야 한다.
- 예를 들어, 너무 많은 양을 한꺼번에 보내려 한다면 오류가 발생한다.

- h-base, hdfs, map & reduce 방식은 구글 것을 따라한거다.
- 하둡은 높은 전송률,  낮은 지연률 - 단, 많은 양의 컴퓨터(렉)가 병렬구조의 클러스터를 이뤄야 된다- 을 자랑한다.
- moving computation 움직일 수 있는 계산. 즉,  계산처리 과정의 근접화. 즉, 데이터의 이동, 근접화보다 더 효율적인 방법
이라고 한다.
- hdfs는 상호작용이라기보단, 배치 프로세싱. (이게 도대체 무슨말인지...) 
- 결론은, 병행처리 구조상 획기적인 '속도의 증대'는 DFS의 놀라운 발견!

- 하둡의 초기화는 우선 hadoop namenod -format 디렉토리 초기화(1)
- start-all.sh (2)분산파일 시스템(DFS) 가동!
- 그리고 분산파일 시스템의 중지는 stop-all.sh 스크립트 이용
자세한건 여기에! http://www.joinc.co.kr/modules/moniwiki/wiki.php/JCvs/Search/Document/nutch/Hadoop?action=print
- hadoop-default.xml 이건 뭘까?
- hadoop-site.xml 이건 뭘까?
- $하둡홈/logs...
- hadoop-daemon.sh start namenode
- hadoop-daemon.sh start datanode
- 위의 것도 염두해두자.


EMS

자바스크립트

member_list.js의 속성바꾸기. -$(id).attr=>속성바꾸기 시작하겠다.
("class", "btn_08")- $(id)에 해당하는 class속성을 btn_08로 바꾸겠다.

SQL

- client_data1 as A LEFT JOIN firm_data1 as B on A.f_id = B.f_id
- 생각해보자. 모든 테이블의 값을 불러들어올 수 있는 명령!! - 생각해냈다.
- UNION in SQL-tutorial (http://www.tizag.com/sqlTutorial/sqlunion.php)
- SELECT employees.Lastname, employees.Firstname, invoices.Sale, invoices.Price
  FROM employees
  INNER JOIN invoices
  ON employees.id = invoices.EmployeeID
  UNION
  SELECT employees2.Lastname, employees2.Firstname, invoices.Sale, invoices.Price
  FROM employees2
  INNER JOIN invoices
  ON employees2.id = invoices.EmployeeID;
- 그냥 합치는 것 같다.
- 뭔가를 값을 얻어서 다른 폐이지에 보낼 때(처리할 때) 한 폐이지에 두개이상의 방식이 존재할 때,
  고려해야한다. 그러니까 인풋 타입의 메쏘드를 get으로 할 것인지, post로 할 것인지, 뭐 요런 것들이
  2개 이상이라면 충돌(아마 그런걸거다.)을 우려할 수 있으므로 미리미리 막아두자. 검색엔진이라던지,
  처리 버튼이라던지...
- mysql은 세개의 테이블을 병합, 조회하는 거 빼곤 모든 작업이 가능하다. 동적콘텐츠 상에서 구현 불가능한 것도
  mysql의 쿼리를 잘 굴려본다면 해답이 나온다.
AVG in SQL-tutorial (sql-tutorial.net/SQL-AVG.asp)
- SELECT AVG(column 1) FROM Table1 => SQL 해석 테이블 1의 column1속성에 속한 값의 평균값을 알려주세요.
- 예) SELECT AVG(salesAmount) AS AvgSaleAmount FROM Sales => Sales테이블의 SalesAmount 속성의
  평균값을 알려주세요.
GROUP-BY in SQL-tutorial (sql-tutorial.net/SQL-GROUP-BY.asp)
- 이건 위에 언급한 AVG나 SUM과 같은 것과 같이 쓰이는 경우가 많다.
- SELECT Employee, SUM (Hours) FROM EmployeeHours GROUP By Employee => Employee에 해당하는 값을 
  동등한 것끼리 항목을 묶은 다음 각 그룹별 Hours 합친 값을 구해주세요.
별명을 지어 같은 소스를 각각 달리 구분하여 사용하기
- 간단하다. 필드명을 입력하는 곳에 필드이름을 쓰고 double-quote(쌍따옴표)로 명명을 하면 받아지는 이름이 바뀌게 된다.

해쉬 테이블

- 전화번호부, 그러니까 찾아보기 쉽게 색목별로 나눈 사전이나 전화번호부라면 해쉬테이블!
- 어떤 곳에 넣어야 할 지, 그러니까 구분하는 기준을 정하는게 최우선과제겠지!
- 하지만 이 역시 완벽하진 않아, 쉽게 에러가 날 수 있는데 대표적으로 값을 추가할 수 없는 충돌 현상이 그것이다!
- 해결방법 다중슬롯: 그냥 2차원 배열 만들면 되지뭐!
- 하지만 한쪽 슬롯에만 치중된다면- 낭비, 지연.
- 결국 단순, 신속적인 해시테이블을 만들어야!
- 선형탐색 : 꿩대신 닭. 해당 슬롯이 꽉차면 그 옆자리!
- 동적 슬롯: 슬롯의 갯수를 가변적으로 관리하는 방법. 비교적으로 적극대처 방법.
- 이 동적슬롯의 구현은 동적배열이나 연결리스트로 작성해야. 물론 이 때엔, 양이 방대해짐을 전제로 한다면,
- 이분 검색을 하는게 유리하겠다.

- 검색이라기 보단, 빠른 검색을 위한 자료관리 알고리즘.

uts

1) 용어 정리
  - 스테이지 : U. T. S의 세단계를 세분화 시킨것.(같은 S를 가더라도 S1에 갈 건지, S2에 갈 건지 알아야지.)
  - DH테이블, 크게 svc와 tid로 나뉘는데 업데이터와 뭐가 다를까. 일단 보류
  - UTS_ENV 이건 한 데이터의 세부정보.
2) 함수
  - record_direction
3) 돌아가는 구조
  - 폴더와 같은 이름.C : 거의 메인함수와 같은 격, 익스트렉터와 트렌스포머 그리고 이에따른 분리된 헤시테이블관리
    그리고 헤시엔트리(hentry)를 관리하고 있다.
  - 폴더와 같은 이름.h : 모든 것을 정의하는 헤더파일, 참고로 위에 메크로 부분은 중복선언을 막기위한 것이란다.
    php의 require-once라고 이해하면 될 것이다.
  - transform.c : 후에 uts_transform함수에서 호출하게될 loc_mapping에 관여하는 파일.
4) DHTABLE정의 부분 
  - 2번째 부터 4번째까지의 인자 부분은 중요하다. (알아두어야 할것)
  - 그리고 맨 끝에서 4번째 인자는 2번째 스테이지에서 처리할 데이터(키값)
  - 맨 끝에서 3번째 인자는 키와 벨류를 합친 데이터량
  - 맨 끝에서 2번째 인자는 해시테이블의 수(그러니까 분류처리할 종류의 갯수)
  - 맨 끝의 인자는 최종적으로 처리하여 보내줄 목표 단계(처음에 한건 3스테이지라고 설정했다.) 
5) C 라이브러리를 기초로 만들어진 uts라이브러리
  - opendir, readdir (http://blog.naver.com/PostView.nhn?blogId=beyondlegend&logNo=110029848992&from=search)
  - fopen 등등 여러 기능을 UTS 환경에 맞게 바꿔놨다.
  - 구현된 기능의 이름(함수이름)도 어렵지 않다 기존의 함수 이름 앞에 UTS라고 붙이면 된다.
6) 돌아가는 구조
  - 일단, uts_extractor가 모든 걸 설정한다. 그러니까, 파일을 열고 거기안의 정보를 갖고온다.(갖고오기만 하면된다.)
  - 둘째로 get_direction여기서 스테이지 정하고 거기에 맞는 다음 단계 (transform)으로 간다.
  - 그 다음, uts_transform으로 가서, 갖고온 데이터를 기반으로 정제 또는 매핑을 한다.
  - 셋째로 get_direction여기서 스테이지 또 정하고 거기에 맞는 다음 단계로 간다. 헤시테이블 설정도 있다는데,
    그건 나중에 알아보자.
  - 그 다음, uts_loader-- uts-init, uts-load, uts-fini등으로 분류되는데 여기서 아웃풋을 정리한다. 대부분 fwrite로
     쓴다.
  - 끝
7) 함수는 C와 아주 흡사, 하지만 인자값이 어떤 것이 있으며 하는 일이 무언지 알아두자.
  - ecm_gen_path는 첫번째 두번째 인자값을 합쳐준다. 방을 만들거나 파일을 설정할 때 자주쓰이는 듯 하다.
  - extractor_id는 뭘까?
  - uts_emit_record이건 다음단계로 넘기는 것. 아주 중요한 것 인자값은 굳이 캐스트 연산을 하지 않아도 된다.
8) 설정 파일의 2대산맥. makefile.am이랑 configure.in이다. 여기에 설치를 해야 모듈을 잘 설치할 수 있다. 모듈의 uts.spec!!!
  그리고 한가지더, 이것을 깔고난 후, aclocal, autoconf, automake를 재설치, 재실행해야 한다.
9) /usr/clx/bin/ecmconf -v 해주면 설정된 것이 나온다. 여기서 현재의 econf(/usr/clx/etc/econf)를 지워주고 ecmconf -h를 해주면
  여기서 옵션창이 나오는데 여기의 지시에 맞춰 /usr/clx/bin/ecmconf -n clunix28 -c ~~ -p 908 -e 80 -m 1 -t 1000000 -L /asdfhhl;kasj
 대신 -L은 시작폐이지 설정이니 주의.(loginpage/loginpage.html -T top/top.html)해주고 ecmctl -C start를 해보자 그러면 성공!
9.5) 여기서 노드값(ndname)이름을 설정하지 않으면 실행이 되질 않는다. 
10)4월 2일현재까지의 알아낸 정도는, 
  Makefile.am을 샅샅이 훑어보자. 특히, kimsh_la_LIBADD를 잘 설정해주지 못할 경우, make파일은 잘 될지 몰라도, 후에 런맵(runmap)실행시킬
  때, 모듈이 존재하지 않는다며 cannot create job!!!이란 에러메시지가 뜰것이다. 그러니까 이것도 주위하며 잘 보자.
  그러니까 주의!!!(num2bcd 함수 이용할 때 특히 주의!!!) 
  ecm_memset + ecm_memcpy 이건 항상 같이 따라다니면 좋을 것 같다. 특히 이거 하기전에, ecm_malloc같은건 uts_alloc_record에서 알아서 
  해주기때문에 이런건 참고하자.
  free (해제)를 같은 대상으로 2번해주면 안되겠다.
  디버깅 해줄 때, dis/en은 그간 만들었던 브레이킹 포인트를 각각 일괄 삭제/복구와 같다.
  디버깅 만큼 강력한 터미널의 커맨드!!! 
  10-1) watch -d 'pgrep -l "edbd|ebcd|egid|ext2009년 4월 2일 (목) 08:54 (UTC)Clarysage"; ls -l /usr/clx/bigfiles'
  10-2) tail -f /tmp/kimsh.log 
11) call by reference를 좀더 이해하자. 그러니까 함수의 인자값자체를 함수를 거치면서 변하게끔 해주려면 a(&b)이렇게 보내주고
이걸 받는 쪽, 그러니까 함수가 구현된 부분에서는 void a(*b)이렇게 해주고 그 안에선 b라고 쓰면 되겠지.


12) memcpystrncpy의 다른점
  - memcpy는 0x00에 상관 없이 지정한 갯수만큼 끝까지 복사시켜주고 strncpy는 0x00를 만나면 중도에 끝내버린다.
14) static의 특징!!
  - 유용하다면 엄청 유용한 변수 타입.
  - 외부에서 함수를 호출할 때, refresh(다시 초기화)가 되지 않고 변수가 그대로 설정이 된다.
  - 그냥 변수 선언과 차이점을 명백하게 알아두자.
  - 나중에 인덱스를 활용할 때, 특히, UTS에서 넘어온 값이 몇번째인지 알고 싶을 때 활용하면 좋을 것 같다.
  - C언어의 실전156페이지 참고해 볼 것.
15) 그냥 시작주소값을 할당했던 주소에 대입을 시키면, 나중에 free에서 에러가 발생한다.
  - 이를 해결하기 위한 방법은 시작주소값을 대상으로 기존의 할당했던 주소에 memcpy를 하면 나중에 에러가 발생하지 않는다.(중요!!!)
  - 이것때문에 memcpy를 함에 있어 주소값만 알아내도(할당하지 않더라도)이를 즉시, 카피해낼 수 있다. 시작 주소값만 있어도 된다!!!
16) strtol은 atoi보다 여러면에서 좋은 장치이다. 그러니까, atoi는 에러가 나더라도 이 것을 잡기 힘든데 strtol은 디버깅이 가능하다.
17) 더 알자.

헤시테이블의 원리

1) kimsh_0402.c 그리고 kimsh_0402.h참고
2) 트랜스폼이 주된 관건인데, 여기서 uts_get_dhtable이란 게 있다. 이것은, 키가 아닌 벨류값을 넣어야할 구조체가 미리 선언되있는
데이타를 집어넣어 주는 곳이다. 다시말해서, 일단 키값을 들어온 값의 키에 해당하는 곳을 입력받은 후, 그것에 맞는 헤시테이블을 제시한 후,
(없으면 새로 생성. 물론 멤셋해줘야 겠지.) 이곳에 값을 집어넣는 것이다.
3) 그리고 거기에 맞는 데이터를 넣었다면 uts_hentry_transform으로 간다. 즉, uts_transform은 예전부터 자신의 임무가 끝남.
4) 여기서 들어온 데이터 값은 앞서 합쳐진 값으로 각각의 키값과 합쳐진 벨류값으로 나뉘어진다. 이를 받아들이고 보내는 곳. 결국엔 이 데이타
가 loader쪽으로 간다.
5) loader쪽으로 들어와 출력되면 성공!

정제의 원리

1) kimsh_0408.c 그리고 kimsh_0408.h참고
2) 일단, 이것을 하기에 앞서 짚고 넘어가야 할 것이 있다. 첫째, 받고자 하는 곳의 주소를 정확히 알아야 한다. 둘째, strtok를 하더라도
원하는 데이타 값이 공백이 있어선 안된다. 셋째, memcpy를 해주더라도 앞서 언급한 주소의 개념을 절대 가볍게 여겨선 안된다. 
3) 이는 결국 헤더(설정)파일의 잘 짜여진 구조체와 extractor의 논리 흐름에 의해 판가름 난다. 그 후엔, 임의로 설정해 놓은 memcpy(내 것엔 
ksh_memcpy)에 의해 보여지게 되는 것이다. 특별한 논리는 없다. 깔끔하면 된다.


데이터마이닝

  • 일반적으로 데이터 마이닝이란 일정의 데이타를 가지고 유추를 통해 또 하나의 새로운 정보를 생산해내는 과정을 말한다.
    • 많은 데이터 가운데 숨겨져 있는 유용한 상관관계를 발견하여, 미래에 실행 가능한 정보를 추출해 내고 의사 결정에 이용하는 과정을 말한다.데이터베이스로부터 과거에는 알지 못했지만 데이터 속에서 유도된 새로운 데이터 모델을 발견하여 미래에 실행 가능한 정보를 추출해 내고 의사 결정에 이용하는 과정을 말한다. 즉 데이터에 숨겨진 패턴과 관계를 찾아내어 광맥을 찾아내듯이(mining) 정보를 발견해 내는 것이다. 여기에서 정보 발견이란 데이터에 고급 통계 분석과 모델링 기법을 적용하여 유용한 패턴과 관계를 찾아내는 과정이다. 데이터베이스 마케팅의 핵심 기술이라고 할 수 있다.
    • 예를 들어, 한 백화점에서 판매 데이터베이스의 데이터를 분석하여 금요일 오전에는 어떤 상품들이 잘 팔리는가, 그리고 팔리는 상품들간에는 어떤 상관관계가 있는가 등을 발견하고 이를 마케팅에 반영하는 것이다. 따라서 데이터마이닝의 필수 요소는 신뢰도가 높은 충분한 자료이다. 이것은 신뢰도 높은 충분한 자료가 정확한 예견을 가능하게 하기 때문이다. 그러나 너무 많은 자료는 오히려 데이터마이닝의 예견 능력을 떨어뜨릴 수 있으므로 최적의 결과를 산출할 수 있는 의미있는 자료의 확보가 필요하다. 한국에서 데이터마이닝은 아직은 초기 단계에 머물러 있다. 그러나 곧 일반화될 것으로 생각된다. 그 이유는 데이터마이닝을 하기 위한 최적의 시스템이 되는 데이터웨어하우스가 국내에 이미 많이 구축되어 있기 때문이다. 또 기업의 요구 사항이 주로 고객관리에 중점을 두는 데이터베이스 마케팅 쪽으로 가고 있기 때문에 데이터마이닝의 발달은 급속히 이루어질 수밖에 없다. 한편 기술적인 면에서 데이터마이닝을 잘 구현할 수 있는 소프트웨어가 나오면 데이터웨어하우스는 축소될 것이라는 의견도 있다

데이터 웨어하우스

    • 데이터 웨어하우스는 1980년대 중반 IBM이 자사 하드웨어를 판매하기 위해 처음으로 도입했던 개념으로, IBM은 인포메이션 웨어하우스(Information Warehouse)라는 용어를 사용하였다.
    • 이후 이 개념은 많은 하드웨어와 소프트웨어 및 툴 공급 업체들에 의해 이론적, 현실적으로 성장하였으며, 1980년대 후반 인몬(Inmon)이 데이터 접근 전략으로 데이터 웨어하우스 개념을 사용함으로써 많은 관심을 모으기 시작했다.
    • 데이터 웨어하우스는 원시 데이터 계층, 데이터 웨어하우스 계층, 클라이언트 계층으로 구성되며 데이터의 추출, 저장, 조회 등의 활동을 한다.
    • 데이터 웨어하우스의 특징을 보면,
      • 운영 시스템은 조직 운영에 필요한 재고관리와 회계정보, 영업 시스템과 같은 특화된 기능을 지원하지만
      • 데이터 웨어하우스는 고객과 제품, 회계와 같은 주제를 중심으로 데이터를 구축한다.
      • 운영 시스템의 데이터는 종종 코딩 방법과 형식에 일관성이 없을 때가 있으나,
      • 데이터 웨어하우스의 모든 데이터는 일관성을 유지하여 데이터 호환이나 이식에 문제가 없다. 운영 시스템은 접근하는 시점을 정확히 유지하는 반면 데이터 웨어하우스에 저장된 데이터는 특정 시점에 데이터를 정확하게 유지하면서 동시에 장기적으로 유지될 수도 있다.
      • 운영 시스템은 데이터는 레코드 단위로 계속 수정된다.
      • 그러나 데이터 웨어하우스의 데이터는 대량으로 로딩되어 나중에 사용된다. 현존하는 데이터는 수정하지 않으므로 일관성이 유지된다.

이맥스 팁

1) C-x, r, m 북마크 표시해두기
2) C-x, r, l 표시해둔 북마크로 가기
3) C-x, r, b 표시해 둔 북마크로 가기
4) yum -update 이건 리눅스인데, 중요한 것.
5) C-x, [스페이스바] -> 이거 아무래도 브레이크(gdb)걸어놓는 것 같은데.
6) M-';' 소스코드가 있을때 주석 삽입. 자동으로 주석끼리의 줄도 맞춰줌.
7) M-q 주석이 지정된 폭을 넘어가면 알아서 칸을 맞춰준다.
8) C-space 블록 지정, 2번 하면 마킹까지 된다
9) C-u M-';' 현재줄에서 시작하는 주석 삭제.
             블럭이 지정되어 있으면 블럭 전체 주석 처리함.

이맥스 섭버젼(svn) 팁

1) svn - failed : Valid UTF-8 DATA란 메세지가 나온다면
   export lang의 설정을 해야한다. 현재 .bashrc로 alias 설정을 했기때문에
   이맥스작업이라면 UTF-8이 아닌, euc-KR로 그 외에 작업은 가급적 UTF-8로 작업을 해야한다.

ECM-core 배웠던 명령어 나열

1) ./ecmctl -p 908 -e -n clarysage -c kimsh -C start
1.5) 근데 -p에서 908은 디폴트 값이므로 굳이 설정을 안해줘도 된다. 단 908이 아닌 다른 포트로 지정하고 싶으면 -p 숫자를 써야한다.
2) CFLAGS="-g -Wall" ./configure --enable-debug --prefix=/usr/clx
2.5) 단, UTS-modules 에서는, --disable-hadoop이라고 적어야한다.
3) edbd
4) ps -C ebcd (이건 근데 ps, kill같은건 리눅스 커맨드와 관련 깊다. man 으로 공부하자)
5) kill -usr1 (근데 이건 리눅스 커맨드 창에서 실현)
6) 갑자기 makefile하는 도중, 이상한 현상이 발생하면
 - 사용환경이 다를 경우 aclocal, autoconf, automake를 실행하자.
 - 사용자를 root로 바꾼다.
 - autoreconf를 실행한다. (아마 이런 경고문이 뜰 것이다.)
7) pkill -usr1 그리고 프로세스 이름

IIS

  • 인터넷 인포메이션 서버의 약자, 서버 프로그램
  • ftp, www에 대해선 어느정도 알고 있으니.
  • smtp는 아웃룩
  • nntp역시 아웃룩인데, 토론그룹에 관한 것.
  • MMC는 관리자(파일관리자 같은 것)

IIS 의 요청 처리 rpm

  • Request Processing Models
  • 사용자 요청처리라고 정의할 수 있겠다.
  • 중간에 웹서버에서 로드한 ISAPI 모듈이 더 많을 경우 처리단계가 더 많아지게 된다.
  • 최근 iis 6에선 요청처리를 별도의 응용 프로그램풀(워커프로세스)처리하여 웹서버의 안정성을 높인다고 한다.
  • 암튼, 해당 지원하는 php라던지 asp같은 언어라면 동적컨텐츠라고 판단 캐시(일종의 'api보관소'인듯)를 탐색후 리턴
  • Request 객체는 클라이언트 -> 서버로 작용하는 여러가지 데이터
  • 값을 가져올 때 클라이언트에 있는 걸 서버쪽에 적용할 때의 객체
test = Request.form("test")
test = Request.cookie("test")
  • 그러니까 사용자의 정보를 서버쪽에 인식할 때의 정보를 통틀어 Request객체?

참고사항

  • 6.0강력한 보안 높은 안정성 및 성능향상을 위한 엔지니어링 릴리스
  • 7.0플랫폼릴리스? 이전버전의 고품질 기본 웹 서버코어를 핵심적인 최신 배포 및 관리 시나리오 지원을 갖춘 모듈 방식의

확장성 높은 플랫폼으로 전환하기 위한 릴리스

취소화함으로써 얻어집니다.

- 새로운 아키텍처를 도입하게 된 몇 가지 이유가 있습니다. 
 첫번째는 서버 동작에 대한 권한을 사람들에게 주는 겁니다. 
  모듈 방식의 디자인을 통해서 사람들은 어떤 모듈을 사용할지, 
모듈을 읽어들이는 순서, 누가 어떤 모듈을 읽어들일 수있는지를 제거할 수 있습니다. 
사용자가 만든 모듈들은 IIS7의 요청처리 파이프라인(request-handling pipeline)을 통해서 로드되기 때문에 
인증 같은 내부 이벤트를 가로채는(hook up) 모듈을 네이티브 언어나 관리형 언어로 작성할 수 있습니다. 
이를 통해 개발자들은 보다 쉽게 IIS7의 기능을 수정하거나 확장할 수 있습니다.
 따라서, 사람들은 새로운 기능을 발표하기 위해 IIS 팀에 의존할 필요가 없으며,
 IIS7에 직접 추가할 수 있는 모듈을 작성하기만 하면 됩니다. 확장성은 모듈에만 한정된 것은 아닙니다.
 예를 들어, 스키마, 사용자 인터페이스, 응용프로그램이 보고하는 추적 이벤트(tracing events)를 
 포함한 IIS7의 거의 모든 부분이 모듈로 되어 있으며 확장할 수 있습니다.
-
부서별 위키