2009의 게시물 표시

7전 8기~

1단계 마음을 다스리자. 심리적 기복을 없에는것이 중요하다. 2단계 포기와 선택 하는 법을 배워야 한다. 인간이 가지고 있는 자원은 한계가 있다. 모두 다 하는것보다 다른것을 포기하고 하나에 열중하는 법 3단계 기다림이란(태만과 긴장) 4단계 1년을 보는 안목과 10년을 보는 안목. 5단계 감사하는 마음

이 엄청 떨어지는 주의 집중력은 몬가요?

이미지

원격관리 (관리회선, 시리얼 콘솔, IPMI)

원격 로그인 네트워크 장애대비 관리회선 : 상용회선이나 라우터의 장애시에도 원격관리를 가능하게 하기 위해서 다른 계통의 경로를 마련하는 회선 스위치 장애 대비 시리얼 콘솔 시리얼 콘솔의 실현 (cu, kermit, minicom) - BIOS 서버 머신에 탑재된 BIOS라면 콘솔 리다이렉션 이라는 기능을 지니고 있다. 이것은 머신 기동시에 BIOS가 출력하는 메시지나 BIOS의 설정화면을 지정된 시리얼 인터페이스로 출력하는 기능이다. - 부트로더 lilo나 SYSLINUX, GRUB 등의 일반적인 부트로더는 시리얼 콘솔에 대응하고 있다. 설정하면 통상의 콘솔과 마찬가지로 시리얼 콘솔을 통해 부트로더 제어화면에 액세스할 수 있다. - OS 대부분의 유닉스 계열 OS는 OS나 부팅시에 실행되는 초기화 스크립트가 출력하는 메시지를 시리얼 콘솔로 출력할 수 있다. 리눅스의 경우라면 커널의 파라미터로, 디폴트 콘솔로서 시리얼 인터페이스를 지정한다. - getty 유닉스 계열 OS에서는 콘솔로부터의 로그인은 getty라고 하는 프로그램이 처리한다. 시리얼 콘솔로부터의 로그인에도 getty를 사용한다. IPMI(Intelligent Platform Management Interface) 소프트웨어를 이용해서 머신의 전원을 제어하거나 상태를 확인하기 위한 규격이다. IPMI에서는 로컬 머신에서는 물론, 네트워크상의 다른 머신으로부터도 이러한 기능에 액세스 할수 있다. 웹 서버 로그관리 웹 서버 로그 집약, 수집 집약과 수집 집약: 웹서버가 출력하는 로그를 항상 전송해서 한곳으로 모으는 것이다. - 목적: 그 순간순간의 상황을 파악하기 위해서이다. 수집: 각 서버상에 출력된 로그를 정기적으로 모아서 저장하는 것을 말한다. - 목적: 집계와 분석, 그리고 보전이다. 로그 집약 (syslog, syslog-ng) syslog를 이용한 로그 집약 syslog-ng 로그수집 1. 로그의 보존과 분석 아파치 로그의 회전 cron과 rotatelogs cron을 사용하여 로그파일을 리네

네트워크 부트의 활용 PXE, initramfs

네트워크 부트란: 머신이 부팅하기 위해 필요한 데이터나 파일을 네트워크로부터 얻어서 부팅하는 것이다. 네트워크 부트의 특징과 이점 네트워크 부트를 사용하면 머신이 기동할 때 로컬의 2차 기억장치가 필요없게 된다. initramfs: 커널이 루트 파일시스템을 마운트하고 init을 실행하기 전에 커널의 외부에서 밖에 수행할 수 없는 초기화를 하기 위한 구조다. 부팅할 머신상에 아무것도 사전에 준비해두지 않아도 파일서버상에 다양한 시스템용 커널과 initramfs를 준비해두면 어떤 머신에서라도 임의의 시스템으로서 기동할 수 있다는 것을 의미한다. Diskless 시스템을 구성하는것도 가능하다. 네트워크 부트의 동작 PXE PXE 부트의 흐름 1. 통상의 BIOS가 초기화 작업을 한다. 이 과정에서 확장 BIOS를 스캔해서 PEX BIOS가 등록된다. 2. 부팅 디바이스로 PXE가 선택되면 PXE BIOS로 제어를 넘긴다. 3. 제어를 넘겨받은 PXE BIOS는 DHCP를 사용해서 IP주소 등의 정보를 얻은 후 IP 통신을 준비한다. 4. 다음으로 PXE BIOS는 파일서버로부터 부트로더를 얻어서 실행한 후 제어를 넘긴다. 파일 서버 주소와 부트로더의 파일명은 3.에서 DHCP서버로 부터 알게 된다. 5. 부트로더는 실행되면 4.와 동일한 파일서버부터 부트로더 자신의 설정파일을 얻는다. 파일서버의 주소는 PXE BIOS로 부터 부트로더로 통지된다. 6. 마찬가지로 부트로더는 실행할 커널과, 설정파일에 지정되어 있다면 initramfs의 파일을 파일서버로부터 얻어서 메모리상에 위치시킨 후 커널에 제어를 넘긴다. - PXE부트를 지원하는 NIC 최신 서버 머신에 탑재되어 있는 NIC라면 대부분 지원하고 있다. - DHCP 서버 PXE 부트에 필요한 정보를 제공하고 있다. - TFTP 서버 PXE BIOS에 필요한 파일을 얻기 위해 사용한다. atftpd등의 TSIZE 옵션을 지원하고 있는 것으로 사용할 필요가 있다. - PXE에 맞는 부트로더 PXE 부트를 지원하는 것을

데몬의 가동관리 daemontools

데몬이 비정상 종료했을 경우 daemontools :데몬 프로세스의 시작, 종료, 재시작, 프로세스가 죽었을 경우의 자동시작과 같은 데몬 프로세스 관리를 수행하기 위한 프로그램군이다. deamontools를 사용하는 이유 1. 프로세스가 죽었을 경우에 자동적으로 재시작해준다. 2. 손쉽게 데몬을 만들 수 있다.  - 제어터미널에서 분리한다.  - Current Workin Directory(cwd)를 루트(/)로 변경한다.  - 표준입출력 /dev/null(혹은 기타 파일)로 리다이렉트 한다. 데몬이 되기 위한 조건 foreground에서 동작하기 데몬의 관리방법 데몬의 신규작성 - /etc/deamon -> 데몬들을 위치시킬 디렉토리 - /etc/daemon/xxxd -> xxxd를 위한 디렉토리 샘플코드 #! /bin/sh exec 2>&1 exec \   setuidgid USERNAME \   env - -PATH="/usr/local/bin:$PATH \   envdir ./env \  /usr/local/bin/xxxd line 2: 표준에러출력을 표준출력으로 리다이렉트한다. line 3: 이 프로세스를 이후에 오는 명령으로 대체한다. line 4: 유효 사용자를 변경한다. line 5: 환경변수를 초기화하고 필요한 환경변수를 설정한다. line 6: env라는 디렉토리에 파일이 있을 경우는 이를 참조해서 환경변수를 설정한다. line 7: 데몬프로그램을 실행한다. 시그널 전송  svc의 옵션  시그널  -p  STOP  -c  CONT  -h  HUP  -a  ALRM  -i  INT  -t  TERM  -k  KILL keepalived 지접제작한 감시 스크립트 daemontools의 팁 의존하는 서비스의 시작순서 제어, 편리한 셸 함수 의존하는 서비스의 시작순서 제어 편리한 셸함수 - daemonup - daemondown - daemonstat

서버 리소스 모니터링(Ganglia)

서버 리소스 모니터링 모니터링의 목정 - CPU 사용률 - 메모리 사용률 - Load Average - 네트워크 트래픽 모니터링 툴 Munin http://munin.projects.linpro.no/ Cacti http://www.cacti.net/ Centreaon http://www.centreon.com/ Monitorix http://www.monitorix.org/ collectd http://collectd.org/ Ganglia 대량의 노드에 적합한 그래프화 툴 아파치 프로세스의 상태 그래프화  기호  의미  _  접속을 기다리고 있음  S  기동중  R  요청을 일고 있음  W  응답  K  Keep-Alive요청을 위해 대기하고 있음  D  DNS질의 중  C  접속 끊는 중  L  로그 쓰는 중  G  종료 처리중  I  idle worker를 정리중  .  프로세스 부재인 빈 슬롯 Ganglia에 그래프를 추가하는 방법 복합적인 그래프 추가 - conf.php, my-conf.php :conf.php에서 my-conf.php라는 이름의 파일을 include하도록 해서, 이번 변경에 관한 설정 항목을 my-conf.php에 작성하도록 하고 있다. - functions.php run_apache라는 함수를 추가하고 있다. 이것은 매개변수로 넘겨진 호스트로 아파치 그래프를 그릴지 여부를 boolean으로 변환하는 것이다. 이번에는 단순히 호스트명을 보고 판별하도록 하고 있다. -graph.php 행수로는 가장 많이 변경해야 하는 것이 graph.php지만 어렵지는 않다. RRDtool의 문법으로 그래프를 그리도록 지시할 뿐으로, 읽어드리는 데이터가 많으므로 행수가 많아진 것 뿐이다. -templates/default/host_view.tpl, host_view.php 호스트 뷰의 화면을 커스터마이징하고 있다. 템플릿에 functional이라는 레이블로 삽입 포인트를 추가해서 host_view.php에서는 run_apache가 참인 경우에 아파치

아파치 튜닝

아파치의 병렬처리와 MPM 병렬처리의 구현모델 - 프로세스를 여러 개 생성해서 병렬처리를 실현하는 멀티프로세스 모델 - 프로세스가 아니라 보다 경량의 실행단위인 쓰레드를 사용하는 멀티쓰레드 모델 - 입출력을 감시해서 이벤트가 발생하는 타이밍에 처리를 전환하는, 시그널 쓰레드로 병렬처리를 수행하는 이벤트 구동 모델 MPM(Multi Processing Module) http://httpd.apache.org/docs/2.2/ko/mod/ prefork: 미리 복수의 프로세스를 생성해서 클라이언트의 접속에 대비하는 멀티프로세스 모델 <안전지향, 후방호환성이 높은 MPM> worker: 멀티쓰레드와 멀티프로세스의 하이브리드형 <확장성이 높은 MPM> - prefork를 worker로 변경하더라도 하나의 클라이언트에 대한 응답시간이 고속화되는 것은 아니다. - prefork를 worker로 변경하더라도 메모리가 충분하다면 동시에 처리할 수 있는 접속 수는 변하지 않는다. - prefork를 worker로 변경하더라도 대량의 컨텍스트 스위치가 없다면(동시에 병렬적으로 대량의 액세스가 없다면)효과는 크지 않다. - 이용할 수 있는 메모리 용량이 그다ㅏ지 크지 않은 경우나, 메모리 소비량을 줄이고자 할 경우. 이런 경우, 프로세스보다 메모리 소비량이 적은 쓰레드의 이점이 살아난다. - 컨텍스트 스위치 횟수가 많아서 그만큼의 CPU 리소스를 줄이고자 할 경우, 즉 대량의 액세스로 인한 CPU사용률을 줄이고자 할 경우. 프로세스보다 쓰레드 쪽이 컨택스트 스위치 비용은 낮으므로 CPU소비가 줄어든다. httpd.conf 설정 아파치의 안전판 MaxClients prefork의 경우 - ServerLimit: 서버 수 , 이를테면 prefork에서는 프로세스 수의 상한 - MaxClients: 동시에 접속할 수 있는 클라이언트 수의 상한 - MaxRequestsPerChild 카피온 라이트에 의한 메모리 공유는 시간의 경과에 따라 공유율이 하락해갔다. 이를

네트워크의 다중화

L1, L2 구성요소의 다중화 장애발생 포인트 1. LAN  케이블 - 단선이나 커넥터 접속 불량 2. NIC(네트워크 카드) - 링크 업과 다운을 반복 3. 네트워크 스위치 포트 4. 네트워크 스위치 링크의 다중화와 Bonding 드라이버 Bonding 드라이버 - 물리적인 네트워크 카드를 모아서 하나의 논리적인 네트워크 카드로 다룰 수 있도록 한다. 물리NIC 고장 검출 방식 MII감시 - 물리NIC 링크 타운 되면 고장 난 것으로 간주하는 것이다. 이것은 저비용 단시간에 고장여부를 체크 할 수 있지만, 반면 NIC가 링크 업 임에도 통신할 수 없는 상황에는 대응할 수 없다. ARP감시 - ARP 요청을 지정된 머신에 대해 송신해서 응답이 오는지를 시험해서 판정한다. Bonding 드라이버 동작 모드  balance-rr  송신할 패킷마다 사용할 물리 NIC를 전환한다.(라운드로빈)  active-backup  첫 번째 물리 NIC가 사용 가능한 동안에는 그 NIC만 사용한다. 해당NIC가 고장 나면 다음 NIC를 사용한다.  balance-xor  송신처와 목적지 MAC주소를 XOR해서 사용할 물리 NIC를 결정한다.  boadcast  송신 패킷을 복사해서 모든 물리 NIC에 대한 동이한 패킷이 전송된다.  802.3ad  IEEE 802.3ad 프로토콜을 사용해서 스위치와의 사이에서 동적으로 aggregation을 작성한다.  balance-tlb  물리 NIC중에 가장 부하가 낮은 물리 NIC을 선택해서 송신한다. 수신은 특정 물리 NIC을 사용해서 수신한다.  balance-alb  송수신 모두 부하가 낮은 물리 NIC를 사용한다. 스위치의 다중화 STP(Spanning Tree Protocol) 브리지 네트워크를 위한 IEEE 802.1 표준의 하나인 링크 관리 프로토콜. 스패닝 트리 알고리듬(STA)을 사용하여 다중 경로에서 불필요한 경로 발생 시 덧붙임 경로를 제공하여 가장 효율적인 경로를 사용하도록 하게 한다. 두 네트워크 장비에서는 한 번

DNS서버 다중화

DNS서버 다중화 중요성 DNS서버의 장애는 좀처럼 방생하지 않지만, 일단 발생하면 원인이 판명되기까지 시간이 걸린다는 문제가 있다. -주소변환 라이브러리를 이용한 다중화와 성능저하의 위험성 /etc/resolv.conf에 여러 DNS서버를 지정 성능저하의 위험성   -서버팜에서의 DNS 다중화 VRRP를 이용한 부하분산 DNS서버의 부하분산   정리 DNS서버는 눈에 띄지 않는 곳에서 중요한 일을 많이 수행하고 있다. 또한, DNS서버용 소프트웨어는 안정되어 있는 것이 많아서 좀처럼 정지하지 않는다. 이 때문에 DNS서버 장애를 그다지 가정하지 않는 것일지도 모른다. 그러나 DNS서버 장애는 원인이 판명되기까지 시간과 노력이 소요되는 경우가 많으므로, 만약의 경우에 불필요한 수고를 하지 않도록 확실한 대책을 취해두는 것이 좋다.

리버스 프록시 서버

이점 - HTTP 요청의 내용에 따라 시스템이 동작 제어(L7 스위치가 하는 역할과 비슷하다.) 클라이언트의 IP주소를 보고 특정 IP주소만 서버로의 접속을 허가한다. 클라이언트의 User-Agent를 보고 임의의 User-Agent로부터의 요청을 특별한 웹 서버로 접속되도록 유도한다. /hoge/foo/bar라는 URL을 /hoge?foo=bar라는 URL로 변경해서 웹 서버로 요청한다.   - 시스템 전체의 메모리 사용효율 향상 - 웹 서버가 응답하는 데이터의 버퍼링 역할 HTTP의 Keep-Alive: 최초 요청시에 연결된 서버와의 접속을 해당 요청이 종료한 후에도 접속을 끊지 않고 유지한 채로 이어지는 요청에 해당 접속을 계속 사용함으로써, 하나의 접속으로 다수의 요청을 처리할 수 있다.   - 아파치 모듈을 이용한 처리의 제어

서버/인프라 구축 입문(2)

keepalived.conf 각 파라미터의 의미  state MASTER  keepalived 기동시 MASTER로서 기동할지 BACKUP으로 기동할지를 지정한다.  interface eth0  VRRP패킷을 송신하거나 수실할 인터페이스를 지정한다.  garp_master_delay 5  마스터 상태로 변경된 후에 gratuitous ARP를 재송신하기까지 대기시간을 초단위로 지정한다.  virtual_router_id 100  가상 라우터 ID.VRRP 인스턴스 마다 고유한 값을 지정한다 지정할 수 있는 범위는 0부터 255다.  priority 101  VRRP의 우선순위값. 마스터를 선출할 때 이 값이 큰 것이 우선한다.  advert_int 1  VRRP패킷 송신 간격. 초단위로 지정한다.  virtual_ipaddress  VIP(가상주소). 형식은 다음과 같고 여러 개 지정할 수 도 있다. <IPADDR>/<MASK>dev<STRIng>

서버/인프라 구축 입문

다중화: 장애가 발생해도 예비 운용장비로 시스템의 기능을 계속할 수 있도고 하는 것을 말한다.   다중화의 분질 1. 장애를 상정한다. 2. 장애에 대비해서 예비 운용장비를 준비한다. 3. 장애가 발생했을 때 예비 운용장비로 교체할 수 있는 운용체제를 정비한다.   Hot Standby(상시 대기 방식) <-> Cold Standby(수동 예비 방식)   장애극복 현재 운용 장비에 장개가 발생했을 때 자동적으로 예비 운용장비로 처리를 인계하는 것을 장애극복 이라고 한다.   장애 검출 ICMP 감시(L3) ICMP 감시는 ICMP의 echo 요청을 보내서 응답이 돌아오는지를 체크한다. 가장 간단하고 가벼운 헬스 체크지만, 웹서비스가 다운될 경우(아파지가 중지한 경우 등)은 감지할 수 없다. 포트 감시(L4) 포트 감시는 TCP로 접속을 시험해서 접속할 수 있는지 여부를 체크한다. 웹서비스가 다운된 것은 감지할 수 있지만, 과부하 상태로 응답할 수 없다거나 에러를 반환하는 것은 감지 할수 있다. 서비스 감시(L7) 실제로 HTTP 요청등을 보내서 정상적인 응답이 돌아오는지를 체크한다. 대부분의 이상을 감지할 수 있지만 경우에 따라서는 서버에 부하를 유발할 수도 있다.   부하분산 여러 대의 서버에 처리를 분산시켜 사이트 전체의 확장성을 향상시키는 방법   웹서버 다중화 DNS 라운드 로빈 문제점 1.서버의 수만큼 글로벌 주소가 필요 2.균등하게 분산되는 것이 아님 3.서버가 다운돼도 감지하지 못해   로드벨런서 하나의 IP주소에 대해 요청을 복수의 서버로 분산할 수 있다.(IPVS) L4스위치: 트랜스포트 계층까지의 정보를 분석, 포트번호에 따라 분산대상 서버를 지정할수 있다.(IPVS) L7스위치: 애플리케이션 계층까지의 정보를 분석, 클라이언트로 부터 요청된 URL에 따라 분산서버를 지정할수 있다.   IPVS 스케줄링    명칭  동작  rr(round-robin)  리얼서버를 처음

비대칭 암호에 대해서~~

암호키를 공유하지 않은 상태에서 어떻게 암호를 주고 받을수 있을까? 비대칭 암호..

GET POST에 대하여

GET은 무언가를 가져오는 것, POST는 무언가를 수행하는 것이다.

개발을 하기 전에..

지금 추가하려는 기술이 이 애플리케이션의 사용 편의성을 향상시키는 것인가, 아니면 그저 내 이력서에 한줄 더 써넣기 위한 것인가?   지금 추가하려는 것 때문에 기존 UI의 오랜 관습에 익숙한 사용자들이 충격을 받지 않는가?   만일 사용자들이 충격을 받는다면, 그 때문에 사용자들의 겪는 기존 관습과의 불협화음이 과연 가치 있는 것인가?     -실전 AJAX-

데이터 베이스 공부중

새로쓴 대용량 데이터베이스 솔루션을 보고 있네요..   아 졸려~~

SQLite

resource sqlite_open (string filenam[,int mode[,string &error_message]]) SQLite 데이터베이스에 연결한다. 만일 지정한 데이터베이스 파일이 존재하지 않으면 해당 파일을 생성한다.   void sqlite_close(recsource dbhandle) 열려진 SQLite 데이터베이스에 대한 연결을 해제한다.   resource sqlite_query(resource dbhandle,string query[,int result_type]) 주어진 SQL문을 실행한다.   bool sqlite_exec(resource dbhandle,string query) 결과 레코드셋을 반환하지 않는 SQL문을 실행한다.   array splite_fetch_array(resource result,[int result_type[,bool decode_binary]]) 결과 레코드셋에서 한 행(레코드)의 데이터를 배열로 가져온다. result_type SQLITE_ASSOC: 해당 레코드의 필드명과 데이터를 키와 값으로 갖는 연관배열을 반환한다. SQLITE_NUM: 해당 레코드의 필드값을 원소로 갖는 스칼라 배열을 반환한다. SQLITE_BOTH: 연관 배열과 스칼라 배열을 모두 반환한다.   bool sqlite_has_more(resouce result) 주어진 결과 레코드셋에서 더 가져올 수 있는 레코드가 있는지 여부를 반환한다.   bool sqlite_has_prev(resource result) 결과 레코드셋에서 포인터가 가리키는 레코드의 이전 레코드가 존재하는지 여부를 반환한다.   bool sqlite_next(resource result) 결과 레코드셋에서 포인터를 현재의 다음위치로 이동시킨다.   bool sqlite_prev(resource result) 결과 레코드셋에서 포인터를 현재의

SQLite의 특징

1.SQLite는 텍스트 파일 기반의 데이터베이스이다. 2.파일 시스템에 의한 방법 외에는 데이터베이스에 대한 접근을 제어할 수 있는 방법이 없다. 3.다른서버로의 이식성이 뛰어나다. 4.표준SQL 규약인 SQL92의 거의 대부분을 지원한다. 5.기존의 전통적인 데이터베이스 시스템에 비해 처리 속도가 빠르다. 6.트래픽이 많이 않은 중소규모의 사이트에서 주로 검색을 위한 프로그램을 개발할 때 적합하다. 7.PHP5를 설치할때 기본 제공되므로 별도로 라이브러리나 서버 프로그램을 설치할 필요가 없다.   -옛날에 임베디드 DB를 이걸로 썼는데 완전 삽질했던 기억이 나는 DB-

Ajax의 주요 특징

1. 소규모 서버 측 이벤트: 이제 웹 애플리게이션은 서버에 소규모 데이터만 요청하고 필요한 정보를 받아오고 DOM 트리를 조작하여 페이지 모양을 변경할 수 있다. 전체 페이지를 새로 받아올 필요는 없다. 2. 비동기 방식: 서버로 요청 보내는 일이 브라우저를 멈추게 만들지 않는다. 요청을 처리하는 동안 사용자는 애플리케이션의 다른 부분을 계속 사용할 수 있다. 보통 UI를 업데이트함으로써 사용자에게 서버로 요청을 보내는 것을 알린다. 3. 언제든지: 최신 부라우저는 운영체제가 제공하는 사용자 이벤트와 동등한 수준의 이벤트를 잡아낼 수 있다. 마우스 클릭, 마우스 오버, 키 눌림 등. 어떠한 사용자 이벤트도 비동기 요청을 만들어 낼 수 있다.   -실전 AJAX-

simpleXML API

 함수명    object simplexml_load_string(string data[,string class_name[,int options]])    object simplexml_load_file(string filename[,string class_name[,int options]])    SimpleXMLElement simple_element->children([string nsperfix])    attribute()    array SimpleXMLElement->xpath(string path)    string SimpleXMLElement->asXML(void)    SimpleXMLElement simplexml_import_dom(DOMNode node[,string class_name])    DOMElement dom_import_simplexml(SimpleXmlElement node)  

뒤죽 박죽~~

늘 생각하는거지만 내 머리속엔 모가 들었을까?? 항상 이 생각 저 생각만 한다. 정리되지 않은 생각들이 이리저리 떠다닌다.

이기적 유전자에 대하여

이기적 유전자를 읽고.. 현재 읽고 있는 책 중에 하나이다. 생명체에 대한 다른 관점으로 나를 이끌어 주는 한권의 도서이다.. 물론 내 전공이 생물학이 아닌여서 때론 잘 이해가 안가는 용어가 많이 있지만 그 내용이나 사상은 참 참신하다.. 때론 이 책이 1~20년 이전의 책이라는대 놀라곤한다. 생명체는 자신의 최대 이익을 위하여 진화를 한다.

DOMDocument 클래스 메소드

 메소드 이름  설명  loadXML() 문자열 변수를 통해서 XML문서를 불러온다.  saveXML() DOM트리를 XML문서로 변환한다.  load() 파일로부터 XML 문서를 불러온다.  save() DOM 트리를 XML 파일로 저장한다.  validate() DTD에 따라 XML문서의 유효성 여부를 검증한다.  schemaValidate() XML 스키마에 따라 XML 문서의 유효성을 검증한다.  schemaValidateSource() XML 스키마에 따라 XML 문서의 유효성을 검증한다.  createElement() 새로운 앨리먼트 노드를 생성한다.  createTextNode() 새로운 텍스트 노드를 생성한다.  createAttribute() 새로운 속성 노드를 생성한다.  createElementNS() 네임스페이스 영역을 갖는 앨리먼트 노드를 생성한다.  createAttributeNS() 네임스페이스 영역을 갖는 속성 노드를 생성한다.  createComment() 새로운 주석 노드를 생성한다.  createCDATASection() 새로운 CDATA섹션 노드를 생성한다.  getElementsByTagName() 지정한 태그명을 앨리먼트의 노드 리스트를 반환한다.  getElementsByTagNameNS() 특정한 네임스페이스 영역에서 지정한 태그명을 갖는 앨리먼트의 노드 리스트를 반환한다.  importNode XML 문서에 붙일 특정 노드를 가져온다.

xml 문서 파싱중 호출 가능한 핸들러

 핸들러 설정 함수 설정 가능한 이벤트 핸들러  xml_set_element_handler xml 파서가 시작 태크 및 마침태그를 발견했을때 호출되는 핸들러  xml_set_character_data_handler 시작 태그 및 마침 태그 사이에 존재하는 문서 데이터를 발견했을 때 호출되는 핸들러  xml_set_processing_instruction_handler 처리지시문을 발견했을 때 호출되는 핸들러  xml_set_external_entity_ref_handler 파싱 가능한 외부 엔티티 참조문을 발견했을 때 호출되는 핸들러  xml_set_unparsed_entity_decl_handler 파싱 불가능한 외부 엔티티 선언문을 발견했을때 호출되는 핸들러  xml_set_notation_decl_handler  노테이션 선언문을 발견했을 때 호출되는 핸들러 -이승혁의 PHP5 웹프로그래밍 가이드-에서

Ajax에 대하여 - 자바스크립트 완벽가이드

Ajax 애플리케이션을 만들어내는 데에 있어 가장 큰 어려움은 기술적인 문제가 아니다. Ajax의 핵심 기술은 이미 충분히 성숙해 있고 안정적이며 널리 공감대가 형성되어 있다. 그 어려움이란 바로 이러한 애플리케이션을 설계할 사람들에게 있다. 그들은 웹의 한계나 제한에 대해서 지금까지 알고 있다고 생각해왔던 것들을 잊어야 한다. 그 대신, 이제 더 넓고 풍부한 가능성에 대해 상상의 나래를 펴쳐야 할 때다. 점점 더 재미 있어지려 한다. -자바스크립트 완벽가이드-

미쳐아 미친다를 보고

지금 보고 있는 책이에요... 조선시대의 괴짜들에 관한 책입니다.. 참 참신하고 좋은거 같아서 추천합니다.

코드소스 재 발행입니다..

<div id='tp_widget_title_[##_article_rep_id_##]' style="display:none">[##_article_rep_title_##]</div> <script type='text/javascript'> var _title=null; _title=encodeURIComponent(document.getElementById('tp_widget_title_[##_article_rep_id_##]').innerText); if(_title=="undefined"){_title=encodeURIComponent(document.getElementById('tp_widget_title_[##_article_rep_id_##]').textContent);} //_title=_title.replace(new RegExp("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>","gim"), ""); document.write("<scr"+"ipt type='text/javascript' src='http://tocpic.com/a/widget/loader?&_height=116&_width=400&a_id=[##_article_rep_id_##]&a_title="+escape(_title)+"'></scr"+"ipt>");</script> 죄송합니다. 타이틀 때문에 많은 버그가 발생하여 부득히 하게 코드를 수정하게 되었습니다.

위젯 소스 입니다.

<script type='text/javascript'> var _title = '[##_article_rep_title_##]'; _title=_title.replace(new RegExp("<(/)?([a-zA-Z]*)( \\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>","gim "), ""); document.write("<scr"+"ipt type='text/javascript' src='http://rommor.com:8765/a/widget/loader?&_height=116&_width=400&a_id=[##_article_rep_id_##]&a_title="+escape(_title)+"'></scr"+"ipt>");</script>

넛지

넛지라는 책 보는데.. 뒷부분은 좀 구리내요 팔꿈치로 사람을 콕콕 찌르다라는 어원에서 시작한 이책.. 세상을 움직이는것을 기록하고 있다. 물론 사람을 움직이려면 특정한 인센티브가 있어야 한다고 생각한다. 넛지는 이를 통해 같지 않은 인센티브를 주면서 같은 행동을 하도록 한다. 마치 두화합물 결합에 있어서 특정한 에너지 이상의 에너지가 필요하지만 특별한 화합물 즉 촉매를 사용하면 이 특정 에너지를 변화 시킬수 있다. 넛지란 바로 이 촉매에 대해 배우는것 같다. 나에게 있어서 참 의미 있는 책중에 하나로 기억될 것 같다.

멍!!

멍~~ 인생이 그냥 멍하다~~ 딴생각만 하는거 같어~