RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'2006/09'에 해당되는 글 206
Linux/SHELL  2006/09/29 15:06

2 부 쉘 프로그래밍

1장. 쉘 내장 명령들
2장. 정규식과 유틸리티들
3장. 쉘 프로그래밍 문법

1장.       쉘 내장 명령들

학습목표 : 쉘 내장 명령들을 이해하고 활용한다

1. 쉘 내장 명령들


1) export Command

Command: export [ name [ =value ] ] ...
Function: 지정된 names을 이후에 실행될 명령어의 환경에 자동적으로 넣기위해 사용한다.
Examples:

$ AA=100 <- 현재 쉘에서 변수 AA에 100을 할당한다
$ echo $AA <- 현재 쉘에서 변수 AA의 값을 출력한다
100
$ ksh <- 자식 쉘을 생성한다
$ echo $AA
    <- 변수 AA의 값을 출력한다. 아무값도 출력하지 않는다

$ exit <- 다시 현재 쉘로 돌아 온다
$ export AA <- AA 변수를 전역 변수로 설정한다
$ ksh <- 자식 쉘을 생성한다
$ echo $AA <- 변수 AA의 값을 출력한다
100 <- 변수 AA의 값을 출력한다

$

2) readonly Command

Command: readonly [ name [ =value ] ] ...
Function: 지정하는 변수를 읽기 전용 변수로 설정하는 명령이다. 그 변수에 값을 배정하려고 시도한다면 쉘은 에러메세지를 출력한다. readonly변수는 사용자가 변수의 값을 너무 많이 쓰지 않도록 하는데 유용하다. 또한 쉘 프로그램을 사용하는 사람들이 특수변수(예를 들면 HOME 디렉토리나 PATH)의 값을 바꿀수 없도록 하는데도 유용하며 판독 전용의 성질이 서브쉘로 전달된다. 인수가 없는 readonly는 판독 전용 변수들의 리스트를 출력한다.

Examples:

$ DB=/usr/dgk/database
$ readonly DB
$ DB=foo
DB: is read-only
$ echo $DB
/usr/dgk/database
$


3) unset Command

Command: unset [ -f ] name ...
Function: 각각 name에 대해서 해당하는 변수 또는 함수를 제거한다. 변수 PATH, PS1, PS2, MAILCHECK, IFS와 같은 환경변수에 대해 unset을 실행할 수 없다.

Examples:
$ a=10
$ set
HOME=/home/kys
:
:
TERM=vt100
PS1=$
PS2=>
:
a=10
$ unset a
$


4) set Command

command: set -o korn_shell_mode
Function: 사용자 환경을 설정하는 명령이다
Options: korn_shell_mode

allexport   선언되는 모든 변수는 자동적으로 export 된다
bgnice      우선권이 낮은 상태에서 백그라운드 작업 실행
errexit     에러가 발생하면 exit가 실행된다
ignoreoof   쉘을 종료하기 위해 반드시 exit명령을 실행한다
markdirs    디렉토리명들은 / 로 표시된다
noclobber   출력방향의 재지정시 기존 파일의 존재 여부를 체크하고난 뒤 실행하도록 지정
noexec      명령어를 읽어 들이지만 실행 하지는 않는다
nounset     변수값 치환시에 설정되어 있지 않은 변수는 오류로 취급한다
trackall    실행하는 명령어들을 alias table에 등록한다


5) eval Command

Command: eval [ arg ... ]
Function: 쉘이 명령어 라인을 한번 해석한 후 대치와 확장을 끝내고 나서 명령어 라인을 한번 더 해석하도록할 때 사용한다.

Examples:
$ x = 'abc def'
$ y = '$x'
$ echo $y
$x
$ eval echo $y
abc def


6) exec Command

Command: exec [ command ] [ arg ... ]
Function: exec명령을 실행하면, 그 쉘이 지시된 인수들을 가진 지정된 명령을 실행한다. 보통 명령을 실행하면 쉘은 새로운 프로세스번호를 할당받아서 실행하지만 exec는 실행시키는 쉘의 프로세스번호를 지정한 명령에게 넘겨주므로 실행이 종료되면 명령어를 실행시켰던 쉘로 돌아가지 않는다.

Examples:
$ exec /usr/lbin/ksh <-- Replace current process with ksh
$
$ exec < datafile <-- Reassign stndard input to datafile $ exec 2> /tmp/errlog
<-- 표준에러출력전환 : 모든 에러출력은 /tmp/errlog로
$ exec ls <-- ls를 수행하고 나면 logout


7) trap Command

Command: trap [ action ] [ condition ... ]
Function: 이 명령은 셀이 signals의 신호 중 하나를 수신할 때마다 명령을 실행하도록 한다. 인수가 없는 trap은 현재 설정되어 있는 trap 의 리스트를 출력한다.

trap "" signals
signals에 있는 신호들을 수신하였을 때 그 신호는 무시된다.

trap signals
signals에 리스트 된 각 신호들의 처리과정이 디폴트 동작으로 고정된다.

Examples:
$ trap <-- 모든 trap과 action 을 출력한다
$ trap '$HOME/.logout' EXIT
<- 쉘이 EXIT 신호를 수신하여 끝나게 되면 $HOME 디렉토리에

$HOME 있는 .logout을 실행한다.
$ trap "echo hangup >> $ERRFILE; exit " 2
<- interrupt 신호가 수신되면 hangup를 지정한 파일에 출력하고 현행 프로세스를 종료한다

$ trap "rm $TMPFILE; exit " 1 2 15
$ trap "" 2
$ trap INT QUIT TERM EXIT
-> INT QUIT TERM EXIT 의 trap을 unset한다. 각 신호의 디폴트 action으로 재설정한다
$ trap "echo $count line processed >> $LOGFILE; exit" 1 2 15
-> 1, 2, 15 신호중의 하나를 수신 받았을 때 count값을 $LOGFILE가 지정하는 파일로 출력

trap을 위해 사용되는 신호번호

신호              내 용

1     HUP   hangup
2     INT   interrupt
3     QUIT   quit
4     ILL   불법 명령어
5     TRAP   추적 트랩
6     IOT   IOT명령
7     EMT   EMT명령
8     FPE   부동소숫점 예외
9     KILL   종료
10    BUS   버스 에러
11    SEGV   세그먼테이션 위반
12    SYS   시스템 호출에 대한 불량 인수
13    PIPE   기록한것이 없는 파이프상에서 판독
14    ALRM   경보 클락
15    TERM   종료(kill)로부터 소프트웨어 종료신호
16    USR1   사용자 정의 신호1
17    USR2   사용자 정의 신호2
18    CLD   서브 쉘삭제

8) echo Command

Command: echo [ arg ... ]
Function: 나열되는 아규먼트의 값들을 표준 출력으로 출력하는 명령이다. 이스케이프 문자를 사용하여 출력 특수 문자를 지정할 수 있다.

이스케이프 문자:

\a Bell 문자
\b Backspace
\c 종료개행 없는 라인
\f 폼피드(formfeed)
\n Newline
\r Return
\t Tab
\\ Back-slash
\nnn ACSII값이 nnn인 문자
(nnn은 0으로부터 시작하는 0-3자리의 8진수임)

Examples:
$ echo "test escape character \a\a\a\t hear me??\nThanks\n"
test escape character hear me?
Thanks
$

9) print Command

Command: print [ -options [ n ] ] [ arg ... ]
Function: 아규먼트 리스트를 표준 출력응로 출력하는 명령이다.

Options:
-     다음에 오는 모든 옵션들은 무시
-n    라인의 끝에 개행문자를 두지 않음
-r    echo의 이스케이프 시퀀스( \ ) 무시
-R    -n 옵션외에 모든 옵션들을 무시
-s    기록( history )화일에 args를 저장
-un   화일 디스크립터 n에 출력 기록(디폴트 1)
-p    |& 으로 생성된 프로세스에 출력을 기록

Ecamples:
$ print -r 'hi\\\\there'
hi\\\\there
$
$ print 'hi\\\\there'
hi\\there
$
$ print -s "vi echo.c"
vi echo.c
$

10) read command

Command: read -options var1?prompt var2 . . .
Function: 쉘이 표준입력으로 부터 라인을 읽어 들이도록하는 명령이다. 라인에서 계속적으로 공백문자로 구분된 단어들을 변수 vars에 배정하고 라인의 단어보다 변수의 수가 적으면 마지막 변수에 초과한 단어들을 전부 저장한다.

?prompt가 지정되어 있으면 지정한 prompt가 데이타를 읽어 들이기위한 프롬트로 화면이 출력된다. 리스트된 변수명이 없는 경우 읽어들인 데이타는 쉘 내장 변수인 REPLY에 저장된다.

Options:

-r    라인의 연속으로 끝에 붙어있는 \ 을 처리하지 않는다
-s    기록화일(history)에 입력라인을 기록
-un   화일디스크립터 n으로부터 데이타를 읽는다(디폴트 0)
-p    |& 으로 생성된 프로세스 출력으로 읽어들인다.

Examples:
$ read hours mins
10 19
$ echo "$hours:$mins"
10:19
$ read file?"Which file: "
Which file: edit.c
$ echo $file
edit.c
$
$ read -r raw
abc\ndef\t
$ echo $raw
abc\ndef\t
$ read
this is a test
$
$ echo $REPLY
this is a test
$ cat read1
while read -r
do print -r "$REPLY"
done <<!
My Home directory is $HOME
!
$


11) ulimit Command

Command: ulimit [ -acdfmst ] [ n ]
Functions: 쉘에서 실행하는 프로세스에 최대 한계를 정하도록 한다.

Options:
-a    모든 한계를 디스플레이한다.
-c    코어 덤프를 n blocks으로 제한한다.
-d    데이타의 크기를 n Kbytes로 제한한다.
-f    차일드 프로세스에 의해 기록될수 있는 파일의 크기를 n blocks으로 제한한다.
-m    프로세스나 차일드 프로세스가 사용할수 있는 물리적인 메모리 크기를 n Kbytes로 제한한다.
-s    스택영역의 크기를 n Kbytes 로 제한한다.
-t    각 프로세스가 사용할수 있는 시간을 n seconds로 제한한다.

Examples:
$ ulimit -f 1000
$ ulimit -f
1000


12) umask Command

Command: umask [ mask ]
Function: 사용자 화일의 생성시 permission mode를 지정한다. 디렉토리 생성시에는 777(rwxrwxrwx) 에 대한 보수값& mask 을, 화일생성시에는 666(rw-rw-rw-)에 대한 보수값& mask을 permission mode 값으로 설정한다. mask값을 설정하지 않으면 현재 설정된 umask값을 출력한다.

예제:

$ umask 022 # 디렉토리인 경우 755모드로 생성 , 화일인 경우 644모드로 생성
$ umask 055 # 디렉토리인 경우 722모드로 생성 . 화일인 경우 622모드로 생성
$ umask
0055
$


15) '.' , ':' Command

Command: . filename
Function: 지정하는 filename 파일로부터 쉘 스크립트를 읽어서 현행 쉘에서 실행시킨다.

Command: :
Function: 필수적인 널 명령이다. : 명령은 명령이 나타내는 요구를 만족시키기 위해 자주 사용된다.

Examples:
if who | grep dgk > /dev/null
then
:
else
echo "dgk's not logged in"
fi


16) let Command

Command: let arg ...
Function: let명령은 정수 연산 수식을 평가한다. 수식은 상수, 쉘변수, 그리고 연산자들을 포함할 수 있다. let은 let "expression" 또는 (( expression )) 의 형식으로 사용할 수 있다. 마지막 수식이 0값이 아니면 참, 0값이면 거짓이다. 수식안에 공백이 있으면 인용부호로 묶어서 사용한다. ( )를 이용하여 연산자의 우선 실행에 사용한다.

Examples:
$ cat let1
let x=x+1 y=x%4+2
integer n=${1-20}
while (( (n=n-1) >= 0 )) && read -r line
do
print -r - "$line"
done
$ cat let2
let y=22*33
let "z = y * y / (y -1)" "x = y + 1"
if let "y % 12"
then echo "y mod 12 != 0"
else echo "y mod 12 == 0"
fi

"); // :badtag -->
2006/09/29 15:06 2006/09/29 15:06
이 글에는 트랙백을 보낼 수 없습니다

지난번에 윈도우의 find 명령에 대해 글을 썼는데, 더 강력한 findstr 명령이 있다는 사실을 깜빡 잊었습니다.

윈도우의 find 명령은 사실상 폐기된 것이고, findstr 로 대체되었습니다.

윈도우에 내장된 findstr 은 유닉스의 grep 에 비견할 수 있을 만큼 기능이 풍부하고 강력합니다. 사실 grep 을 MS에서 윈도우용으로 만든 것이고 일종의 '짝퉁'입니다. 윈도98에는 없고 윈도2000이상에만 있습니다. 윈도NT에도 있을 것 같습니다.

그런데 문자열 찾기 명령의 표준은 grep 입니다. MS에서 만든 것은 윈도 이외의 OS에서는 먹히지 않기 때문에, 되도록 grep을 익히는 것이 좋습니다. 윈도우에서도 Cygwin(시그윈)을 설치하면 grep 명령을 쓸 수 있습니다.


findstr 의 도움말 화면:

D:\Z>findstr /?
파일에서 문자열을 찾습니다.

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P]
         [/F:파일][/C:문자열] [/G:파일] [/D:디렉터리 목록] [/A:색 속성]
         [문자열] [[드라이브:][경로]파일이름[ ...]]

  /B        패턴이 행의 첫부분에 있는지를 비교합니다.
  /E        패턴이 행의 끝부분에 있는지를 비교합니다.
  /L        찾는 문자열을 글자 그대로 사용합니다.
  /R        찾는 문자열을 정규 표식으로 사용합니다.
  /S        현재 디렉터리와 모든 하위 디렉터리에서 일치하는 파일을 찾습니다.
  /I        찾을 때 대/소문자를 구별하지 않습니다.
  /X        정확히 일치하는 줄만 보여줍니다.
  /V        일치하는 텍스트가 없는 줄만 보여줍니다.
  /N        일치하는 각 줄 앞에 줄 번호를 보여줍니다.
  /M        파일에 일치하는 텍스트가 있으면 파일 이름만 보여줍니다.
  /O        일치하는 각 줄 앞에 문자 오프셋을 보여줍니다.
  /P        인쇄할 수 없는 텍스트가 포함된 파일은 건너 뜁니다.
  /A:속성   색 속성을 두자리 16진수로 지정합니다. "color /?"를 참조하십시오.
  /F:파일   지정된 파일에서 파일 목록을 읽습니다('/'는 콘솔에 해당됩니다).
  /C:문자열 지정된 텍스트를 글자 그대로 찾는 문자열로 사용합니다.
  /G:파일   지정된 파일로부터 찾는 텍스트를 받습니다('/'는 콘솔에 해당됩니다).
  /D:디렉터리    디렉터리 목록을 구분하는 세미콜론(;)를 찾습니다.
  문자열    찾을 텍스트.
  [드라이브:][경로]파일이름
            찾을 파일을 지정합니다.

/C 옵션을 사용한 경우가 아니면, 찾는 문자열을 여러 개 지정할 때
공백으로 분리하십시오. 예를 들면, 'FINDSTR "hello there" x.y' 명령을
입력하면 파일 x.y에서 "hello"나 "there"을 찾습니다.
반면에 'FINDSTR /C:"hello there" x.y' 명령을 입력하면 파일 x.y에서
"hello there"을 찾습니다.

정규 표식에 대한 참고 사항:
  .        와일드카드: 모든 문자
  *        반복: 문자나 클래스에 대하여 0번 이상 반복
  ^        행 위치: 행의 앞부분
  $        행 위치: 행의 끝부분
  [클래스]  문자 클래스: 세트에 있는 문자
  [^클래스] 역 클래스: 세트에 없는 문자
  [x-y]      범위: 특정 범위에 있는 문자
  \x         익스케이프: 메타 문자 x를 문자 그대로 사용
  \<xyz    단어 위치: 단어의 앞부분
  xyz\>    단어 위치: 단어의 끝부분

Findstr에서 사용 가능한 일반 기호는 온라인 명령을 참조하십시오.


D:\Z>
2006/09/29 12:29 2006/09/29 12:29
이 글에는 트랙백을 보낼 수 없습니다
Linux  2006/09/28 22:41

커널에 따라 다르지만... 다음과 같이 이용하실수 있습니다.

1. 시디롬 마운트 하기
mount /dev/cdrom /mnt/cdrom

이경우 /mnt/cdrom이라는 폴더에 시디가 마운트되게 됩니다. 마운트 하기전에 먼저 시디롬을 삽입하시는 정도의 센스~!

2. 시디롬 언마운트 하기
umount /dev/cdrom(혹은 /mnt/cdrom)

Unmount 이거 아닙니다. 저 오타낸거 아닙니다. 저게 진짜 명령어 입니다. umount! /dev/cdrom(디바이스)로도 마운트를 해제 할수 있지만, 마운트된 폴더로도 마운트를 해제 할수 있습니다.

3. 시디롬 꺼내기 & 집어넣기
eject & eject -t


꺼내집니다 ^^;;;


-------------------

다른 커널의 경우에는 /dev/cdrom으로 마운트하지 못하는 경우가 있습니다. /dev/hdb, /dev/hdc, /dev/hdd로 시도해 보십시오.

혹시 한글이 깨지는 경우에는 다음과 같이 하실수 있습니다.

mount -o iocharset=cp949 /dev/cdrom /mnt/cdrom

옵션(-o)를 사용하는데, iocharset(언어값)을 cp949(한국어 코드페이지)로 한다는 겁니다.
(출처 : '와우리눅스에서 CDROM사용하는 방법' - 네이버 지식iN)

2006/09/28 22:41 2006/09/28 22:41
이 글에는 트랙백을 보낼 수 없습니다
  • HTML에 JavaScript 삽입
    <script language="javascript">
    JavaScript Statements
    </script>


  • HTML에 JavaScript 코드 파일 삽입
    <script language="javascipt" src="src.js">
    </script>


  • 변수의 대소문자 구분

  • 변수에 포함된 데이터의 형을 지정하지 않고, JavaScript 인터프리터가 변수에 포함된 데이터 형을 추적하고 변환.

  • JavaScript 데이터 형
    • 숫 자 형 : 정수와 부동 소수
    • BOOLEAN : true, false
    • STRING : 작은 따옴표나 큰 따옴표에 들어가 있는 값으로, 특수문자 포맷 사용시에는 '\'와 함께 사용.
    • null : 아무런 값도 없는 것으로, 변수를 초기화 시키거나 어떤 값이나 이벤트를 지울 때 사용됨
    • undefined : 변수만 만들고, 값을 할당하지 않은 상태

  • 유형간의 변환
    • 스트링 피연산자가 비스트링 연산자와 사용된 경우 다른 연산자를 모두 스트링으로 변환
    • BOOLEAN값은 1과 0으로 변환되어 수치 연산을 지원
    • null값은 스트링 연산에 대해서는 "null", 논리 연산에서는 false, 그리고 수치 연산에서는 0으로 각각 변환
    • 변환 함수
      • eval() : 스트링 표현식을 수치값으로 변환하고, 파라미터가 수치형태가 아닌 스트링 값이면 에러 발생
      • parseInt() : 스트링에 포함된 첫번째 정수를 리턴하고, 스트링이 정수로 시작되지 않으면 0을 리턴
      • parseFloat() : 스트링에 포함된 첫번째 부동 소수를 리턴하거나 스트링이 적절한 부동 소수로 시작되지 않으면 0을 리턴

  • 배열 : 값의 시퀀스를 정렬할 수 있는 객체로, JavaScript의 특수형으로 배열 사용 전엔 반드시 선언해야 한다.
    • 배열 선언 예
      arrayName = new Array(arrayLength)
      arrayName = new Array()
      arrayName = new Array(value0,value1, ..., valuen)

  • JavaScript만의 특수 연산자
    • comma(,) 연산자 : 두 표현식을 계산하고, 두 번째 표현식의 값 리턴
    • delete 연산자 : 객체의 프로퍼티나 배열 인덱스의 요소 삭제하고, 항상 undefined 값 리턴
    • new 연산자 : 객체 형의 인스턴스를 만들기 위해 사용
    • typeof 연산자 : 연산자의 형을 식별하는 스트링 값을 리턴
    • void 연산자 : 값을 리턴하지 않는다

  • 지역 변수와 전역 변수 : 함수 안에서만 사용되는 것을 지역 변수라 하고, 프로그램 내에서 사용되는 변수를 전역 변수라 하는 데, 지역 변수 사용시 반드시 var 키워드와 함께 선언해야 함

이벤트 처리!!

  • 이벤트 정의와 사용
    • 이벤트 : 사용자가 웹페이지나 기타 다른 브라우저에 수행한 작업으로 인한 결과
    • 이벤트 처리 : 이벤트로 인해 수행되는 프로세스
    • 이벤트 핸들러 : 프로세스를 수행하는 코드
    • 사용 예 : 사용자가 링크 위로 마우스를 갖다 대면 다이얼로그 박스를 표시한다거나, 폼에 입력한 데이터를 검증한다거나, 버튼을 클릭할 때 애니메이션을 나타내거나, Java 애플릿과 브라우저 플러그인이 상호작용을 하도록 한다.

  • JavaScript가 정의한 이벤트
    HTML 태그 JavaScript 이벤트 설명
    다양 mouseMove 마우스 이동
    <A>..</A> Click 마우스로 링크를 클릭
    dbClick 마우스를 링크위에서 더블클릭
    mouseDown 마우스 버튼을 누름
    mouseUp 마우스 버튼을 놓음
    mouseOver 마우스를 링크위로 이동
    mouseOut 링크 위에 있던 마우스를 링크 밖으로 이동
    keyDown 사용자가 키를 누름
    keyUp 사용자가 키를 놓음
    keyPress 사용자가 키를 눌렀다가 놓음
    <IMG> abort 사용자 액션으로 인해 이미지 로딩 작업을 중단함
    error 이미지 로딩하는 동안 에러 발생
    load 이미지가 로드되고 화면에 나타남
    keyDown 사용자가 키를 누름
    keyUp 사용자가 키를 놓음
    keyPress 사용자가 키를 눌렀다가 놓음
    <AREA> mouseOver 마우스가 클라이언트측 이미지맵의 한 영역으로 이동함
    mouseOut 마우스가 이미지맵 영역 밖으로 이동
    dbClick 사용자가 이미지맵의 한 영역을 더블클릭함
    <BODY>..</BODY> Click 사용자가 문서의 본문을 클릭
    dbClick 문서의 본문을 더블 클릭함
    keyDown 키를 누름
    keyUp 키를 놓음
    keyPress 키를 눌렀다가 놓음
    mouseDown 마우스 버튼을 누름
    mouseUp 마우스 버튼을 놓음
    <BODY>..</BODY>
    <FRAMESET>..</FRAMESET>
    <FRAME>..</FRAME>
    blur 윈도우에서 현재 입력 포커스가 사라짐
    error 윈도우가 로드되는 동안 에러 발생
    focus 입력 포커스가 현재 윈도우로 이동
    load 윈도우 로딩이 완료됨
    unload 윈도우를 종료함
    move 윈도우가 이동됨
    resize 윈도우의 크기가 바뀜
    dragDrop 윈도우에 객체를 드롭
    <FORM>..</FORM> submit 사용자가 폼을 제출
    reset 사용자가 폼을 재설정
    <INPUT TYPE="text"> blur 현재 입력 포커스가 텍스트 필드에서 사라짐
    focus 현재 입력 포커스가 텍스트 필드로 이동
    change 텍스트 필드가 변경되어 현재 입력 포커스가 사라짐
    select 텍스트 필드에 있는 텍스트가 선택됨
    <INPUT TYPE="password"> blur 패스워드 필드에서 입력 포커스가 사라짐
    focus 패스워드 필드에 입력 포커스 생김
    <TEXTAREA>..</TEXTAREA> blur 텍스트 영역이 현재 입력 포커스가 사람짐
    focus 텍스트 영역에 입력 포커스 생김
    change 텍스트 영역이 변경되어 입력 포커스가 사라짐
    select 텍스트 영역에서 텍스트가 선택됨
    keyDown 키를 누름
    keyUp 키를 놓음
    keyPress 키를 눌렀다 놓음
    <INPUT TYPE="button"> Click 버튼이 클릭됨
    blur 입력할 수 없도록 버튼이 흐려짐
    focus 입력할 수 있도록 포커스 생김
    mouseDown 버튼 위에서 왼쪽 마우스 버튼 누름
    mouseUp 버튼 위에서 왼쪽 마우스 버튼 놓음
    <INPUT TYPE="submit"> Click 제출 버튼이 클릭됨
    blur 제출 버튼에서 입력 포커스가 사라짐
    focus 제출 버튼에 입력 포커스 생김
    <INPUT TYPE="reset"> Click 리셋 버튼이 클릭됨
    blur 리셋 버튼에서 포커스가 사라짐
    focus 리셋 버튼에서 포터스가 놓임
    <INPUT TYPE="radio"> Click 라디오 버튼이 클릭
    blur 라디오 버튼에서 입력 포커스가 사라짐
    focus 라디오 버튼에 입력 포커스 생김
    <INPUT TYPE="checkbox"> Click 체크 박스가 클릭
    blur 체크 박스에서 입력 포커스가 사라짐
    focus 체크 박스에 입력 포커스 놓임
    <INPUT TYPE="file"> blur 파일 업로드 폼 요소에서 입력 포커스 사라짐
    change 사용자가 업로드될 파일을 선택
    focus 파일 업로드 폼 요소에 입력 포커스 놓임
    <SELECT>..</SELECT> blur 선택 요소가 현재 입력 포커스 잃음
    change 선택 요소가 변경되어 입력 포커스가 사라짐
    focus 선택 요소에 현재 입력 포커스가 놓임

  • 이벤트 처리 속성
    이벤트핸들링속성실행되는 상황
    onAbort 이미지를 로딩하는 작업이 사용자의 한 행동으로 인해 취소되었음
    onBlur 문서나 윈도우, 프레임세트, 폼 요소에서 현재 입력 포커스가 사라짐
    onChange 텍스트 필드나 텍스트 영역, 파일 업로드 필드, 선택 항목이 변경되어 현재 입력 포커스가 사라짐
    onClick 링크나 클라이언트측 이미지맵 영역, 폼 요소가 클릭됨
    onDbClick 링크나 클라이언트측 이미지맵 영역, 문서가 더블 클릭됨
    onDragDrop 드래그된 객체가 윈도우나 프레임에 드롭됨
    onError 이미지나 윈도우, 프레임을 로딩하는 동안 에러가 발생함
    onFocus 문서나 윈도우, 프레임 세트, 폼 요소에 입력 포커스 놓임
    onKeyDown 키를 누름
    onKeyPress 키를 눌렀다 놓음
    onKeyUp 키를 놓음
    onLoad 이미지나 문서, 프레임이 로드됨
    onMouseDown 마우스 버튼 누름
    onMouseMove 마우스를 이동함
    onMouseOut 링크나 클라이언트측 이미지맵에서 마우스를 옮김
    onMouseOver 마우스를 링크나 클라이언트측 이미지맵으로 옮김
    onMouseUp 마우스 버튼을 놓음
    onMove 사용자가 윈도우나 프레임을 이동함
    onReset 폼의 리셋 버튼을 클릭하여 폼을 리셋시킴
    onResize 사용자가 윈도우나 프레임의 크기를 조절
    onSelect 텍스트는 텍스트 필드나 영역에서 선택됨
    onSubmit 폼이 제출됨
    onUnload 사용자가 문서나 프레임 세트를 종료함


객체 정의하기

  • 객체 유형 정의
    • 프로퍼티 : 객체에 들어 있는 데이터 값에 액세스할 때 사용.
    • 메소드 : 객체에 어떤 작업을 할 때 사용하는 함수.
  • 객체 유형 만들기
    사용자가 직접 객체 유형을 정의하고 특정 객체 인스턴스를 만들 수 있 는데 이렇게 만들려면 객체 유형의 특정 인스턴스를 만들 때 사용되는 함수를 정의하기만 하면 된다. 본래 이러한 생성자 함수는 다음과 같은 일을 한다.
    • 객체 유형의 프로퍼티에 값을 할당한다.
    • 객체 유형의 메소드로 사용할 수 있는 다른 함수를 지정한다.
  • 객체 사용 예
    1. table 객체의 정의 (table.js)
      function table_getValue(row,col){
       return this.data[row* this.columns+col ];
      }
      function table_setValue(row,col,value){
       this.data[row* this.columns+col ]=value;
      }
      function table_set(contents){
       var n=contents.length;
       for(var j=0;jthis.data[j]
      =contents[j];
      }
      function table_isHeader(row,col){
       return this.header[row* this.columns+col ];
      }
      function table_makeHeader(row,col){   this.header[row* this.columns+col ]=true;
      }
      function table_makeNormal(row,col){   this.header[row* this.columns+col ]=false;
      }
      function table_makeHeaderRow(row){   for(var j=0;j< this.columns+j)
         this.header[row* this.columns+col ]=true;
      }
      function table_makeHeaderColumn(col){   for(var i=0;i< this.rows;++i)
         this.header[i* this.columns+col ]=true;
      }
      function table_write(doc){
       doc.write("<TABLE BORDER="+ this.border+">");
       for(var i=0;i< this.rows;++i) {
         doc.write("<TR>");
         for(var j=0;j< this.columns;++j) {
           if( this.header[i* this.columns+j ]) {
             doc.write("<TH>");
             doc.write( this.data[i* this.columns+j ]);
             doc.write("</TH>");
           }
           else {
             doc.write("<TD>");
             doc.write( this.data[i* this.columns+j ]);
             doc.write("</TD>");
           }
         }
         doc.writeln("</TR>");
       }
       doc.writeln("</TABLE>");
      }
      funtion table(rows,columns) {
       this.rows=rows
       this.columns=columns
       this.border=0
       this.data=new Array(rows*columns)
       this.header=new Array(rows*columns)
       this.getValue=table_getValue
       this.setValue=table_setValue
       this.set=table_set
       this.isHeader=table_isHeader
       this.makeHeader=table_makeHeader
       this.makeNormal=table_makeNormal
       this.makeHeaderRow=table_makeHeaderRow
       this.makeHeaderColumn=table_makeHeaderColumn
       this.write=table_write
       
      }

    2. table 객체 사용하기
      <HTML>
      <HEAD>
      <TITLE>Defining Object Types</TITLE
      <SCRIPT LANGUAGE="JavaScript" SRC="table.js"><!-
      //-></SCRIPT>
      </HEAD>
      <BODY>
      <H1>Defining Object Types</H1>
      <SCRIPT LANGUAGE="JavaScript"><!-
      t=new table(3,4)
      contents=new
      Array("This","is","a","test","of","the","table","object.","Let's","see","it","work")
      t.set(contents)
      t.border=4
      t.makeHeaderColumn(0)
      t.write(document)
      //-></SCRIPT>
      </BODY>
      </HTML>

    3. 객체 유형에 프로퍼티와 메소드 추가
      : prototype 프로퍼티를 통해서 인스턴스화할 수 있는 미리 정의된 객체 유형에 프로퍼티와 메소드 추가
      사용 예
      <HTML>
      <HEAD>
      <TITLE>Updating Object Types </TITLE>
      <SCRIPT LANGUAGE="JavaScript" SRC="table.js"><!-
      //-></SCRIPT>
      </HEAD>
      <BODY>
      <H1>Updating Object Types</H1>
      <SCRIPT LANGUAGE="JavaScript"><!-
      function table_colorWrite(doc){
       ........
       함수 정의
       ........
       ........
      }
      t=new table(3,4)
      table.prototype.bgColor="Cyan"
      table.prototype.colorWrite=table_colorWrite
      .............
      .............
      t.colorWrite(document)
      //-></SCRIPT>
      </BODY>
      </HTML>

    4. 프로퍼티와 메소드 삭제
      delete objectName.propertyName
      delete objectName.methodName


브라우저 객체

객 체 용 도
window 객체 브라우저 윈도우나 윈도우 안에 있는 프레임에 액세스할 때 사용한다. 프로퍼티와 메소드를 참조할 때, window 객체가 존재하는 경우에는 "window."접두사를 붙일 필요가 없다
document 객체 현재 윈도우에 로드되어 있는 문서에 액세스할 때 사용한다. document 객체는 컨텐트를 제공하는 HTML 문서, 즉 HEAD와 BODY 태그가 있는 문서를 의미한다.
location 객체 URL을 나타낼 때 사용한다. 이 객체는 URL객체를 만들거나 URL의 일부분에 액세스하거나 기존의 URL을 수정할 때 사용할 수 있다.
history 객체 한 윈도우 안에서 액세스된 URL의 히스토리를 유지할 때 사용
frame 객체, frames 배열 HTML 프레임에 액세스할 때 사용
frames 배열은 윈도우안에 있는 모든 프레임에 액세스할 때 사용
link 객체, links 배열 하이퍼텍스트 링크의 텍스트 기반이나 이미지 기반 소스 앵커(anchor)에 액세스할 때 사용
links배열은 문서 안에 있는 모든 link 객체에 액세스할 때 사용한다. I.E.는 link 객체의 anchor객체를 결합한다.
anchor 객체, anchors 배열 하이퍼텍스트 링크의 타켓에 액세스할 때 사용
anchors 배열은 문서 안에 있는 모든 anchor 객체에 액세스할 때 사용
image객체, images 배열 HTML 문서에 삽입되어 있는 이미지에 액세스할 때 사용
images 배열은 문서 안에 있는 모든 image 객체에 액세스할 때 사용
area 객체 클라이언트측 이미지맵 안에 있는 영역에 액세스할 때 사용
applet 객체, applets 배열 Java 애플릿에 액세스할 때 사용
애플릿 배열은 문서 안에 있는 모든 애플릿에 액세스할 때 사용
event 객체, Event 객체 이벤트 발생에 대한 정보에 액세스할 때 사용
event 객체는 특정 이벤트에 대한 정보 제공
Event 객체는 이벤트를 식별하는 데 사용하는 상수 제공
form 객체, forms 배열 HTML 폼에 액세스시 사용
forms 배열은 문서 안에 있는 모든 폼에 액세스시 사용
element 객체 폼 안에 들어있는 모든 폼 요소에 액세스시 사용
text 객체 폼의 텍스트 필드에 액세스시 사용
textarea 객체폼의 텍스트 영역 필드에 액세스시 사용
radio 객체 폼의 라디오 버튼 세트에 액세스하거나 세트 안에 있는 각각의 버튼에 액세스할 때 사용
checkbox 객체 폼의 체크 박스에 액세스할 때 사용
button 객체 Submit나 Reset 버튼이 아닌 폼 버튼에 액세스시 사용
reset 객체 폼의 Reset 버튼에 액세스시 사용
selet 객체 폼의 선택 리스트에 액세스시 사용
option 객체 option 객체는 선택 리스트의 요소에 액세스시 사용
password 객체 폼의 패스워드 필드에 액세스시 사용
hidden 객체 폼의 숨겨진 필드에 액세스시 사용
FileUpload 객체 폼의 파일 업로드 요소에 액세스시 사용
navigator 객체 스크립트를 실행하고 있는 브라우저에 대한 정보에 액세스시 사용
screen 객체 사용자의 화면의 색상 깊이와 크기에 대한 정보에 액세스시 사용
embed 객체, embeds 배열 삽입된 객체에 액세스시 사용
embeds 배열은 문서 안에 삽입된 모든 객체에 대한 액세스 제공
mimeType 객체, mimeTypes 배열 브라우저가 제공하는 특징 MIME 유형에 대한 정보에 액세스시 사용
mimeTypes 배열은 제공하는 모든 mimeType 객체의 배열
I.E.는 빈 배열을 리턴하면서 mimeTypes에 대해서 임시적으로 지원
plugin 객체, plugins 배열 특정 브라우저 플러그인에 대한 정보에 액세스시 사용
plugins 배열은 브라우저가 지원하는 모든 플러그인의 배열
I.E.는 빈 배열을 리턴하면서 plugins에 대해서 임시적으로 지원


window 객체

  • 모든 브라우저 스크립트의 기본적인 것으로, 브라우저가 자동으로 정의하는 최상위 레벨의 객체이다. 현재 열려 있는 각 윈도우에 대해 별도의 window 객체가 정의된다.

window 객체의 프로퍼티
프로퍼티 설 명
closed 윈도우가 닫혀 있는지 식별
defaultStatus 브라우저 윈도우의 하단의 상태바에 나타나는 디폴트 상대 메시지를 지정
document 윈도우에 표시되어 있는 현재 문서를 지정하는 객체
frames 윈도우 객체에 들어 있는 모든 프레임 객체로 구성된 배열
history 마지막으로 윈도우로 로드된 URL의 리스트를 포함하는 윈도우의 히스토리 객체
length window에 들어 있는 프레임의 수 식별
location window 객체와 관련된 URL을 지정하는 객체
name 윈도우의 이름 지정
offscreenBuffering 윈도우 정보의 오프스크린 버퍼링이 사용될 것인지를 지정하는 부울값
오프스크린 버퍼링은 윈도우를 나타내기 전에 윈도우의 모든 요소를 로드할 때 사용
opener 윈도우를 만들거나 열 수 있도록 해주는 window 객체 지정
parent 특정 윈도우를 포함하는 윈도우를 지정하는 시너님
self 참조될 현재 윈도우를 지정하는 시너님
status 브라우저 윈도의 하단의 상태 표시줄에 나타날 임시 메시지를 지정
top 중첩된 일련의 윈도우에서 맨 위에 있는 브라우저 윈도우를 의미하는 시너님
window 참조될 현재 윈도우를 식별하는 시너님

window 객체의 메소드
메 소 드 설 명
alert(text) 경고 다이얼로그 박스를 표시
blur() 포커스를 윈도우에서 옮긴다
setInterval(expression,milliseconds) 지정된 타임아웃 인터벌이 지난 이후에 표현식을 반복해서 평가하거나 함수를 불러온다.
clearInterval(interval) 이전에 설정된 인터벌 타이머를 클리어
setTimeout(expression,milliseconds) 타임아웃 기간이 지난 이후에 표현식을 평가하거나 함수를 호출한다.
clearTimeout(timer) 이전에 설정된 타임아웃을 클리어
close() 지정된 윈도우를 닫는다.
confirm(text) 확인 다이얼로그 박스를 나타낸다.
focus() 윈도우로 포커스를 가져간다.
open(url,name,[options]) 새로운 윈도우를 열고 새로운 window 객체를 만듬
prompt(text,defaultInput) 프롬프트 다이얼로그 박스를 나타낸다.
scroll(x,y) 윈도우를 특정 위치까지 스크롤한다.

open() 메소드의 옵션
옵 션 설 명
toolbar yes no 윈도우에 툴바 제공
location yes no 윈도우에 위치 필드 제공
directories yes no 디렉토리 버튼 제공
status yes no 상태 표시줄 제공
menubar yes no 메뉴바 제공
scrollbars yes no 스크롤 바 제공
resizable yes no 윈도우 크기 조절 가능
width 정수 윈도우의 폭(픽셀)
height 정수 윈도우의 높이(픽셀)


frame 객체

  • 프레임은 윈도우를 독립된 표시 영역들로 분할한 후, 이 영역들에 표시되는 정보들을 강력하게 컨트롤 할 수 있게 해준다.
  • 프레임 객체의 프로퍼티와 메소드는 window 객체와 같지만, close() 메소드는 지원하지 않는다.


document 객체

  • JavaScript 에서 아주 중요한 객체로, 이 객체를 사용하면 로드될 문서를 업데이트하고 로드된 문서 안에 있는 HTML 요소에 액세스할 수 있다.

프로퍼티 설 명
alinkColor <BODY> 태그의 alink 속성의 값 지정
anchor 문서에 들어 있는 배열을 참조하는 객체
anchors 문서에 들어 있는 모든 앵커의 배열
applet 문서에 들어 있는 애플릿을 참조하는 객체
applets 문서에 들어 있는 모든 애플릿의 배열
area 문서 안의 이미지맵 영역을 참조하는 객체
bgColor <BODY> 태그의 bgColor 속성의 값 식별
cookie 쿠키의 값 식별
domain 문서가 로드되는 서버의 도메인 이름 식별
embeds 문서안의 모든 플러그인의 배열
fgColor <BODY> 태그의 text 속성값 지정
form 문서 안의 폼을 참조하는 객체
Forms[] 문서 안의 모든 폼의 배열
image 문서 안의 이미지를 참조하는 객체
Images[] 문서 안의 모든 이미지의 배열
lastModified 문서가 마지막으로 수정된 날짜
link 문서 안의 링크를 참조하는 객체
links 문서 안의 모든 링크의 배열
linkColor <BODY> 태그의 link 속성의 값 식별
plugin 문서 안의 플러그인을 참조하는 객체
plugins[] 브라우저가 지원하는 플러그인을 나타내는 객체의 배열
referrer 문서에 대한 링크를 제공하는 문서의 URL
title 문서의 타이틀
URL 문서의 URL
vlinkColor <BODY> 태그의 vlink 속성의 값 식별

document 객체의 메소드
메 소 드 설 명
close() 문서의 객체를 만드는 데 사용된 스트림
open([mimeType][,"replace"]) 선택적인 MIME 유형으로 문서 객체를 만들 때 사용되는 흐름을 개시한다. "replace" 파라미터는 text/html MIME 유형과 함께 사용되어 히스토리 리스트에 있는 현재 문서를 대체
write(expr1[,expr2...,exprN]) 문서에 표현식의 값을 기록
write(expr1[,expr2...,exprN]) 개행 문자가 다음에 따라오는 문서에 표현식의 값 기록


navigator 객체

  • navigator 객체는 window 객체와 마찬가지로 브라우저 객체 모델에서 최상위 레벨의 객체이며, 스크립트를 실행할 때 사용되는 브라우저의 종류와 버전에 대한 정보 제공한다.

navigator 객체의 프로퍼티
프로퍼티 브라우저 지원 설 명
appCodeName N2, I.E3 브라우저 색상 이름
AppMinorVersion I.E4 브라우저 버전 번호
appName N2, I.E3 브라우저 이름
appVersion N2, I.E3 브라우저의 버전
browserLanguage I.E4 브라우저에 설정되어 있는 언어
connectionSpeed I.E4 브라우저가 네트워크에 연결되는 속도
cookieEnabled I.E4 브라우저가 쿠키를 허용하도록 설정되어 있는지의 여부
cpuClass I.E4 브라우저 실행시 사용되는 마이크로프로세서의 유형
onLine I.E4 브라우저가 현재 온라인 연결을 가지고 있는지 여부
Language N4, I.E4 브라우저에 설정되어 있는 언어
mimeTypes N3, I.E4 현재 브라우저가 지원하는 모든 MIME 유형의 배열
platform N4, I.E4 브라우저가 실행되는 운영체제 플랫폼
plugins N3, I.E4 현재 브라우저에 설치된 모든 플러그인의 배열
systemLanguage I.E4 운영체제의 디폴트 언어
userAgent N2, I.E3 브라우저에서 서버로 전송된 HTTP 프로토콜의 사용자 에이전트 헤더
userLanguage I.E4 사용자가 사용하는 언어
userProfile I.E4 사용자 프로파일 정보에 대한 액세스를 제공하는 객체

navigator 객체의 메소드
메 소 드 설 명
javaEnabled() 사용자가 브라우저의 Java 기능을 켜두었는지의 여부를 나타내는 부울값 리턴
taintEnabled() 사용자가 data tainting(보안 메커니즘)을 활성화했는지 여부를 나타내는 부울값 리턴
preference 서명이 되지 않은 스크립트가 보안 관련 프로퍼티를 얻고 설정할 때 사용


event 객체

event 객체의 프로퍼티
프로퍼티 브라우저 설 명
dataNDragDrop 이벤트로 인해 드롭된 객체의 URL이 들어있는 스트링 배열
height, widthN윈도우나 프레인의 길이와 너비(픽셀표시)
pageX, pageYN픽셀로 나타낸 커서의 수평/수직 위치(페이지에서의 상대적위치)
screenX, screenYN, I.E픽셀로 나타낸 커서의 수평/수직 위치(화면에서의 상대적 위치)
layerX, layerYN픽셀로 나타낸 커서의 수평/수직 위치, 이벤트가 발생한 레이어에 대한 상대적 위치. Resize 이벤트와 함께 사용하면 layerX와 layerY가 이벤트가 타겟으로 하는 객체의 길이와 너비 지정
clientX와 clientYI.E픽셀로 나타낸 커서의 수평/수직 위치, 이벤트가 발생한 웹페이지에서의 상대적 위치
offsetX, offsetYI.E픽셀로 나타낸 커서의 수평/수직 위치, 이벤트가 발생한 컨테이너에 대한 상대적 위치
X, YI.E픽셀로 나타낸 커서의 수평/수직 위치, 이벤트가 발생한 문서에 대한 상대적 위치
targetN이벤트가 전송된 원래 객체
srcElementI.E이벤트가 전송된 원래 객체
typeN, I.E발생한 이벤트 유형
whichN눌려진 마우스 버튼(왼:1, 가:2, 오:3)이나 눌려진 키의 ASCII값
keyCodeI.E키 누름과 연관된 Unicode 키 코드를 식별
buttonI.E이벤트가 발생했을 때 눌려진 마우스 버튼 식별(0:눌려진버튼없음, 1:왼, 2:오, 4:가)
modifiersN마우스나 키 이벤트와 연관된 수정자 키(ALT_MASK,CONTROL_MASK,SHIFT_MASK,META_MASK)를 식별
altkey,ctrlkey,shiftkeyI.Etrue나 false로 설정하여 이벤트가 발생했을 때 Alt키와 Control키, Shift 키 중에 어떤 것이 눌려졌는지 알려준다.
cancelBubbleI.Etrue나 false로 설정하여 이벤트 버블링을 취소하거나 활성화한다.
fromElement, toElementI.E이동 중인 HTML 요소 지정
reasonI.E데이터 소스 객체에 대한 데이터 전송 상태를 나타내는데 사용
returnValueI.Etrue나 false로 설정하여 이벤트 핸들러의 리턴값을 나타낸다. 이벤트 핸들러에서 true나 false를 리턴하는 것과 같다.
srcFilterI.Eonfilterchange 이벤트를 시작하는 filter객체 지정

screen 객체

  • screen 객체의 프로퍼티
    • height : 사용자의 화면의 현재 높이(픽셀)
    • width : 사용자의 화면의 현재 너비(픽셀)
    • colorDepth : 사용자의 화면/비디오 카드에서 현재 지원하는 색상당 바이트 수


    form 객체

    • document 객체의 프로퍼티로 액세스되고, form 객체는 문서 안의 폼에 액세스할 수 있도록 해주고, 폼 관련 이벤트에 응답을 할 수 있도록 해주기 때문에 중요하다.
    form 객체의 프로퍼티
    프로퍼티 설 명
    action <FORM> 태그의 HTML action 속성에 대한 액세스 제공
    button GUI 컨트롤 버튼을 나타내는 객체
    checkbox 체크 박스 필드를 나타내는 객체
    elements 폼 안에 포함되어 있는 모든 필드와 GUI 컨트롤을 포함하는 배열
    encoding <FORM> 태그의 HTML enctype 속성에 대한 액세스 제공
    FileUpload 파일 업로드 폼 필드를 나타내는 객체
    hidden 숨겨진 폼 필드를 나타내는 객체
    length elements 배열의 길이에 대한 액세스 제공
    method <FORM> 태그의 HTML method 속성에 대한 액세스 제공
    name 폼의 이름 식별
    password 패스워드 필드를 나타내는 객체
    radio 라디오 버튼 필드를 나타내는 객체
    reset reset 버튼을 나타내는 객체
    select 선택 항목 리스트를 나타내는 객체
    submit submit 버튼을 나타내는 객체
    target <FORM> 태그의 HTML target 속성에 대한 액세스 제공
    text 텍스트 필드를 나타내는 객체
    textarea 텍스트 영역 필드를 나타내는 객체

    form 객체의 메소드
    메 소 드 설 명
    handleEvent() 지정된 이벤트에 대한 폼의 이벤트 핸들러를 호출할 때 사용
    submit() 폼을 제출시 사용
    reset 폼의 엔트리를 디폴트 값으로 재설정시 사용

    form 요소 객체의 프로퍼티
    객 체 프로퍼티 설 명
    button name 버튼의 name 속성에 대한 액세스 제공
    type 객체의 유형 지정
    value 객체의 값 지정
    checkbox checked 체크박스가 현재 체크되어 있는지를 식별
    defaultChecked 체크박스가 디폴트로 체크되어 있는지 식별
    name 체크박스의 HTML name 속성에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별
    FileUpload name 객체의 name 속성에 대한 액세스 제공
    type 객체의 type 속성에 대한 액세스 제공
    value 객체의 값 식별
    hidden name 객체의 name 속성에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별
    password defaultChecked객체의 디폴트 값 식별
    name 객체의 name 속성에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별
    radio checked 라디오 버튼이 체크되어 있는지 식별
    defaultChecked 라디오 버튼이 디폴트로 체크되어 있는지 식별
    name 객체의 name 속성에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별
    reset name 객체의 name 속성에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별
    select length 선택 리스트의 길이 식별
    name 객체의 name 속성에 대한 액세스 제공
    option 선택 리스트가 제공하는 옵션 식별하는 배열
    selectedIndex 선택 리스트 안에서 처음 선택된 옵션 식별
    type 객체의 유형 식별
    submit name 객체의 name 속서에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별
    text defaultValue 텍스트 필드에 나타나는 디폴트 텍스트를 식별
    name 객체의 name 속성에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별
    textarea defaultValue 텍스트 영역 필드에 나타나게 되는 디폴트 텍스트 식별
    name 객체의 name 속성에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별

    form 요소 객체의 메소드
    객 체 메 소 드 설 명
    button Click() 클릭된 버튼 시뮬레이트
    blur() 포커스 잃음
    focus() 포커스 맞춤
    checkbox Click() 클릭된 체크 박스 시뮬레이트
    blur() 포커스 잃음
    focus() 포커스 맞춤
    FileUpload blur() 포커스 잃음
    focus() 포커스 맞춤
    select() 입력 영역을 선택
    hidden 없음
    password blur() 포커스 잃음
    focus() 포커스 맞춤
    select() 패스워드 필드에 나타나는 텍스트를 하이라이트
    radio Click() 라디오 버튼 클릭 시뮬레이트
    blur() 포커스 잃음
    focus() 포커스 맞춤
    reset Click() 리셋 버튼 클릭 시뮬레이트
    blur() 포커스 잃음
    focus() 포커스 맞춤
    select blur() 포커스 잃음
    focus() 포커스 맞춤
    submit Click() 제출 버튼 클릭 시뮬레이트
    blur() 포커스 잃음
    focus() 포커스 맞춤
    text blur() 포커스 잃음
    focus() 포커스 맞춤
    select() 텍스트 필드에 있는 텍스트 하이라이트
    textarea blur() 포커스 잃음
    focus() 포커스 맞춤
    select() 텍스트 영역에 있는 텍스트 하이라이트


    location 객체

    • 윈도우에 로드되어 있는 현재 문서의 URL에 액세스하거나 새로운 문서를 로드할 때 사용

    location 객체의 프로퍼티
    프로퍼티 설 명
    hash URL의 앵커 부분(존재하는 경우)
    host URL의 hostname:port 부분
    hostname URL의 host부분
    href 전체 URL
    pathname URL의 경로명 부분
    port URL의 포트 부분
    protocol URL의 프로토콜 부분
    search URL의 쿼리 스트링 부분

    location 객체의 메소드
    • reload() : 윈도우의 현재 문서를 브라우저의 Reload 버튼에서 사용하는 정책에 따라 다시 로드
      • Every time : 문서는 매번 서버에서 다시 로드
      • Once per session : 서버의 문서의 날짜가 캐시에 저장되어 있는 문서보다 더 최신 날짜라는 것을 나타내면 문서는 세션당 한 번씩 서버에서 다시 로드된다. 문서가 캐시에 없는 경우에는 서버에서 로드
      • Never : 문서는 가능하면 캐시에서 다시 로드, 그렇지 않으면 서버에서 로드
    • replace() : URL을 파라미터로 취하여, 현재 문서 히스토리 목록에 있는 현재 문서위로 그 URL의 문서를 로드, 그러면 브라우저의 Back버튼을 클릭하여 이전 문서로 돌아갈 수 없음


    link 객체

    • link 객체는 document 객체의 프로퍼티로, 문서에 들어있는 텍스트나 이미지 링크를 캡슐화
    • links 배열은 문서에 들어있는 모든 링크의 배열
    • link 객체의 메소드
      handleEvent() : event 객체를 인자로 취하며 그 이벤트에 대해 적당한 이벤트 핸들러 호출

    link 객체의 프로퍼티
    프로퍼티 설 명
    hash URL의 앵커 부분(존재하는 경우)
    host URL의 hostname:port 부분
    hostname URL의 host부분
    href 전체 URL
    pathname URL의 경로명 부분
    port URL의 포트 부분
    protocol URL의 프로토콜 부분
    search URL의 쿼리 스트링 부분
    target 링크의 HTML, target 속성


    anchor 객체

    • HTML 문서 안에서 이름이 지정된 오프셋으로 사용되는 앵커 의미
    • anchors 배열에는 문서의 모든 앵커가 들어있음
    • 프로퍼티나 메소드 또는 이벤트를 전혀 가지고 있지 않음
    • HTML 문서와 관련하여 정의된 이름이 지정된 오프셋을 추적할 때 사용
    • anchor 객체는 HREF 속성을 포함하는 경우에 link 객체가 된다.


    history 객체

    • history 객체의 프로퍼티
      • current : 윈도우에 나타나는 현재 문서의 URL
      • length : History 리스트의 길이
      • next : History 리스트에서의 다음 URL
      • previous : History 리스트에서의 이전 URL
    • history 객체의 메소드
      • back() : History 리스트에 이전 문서를 로드. 브라우저의 Back 버튼을 클릭하는 것과 같은 효과
      • forward() : History 리스트에 다음 문서를 로드. 브라우저의 Forward 버튼을 클릭하는 것과 같은 효과
      • go() : History 리스트에 있는 특정 문서로 감
        • go(n) : n>0인 경우, 이 메소드는 History 리스트에서 n개의 엔트리가 앞에 있는 문서를 로드, n=0인 경우에는 현재 문서가 다시 로드되고, n<0인 경우엔 History 리스트에서 n개의 엔트리 뒤에 있는 문서를 로드
        • go(string) : go()는 이 스트링을 서브스트링으로 갖고 있는 URL의 History 리스트에서 가장 가까운 문서를 로드


    image 객체

    • document 객체의 프로퍼티
    • 문서와 함께 로드된 이미지에 대한 액세스 제공
    • images 배열은 문서 안에 지정되어 있는 각각의 <IMG>태그에 대한 엔트리가 들어있음
    • image 객체 유형을 사용하면 키워드와 생성자로 새로운 image 객체를 명시적으로 만들 수 있다. Image() 생성자는 웹페이지의 일부로서 처음에 나타나지 않는 이미지를 만들고 미리 로드할 때 사용한다. 이러한 image 객체는 브라우저의 캐시에 저장되면 이미 나타난 이미지를 대체할 때 사용
      * Image() 생성자를 사용하여 캐시된 이미지 만드는 예 cachedImage=new Image()
      cachedImage.src="myImage.gif"
      = > 첫번째 문장은 새로운 image 객체를 만들고 그것을 cachedImage 변수에 대입하고, 두번째 문장은 image 객체의 src프로퍼티를 myImage.gif 이미지 파일로 설정한다. 이 경우 myImage.gif는 브라우저 캐시로 로드된다. 그러면 로드된 이미지는 cachedImage 변수를 사용하여 참조 가능하다.

      image 객체의 프로퍼티
      프로퍼티 설 명
      border <:IMG> 태그의 BORDER 속성의 값
      complete 이미지가 완전히 로드되었는지 식별
      height <:IMG> 태그의 HEIGHT 속성의 값
      hspace <IMG> 태그의 HSPACE 속성의 값
      lowsrc <IMG> 태그의 LOWSRC 속성의 값
      name <IMG> 태그의 NAME 속성의 값
      prototype image 객체에 사용자 지정 프로퍼티를 추가할 때 사용
      src <IMG> 태그의 SRC 속성의 값
      vspace <IMG> 태그의 VSPACE 속성의 값
      width <IMG> 태그의 WIDTH 속성의 값


    area 객체

    • 이미지맵은 여러 가지 다른 영역으로 나누어져 있는 이미지로서 각각의 영역은 자체 URL과 관련되어 있다. 그리고 이러한 영역과 관련된 사용자 처리 방식으로 area 객체를 제공

    area 객체의 프로퍼티
    프로퍼티 설 명
    hash area 객체의 HREF 속성의 파일 오프셋 부분
    host area 객체의 HREF 속성의 호스트 이름 부분
    hostname area 객체의 HREF 속성의 host:port 부분
    href area 객체의 완전한 HREF 속성
    pathname area 객체의 HREF 속성의 경로명 부분
    port area 객체의 HREF 속성의 포트 부분
    protocol area 객체의 HREF 속성의 프로토콜 부분
    search area 객체의 HREF 속성의 쿼리 스트링 부분
    target area 객체의 TARGET 속성


    Array 객체

    • Array 객체를 사용하면 배열을 객체처럼 액세스 가능
    • Array 객체의 프로퍼티
      • length : 배열의 길이 식별
      • prototype : 모든 객체 유형이 지원하는 프로퍼티로 객체 유형에 대해 추가적인 프로퍼티 및 메소드 정의 가능
    • Array 객체의 메소드
      • toString() : 배열의 스트링 버전 리턴, 배열 요소는 컴마로 구분
      • join(separator) : 배열의 스트링 버전 리턴, 배열 요소는 seperator 스트링으로 구분, 분리자가 없으면 컴마로 구분
      • reverse() : 배열의 요소를 역순으로 바꿈
      • sort(comparisionFunction) : 비교 연산에 따라 배열의 요소 정렬. 비교 함수가 지정되면, 배열 요소는 사전순서로 정렬. 비교 연산이 지정되면 두개의 파라미터 p1,p2를 취하고, p1이 p2보다 작은 경우에는 음의 정수를 리턴하고, 같으면 0을 리턴하고, p1이 p2보다 크면 양의 정수 리턴


    Boolean 객체

    • Boolean 객체를 사용하면 부울값은 객체로서 액세스 가능
    • Boolean 객체는 생성자에 대한 인자로서 값을 식별하여 만들어짐 myBoolean=new Boolean(false)
      yourBoolean=new Boolean(true)
    • Boolean 객체의 프로퍼티
      • prototype : 모든 객체 유형이 지원하는 프로퍼티로 객체 유형에 대해 추가적인 프로퍼티 및 메소드 정의 가능
    • Boolean 객체의 메소드
      • toString() : 부울값에 해당하는 스트링 리턴
      • valueOf() : 객체의 값에 따라 true나 false로 리턴


    Date 객체

    Date 객체의 메소드
    메 소 드 설 명
    getDate()
    getUTCDate()
    setDate()
    setUTCDate()
    Date 객체의 날짜를 설정하거나 리턴
    getDay()
    getUTCDay()
    Date 객체의 한 주의 날짜를 설정하거나 리턴
    getHours()
    getUTCHours()
    setHours()
    setUTCHours()
    Date 객체의 시간를 설정하거나 리턴
    getMilliseconds()
    getUTCMilliseconds()
    setMilliseconds()
    setUTCMilliseconds()
    Date 객체의 밀리초 값을 설정하거나 리턴
    getMinutes()
    getUTCMinutes()
    setMinutes()
    setUTCMinutes()
    Date 객체의 분을 설정하거나 리턴
    getMonth()
    getUTCMonth()
    setMonth()
    setUTCMonth()
    Date 객체의 달을 설정하거나 리턴
    getSeconds()
    getUTCSeconds()
    setSeconds()
    setUTCSeconds()
    Date 객체의 초를 설정하거나 리턴
    getTime()
    getUTCTime()
    Date 객체의 시간을 설정하거나 리턴
    getTimeZoneOffset() Date 객체의 시간대 오프셋(분)을 리턴
    getYear()
    getFullYear()
    getUTCFullYear()
    setYear()
    setFullYear()
    setUTCFullYear()
    Date 객체의 연도를 리턴하거나 설정한다. 완전한 연도를 나타내는 방법으로 4자리 연도 값을 사용한다.
    toGMTString() 날짜를 Internet GMT(Greenwich Mean Time) 포맷의 스트링으로 변환
    toLocaleString() 날짜를 로케일(locale)포맷의 스트링으로 변환. 로케일 포맷이란 사용자가 위치해 있는 지형적 위치에서 일반적으로 사용하는 포맷 의미
    toString() Date 객체의 스트링 값을 리턴
    valueOf() 1970년 1월 1일 자정 이후의 밀리초 값 리턴
    toUTCString() UTC에서 시간을 나타내는 스트링 값을 리턴

    Date 생성자
    생 성 자 설 명
    Date() 현재 날짜와 시간으로 Date 인스턴스 만듬
    Date(dateString) dateString 파라미터에 지정되어 있는 날짜로, Date 인스턴스를 만든다. dateString의 포맷은 "월,일,연도,시:분:초"
    Date(milliseconds) 1970년 1월 1일 자정 이후 지정된 밀리초 값으로 Date 인스턴스를 만든다.
    Date(year,month,
    day,hours,minutes,
    seconds,milliseconds)
    년,월,일,시,분,초,밀리초 정수에 따라 지정된 날짜로 Date 인스턴스를 만든다. 연도와 월 파라미터는 제공되어야 하고 다른 나머지 파라미터가 포함되면 앞에 오는 모든 파라미터가 제공되어야 한다.


    Function 객체

    • 함수를 객체처럼 액세스 가능하고, 이 객체는 스크립트를 실행하는 동안에 함수를 동적으로 만들고 호출할 때 사용
    • Function 객체는 함수의 파라미터와 본문을 Function() 생성자에 제공하면 된다.
      variable=new Function("p1","p2", ... ,"pn","body")
    • Function 객체 프로퍼티
      • length : 함수에 대해 정의된 파라미터의 숫자 식별
      • prototype : 모든 객체 유형이 지원하는 프로퍼티로 객체 유형에 대해 추가적인 프로퍼티 및 메소드 정의 가능
      • arguments : 호출시 함수에 전달되는 인자를 가리키는 배열
      • caller : 특정 함수를 호출한 함수를 가리킴
    • Function 객체의 메소드
      • toString() : 함수의 스트링 형태 리턴
      • valueOf() : 함수 자체 리턴


    Global 객체

    • new Global() 을 통해서 명시적으로 만들거나, 참조할 수 없다. 대신 해당 프로퍼티와 메소드가 전역 변수와 함수로 직접 참조됨
    • Global 객체의 프로퍼티
      • Nan : 숫자가 아니라는 의미
      • Infinity : 양수 무한대 값 의미
    • Global 객체의 메소드
      • escape(string) : string을 새로운 스트링으로 변환
      • eval(x) : 표현식 x의 값을 계산하고 리턴
      • inFinite(number) : number가 유한하면 true를 리턴하고, 무한하면 false를 리턴
      • inNaN(number) : number가 숫자가 아니면 true를 리턴하고, 숫자이면 false를 리턴
      • parseFloat(string) : string을 부동 소수 값으로 파싱
      • parseInt(string,radix) : string을 밑이 radix인 정수로 파싱
      • unescape(string) : escape()에 들어 있는 스트링을 원래의 값으로 되돌린다.


    Math 객체

    • 수학적 상수와 함수의 표준 라이브러리 제공
    • Math의 특수 인스턴스는 Math가 내장 객체이고 객체 유형이 아니기 때문에 만들어지지 않는다.

    Math 프로퍼티
    프로퍼티 설 명
    E Euler의 상수. 이것은 계산을 하는 어디에서나 발견할 수 있으며 자연대수의 기초
    LN2 2의 자연대수. 이것은 자연대수와 밑이 2인 대수 사이의 전환에 사용되는 간단한 상수
    LN10 10의 자연대수. LN2와 마찬가지로 대수 변환에 사용
    LOG2E 밑이 2인 E의 대수. 이것은 밑이 10인 대수를 밑이 E인 대수로 변환시 사용
    PI 원의 원주 대 지름의 비율
    SQRT1_2 1/2의 제곱근은 많은 삼각법 계산에서 사용
    SQRT2 2의 제곱근은 대수식에서 흔히 사용

    Math 메소드
    메 소 드 설 명
    abs(x) x의 절대값 리턴
    acos(x) x의 아크 코사인값 라디안으로 리턴
    asin(x) x의 아크 사인값 라디안으로 리턴
    atan(x) x의 아크 탄젠트 값을 라디안으로 리턴
    atan2(x,y) (x,y)에 해당하는 극좌표의 각도를 리턴
    ceil(x) x보다 크거나 작은 최소 정수값 리턴
    cos(x) x의 코사인 값 리턴
    exp(x) eX를 리턴
    floor(x) x보다 작거나 같은 최대 정수값 리턴
    log(x) x의 자연대수 리턴
    max(x,y) x, y 중 큰 값 리턴
    min(x,y) x, y 중 작은 값 리턴
    pow(x,y) xy를 리턴
    random() 0과 1사이의 임의의 숫자 리턴
    round(x) x의 가장 가까운 정수로 반올림되는 값 리턴
    sin(x) x의 사인값 리턴
    sqrt(x) x의 제곱근 리턴
    tan(x) x의 탄젠트 값 리턴


    Number 객체

    • Number 객체 유형을 사용하면 숫자를 객체로 다룰 수 있다.
    • Number 객체의 프로퍼티
      • MAX_VALUE : 숫자는 가능한 최대 수치값
      • MIN_VALUE : 숫자는 가능한 최소 수치값
      • NaN : 숫자가 아니다
      • NEGATIVE_INFINITY : 숫자가 음수 무한대 값
      • POSITIVE_INFINITY : 숫자가 양수 무한대 값
      • prototype : 모든 객체 유형이 지원
    • Number 객체의 메소드
      • toString(radix) : 밑이 radix인 숫자를 나타내는 스트링 리턴
      • valueOf() : Number 객체의 수치값 리턴


    Object 객체

    • Object 객체는 다른 모든 객체들이 파생되어 나가는 기반 객체로 이것의 프로퍼티와 메소드는 다른 객체 유형들에서 사용 가능
    • Object 객체의 프로퍼티
      • prototype : 모든 객체 유형이 지원
      • constructor : 객체 생성자의 이름 식별
    • Object 객체의 메소드
      • toString() : 객체를 스트링 표현으로 바꾸는 역할
      • valueOf() : 객체와 관련된 경우의 원시값(숫자,스트링,부울값)을 리턴하고, 그렇지 않은 경우에는 객체 자체를 리턴


    String 객체

    • 스트링을 객체로 액세스 가능
    • String 객체의 프로퍼티
      • length : 문자에서 스트링의 길이 알아내는 역할
      • prototype : 모든 객체 유형이 지원
    String 메소드
    메 소 드 설 명
    charAt(index) 메소드가 적용되는 스트링의 지정된 인덱스에 있는 문자로 구성된 스트링을 리턴
    charCodeAt(index) 지정된 인덱스의 문자의 Unicode 인코딩 리턴
    fromCharCode(codes) 문자 코드의 컴마로 구분된 시퀀스에서 스트링 만듬
    indexOf(pattern) 스트링안에 들어있는 pattern 파라미터가 지정한 첫 번째 스트링의 인덱스 리턴, 패턴이 스트링 안에 들어있지 않으면 -1 리턴
    indexOf(pattern,startIndex) startIndex가 지정한 위치에서 검색을 시작하는 것을 제외하면 indexOf(pattern) 메소드와 같다.
    lastIndexOf(pattern) 스트링에 들어 있는 pattern 파라미터가 지정한 마지막 스트링의 인덱스 리턴, 패턴이 스트링 안에 들어있지 않으면 -1 리턴
    lastIndexOf(pattern,startIndex) startIndex가 지정한 위치에서 검색을 시작하는 것을 제외하면 lastIndexOf(pattern)과 같다.
    splitSeparator() 하나의 스트링을 분리자를 기반으로 하여 서브스트링의 배열로 분리
    substring(startIndex) startIndex에서 시작하는 스트링의 서브스트링을 리턴
    substring(startIndex,endIndex) startIndex에서 시작하고, endIndex에서 끝나는 스트링의 서브스트링을 리턴
    toLowerCase() 소문자로 변환된 스트링의 복사본 리턴
    toString() 객체의 스트링 값을 리턴
    toUpperCase() 대문자로 변환된 스트링의 복사본 리턴
    valueOf() 객체의 스트링 값을 리턴
  • 2006/09/28 16:12 2006/09/28 16:12
    이 글에는 트랙백을 보낼 수 없습니다
    서버용 운영체제를 바탕으로 만든 윈도우즈XP는 여러 서비스를 갖고 있다. 서비스는 윈도우즈XP가 하는 일을 각자 나눠서 도맡는 프로그램이다. 인쇄 명령이 떨어지면 인쇄 작업을 담당하는 서비스가 나서고, 새로운 PC부품을 꽂으면 플러그앤플레이를 맡은 서비스가 어떤 부품이라서 어떤 드라이버를 찾아 깔아야 하는지 나서는 것이다. 윈도우즈XP가 한꺼번에 여러 일을 척척 해낼 수 있는 것은 서비스 덕이다.

       

    하지만 서버용 운영체제 태생 때문인지 개인 이용자가 쓰는 PC와 알맞지 않은 서비스가 있다. 서버관련 네트워크 서비스든가, 인터넷 웹서비스 따위가 그렇다. PC에서 쓸 일이 없는 서비스는 윈도우즈가 부팅할 때 함께 떠서 리소스를 차지한다.      
    윈도우즈 몸무게를 줄여 온 힘을 내게 부어도 부족할 판인데 쓰지 않을 프로그램이 윈도우즈 발목을 잡고 있지 않은가. 필요 없는 서비스를 꺼서 윈도우즈가 씽씽 달리게 해보자.

       

    윈도우즈 관리자 콘솔(MMC)를 띄워 서비스 항목을 열자
    제어판 → 관리도구 → 서비스 아이콘을 누르면 윈도우즈 관리자 콘솔이 뜬다. 서비스 항목을 설정값으로 자동과 수동과 사용안함 세 가지를 가지고 있다. 자동은 부팅할 때 윈도우즈가 알아서 드라이버 파일을 읽어 들이고 서비스 프로그램을 수행하는 것을 말한다. 수동은 운영체제는 준비하고 있지만 다른 응용프로그램이 해당 서비스를 요청할 때 돌리는 것이다.      
    사용안함은 운영체제가 준비해 뒀지만 쓰지 않고 있는 서비스다.

       

    단계 1 제어판 → 관리도구 아이콘을 누른다.
       

       

    단계 2 관리도구 창에서 서비스 아이콘을 누른다.
       

       

    단계 3 윈도우즈 관리자 콘솔이 떴다. 서비스 항목을 누르면 값을 바꾸는 항목이 뜬다.
       

       


       
    쓰지 않는 서비스를 꺼서 윈도우즈를 쾌적하게 만들어 보자
       
    서비스 항목을 켜거나 끌 때 서비스 이름을 클릭해서 속성 창을 띄운 다음 시작 유형을 자동이나 수동, 사용안함으로 바꾸면 된다. 이용자에 따라 값을 바꾸면 에러가 뜨거나 먹통이 되는 위험한 상황이 벌어질 수 있으니 중요한 작업을 하는 PC에서는 서비스 변경 작업을 하지      
    않기를 권장한다.

       

       

       


    1 Alerter

    유닉스 시스템에서 관리자가 경고 메시지를 보낼 때 쓰는 것처럼 이용자와 컴퓨터에 관리용 경고 메시지를 보낸다. PC에서는 내 PC와 연결된 다른 사람이나 컴퓨터에 경고 메시지를 보낼 일이 없으니까 수동으로 된 초기값을 사용안함으로 바꾸자.
       
    초기값: 수동 → 권장값: 사용안함
       
       
    2 Application Layer Gateway Service
    인터넷 연결 공유나 인터넷 연결 방화벽을 쓸 때 필요하다. 더욱이 윈도우즈 XP가 기본으로 지닌 방화벽 서비스를 쓸 때는 수동이나 자동으로 설정돼 있어야 한다.
    초기값: 수동 → 권장값: 사용안함
       
    3 Application Management
    프로그램을 깔거나 삭제하는 일을 한다. 이 서비스를 멈추게 하면 응용프로그램을 깔거나 삭제할 수 없다. 초기값 수동을 그대로 둬야 하는 서비스다.
    초기값: 수동 → 권장값: 수동
       
    4 Automatic Updates
    마이크로소프트 윈도우즈 업데이트 사이트에서 업데이트 파일을 내려받고 까는 일을 한다. 서비스를 켜지 않아도 수동으로 업데이트하면 된다.
    초기값: 자동 → 권장값: 사용안함
       
    5 Background Intelligent Transfer Service
    쓰지 않는 네트워크 대역폭을 활용하는 서비스다. 하지만 보통은 쓰지 않는 서비스다. 웹호스팅 서비스처럼 네트워크 데이터를 많이 주고받는 서버가 쓸 일이다. 전문용어로 말하면 HTTP/1.1 서버와 데이터를 비동기 전송하는데 쓴다.
    초기값: 수동 → 권장값: 사용안함
       
    6 ClipBook
    잘라내기나 붙여넣기 할 때 쓴다. 이것을 다른 PC와 공유할 때도 이용한다. 하지만 다른 PC를 쓰는 이가 클립북에 저장된 정보를 언제든 열어볼 수 있기 때문에 보안상 쓰지 않는 것이 좋다.
    초기값: 수동 → 권장값: 사용안함
       
    7 COM+ Event System
    COM(Component Object Model) 구성 요소에 가입한 SENS(Supports System Event  Notification Service)는 이벤트 자동 분산을 제공한다. 이 서비스를 멈추면 중지되었다는 'DCOM' 오류를 보낸다.      
    수동으로 설정하면 많은 서비스들이 이 서비스에 보고를 시작한다. 쓰지 않아도 되는 서비스이니 사용안함으로 돌려놓자.
    혹시나 System Event Notification 서비스를 쓰거나 Optimize System 옵션으로 BootVis를 돌릴 때는 필요하다.
    초기값: 수동 → 권장값: 사용안함
       
    8 COM+ System Application
    com+ 기반 구성요소를 설정하거나 추적을 하는 일을 한다. 시스템에서 일어난 사건을 보고하는 System Event Notification 서비스를 쓰지 않는다면 사용안함으로 돌리자.
    초기값: 수동 → 권장값: 사용안함
       
    9 Computer Browser
    혼자쓰는 PC는 쓸데없는 서비스다. 네트워크에 있는 모든 PC 목록을 업데이트하고 관리한다. 또 이 목록을 다른 PC에 건내주기도 한다.
    초기값: 자동 → 권장값: 사용안함
       
    10 Cryptographic Services
    윈도우즈 파일이 서명되었나 확인하는 카탈로그 데이터베이스 서비스다. 신뢰하는 루트 인증기관의 인증서를 내 PC에 저장하거나 없애는 보호된 루트 서비스다. 인증서를 얻는 키 서비스와 같은 관리서비스 일을 한다. 이 서비스를 멈추면 모든 윈도우즈 프로그램을 깔 때 인증되지 않은      
    드라이버라는 메시지가 뜰 뿐 다른 말썽을 부리지 않는다. 단지 메시지 뿐이다. 하지만 수동으로 윈도우즈 업데이트를 할 때나 마이크로소프트가 직접 배포하는 프로그램을 깔 때는 띄워 놓아야 한다.
    초기값: 자동 → 권장값: 사용안함
       

    11 DHCP Client
    IP 보안 정책을 관리하고 ISAKMP/Oakley (IKE)와 IP 보안 드라이버를 띄우는 서비스를 쓰거나 인터넷 연결공유, 인터넷  연결 방화벽을 쓸 때 필요하다. 초고속 인터넷인 케이블 모뎀이나 ADSL, VDSL 서비스를 쓴다면 초기값인 자동을 그대로 두고,  인터넷을 쓰지 않거나 고정 IP를 쓰는 PC라면 사용안함을 선택한다.
    초기값: 자동 → 권장값: 자동
       
       
    12 Distributed Link Tracking Client
    네트워크에서 연결된 여러 PC에서 NTFS 파일을 주고받는 일을 담당한다. ntfs 5.0으로 포맷된 공유 드라이브를 쓰는 윈도우즈  2000과 XP 네트워킹에서는 쓸만한 서비스다. 공유 드라이브에 담긴 파일이 잘 있는지 바로가기 링크나 파일 정보를 항상 새로 고쳐 최신 정보를 갖고 있기 때문이다. 하지만 네트워크를 쓰지 않는 나홀로 PC라면 쓰지 않아도 된다.
    초기값: 자동 → 권장값: 나홀로 PC는 사용안함을 고른다.
       
    13 Distributed Transaction Coordinator
    데이터베이스와 메시지 대기열과 파일 시스템 따위와 같은 여러 리소스 관리자를 다스린다.
    Message Queuing 서비스를 쓸 때는 이 서비스가 필요하다. 쓰지 않는다면 필요없는 서비스다.
    초기값: 수동 → 권장값: 사용안함
       
    14 DNS Client
    내 PC가 속해 있는 도메인 이름 시스템(DNS)의 이름을 알아두어 캐시에 보관한다. 이 서비스를 멈춰도 인터넷 DNS를 알아채는데 전혀 문제 없으니 사용안함으로 돌려도 된다. 하지만 IPSEC 서비스를 쓸 때는 자동으로 해 둬야 한다. 이것은 특별한 경우이고 대부분      
    TCP/IP를 쓰는 PC에서는 필요없는 서비스다.
    초기값: 자동 → 권장값: 사용안함
       
    15 Error Reporting Service
    말썽 부리는 서비스와 응용프로그램 오류가 어떻게 행동했는지를 낱낱이 적어서 마이크로소프트에 보고한다. 이 서비스는 MS에 보고만 할 뿐  PC에 아무런 도움이 되지 않는다. 초기값 자동을 사용안함으로 돌리자.
    초기값: 자동 → 권장값: 사용안함
       
    16 Event Log

    이벤트 뷰어에 있는 구성요소와 윈도우즈에서 돌아가는 응용소프트웨어가 만든 사건기록 메시지를 기록해 두는 서비스다. 응용프로그램의 문제점이나 보안을 알아볼 때 쓸만하고 멈출 수 없는 서비스다.
    초기값: 자동 → 권장값: 자동
       
    17 Fast User Switching Compatibility
    PC를 여러 사람이 쓰는 곳에서 이용자와 응용프로그램을 따로 관리한다. 윈도우즈가 기본으로 지닌 ‘사용자 계정’을 맡고 있다. 나홀로 PC에서는 필요없는 서비스이니까 사용안함으로 돌리자.
    초기값: 수동 → 권장값: 사용안함
       
    18 Fax Service
    내 PC나 네트워크에서 쓸 수 있는 팩스 자원을 써서 팩스를 보내고 받는 일을 한다. 이 서비스는 팩스 모뎀을 내 PC에 달아놓았을 때나 쓸 수 있다. PC에 팩스 모뎀을 달아 쓰는 이는 적으니까 사용안함으로 설정한다.
    초기값: 자동 → 권장값: 사용안함
       
    19 FTP Publishing Service
    인터넷 정보 서비스(IIS) 스냅인을 써서 FTP 연결이나 관리하는 일을 한다. 기본으로는 IIS와 관련한 파일이 깔려 있지 않고 dnls 윈도우즈 설치CD에 담겨 있다. 서브U ftp서버와 같은 FTP서버 프로그램을 써서 이용하는 것이 효율 좋으니까 사용안함으로 돌리는 것이 좋다.
    초기값: 자동 → 권장값: 사용안함
       
    20 Help and Support
    ‘도움말 및 지원센터’를 수행한다. 이 서비스를 쓰지 않아도 이용자가 도움말 및 지원센터를 띄우면 알아서 ‘자동’으로 값이 바뀐다.      
    따라서 이 서비스를 쓰기 전까지 리소스를 아껴두자. 혹시나 도움말이 전혀 필요치 않거나 쓰지 않는다면 사용안함으로 설정한다.
    초기값: 자동 → 권장값: 수동
       
    21 Human Interface Device Access
    키보드와 원격제어, 갖가지 멀티미디어 장치에서 미리 설정해 둔 버튼을 쓰게 한다. 하지만 이런 재주를 이용하는 주변장치는 거의 없다.
    초기값: 수동 → 권장값: 자동
       
    22 IIS Admin
    로컬 웹서버나 FTP 서버를 관리하는 서비스다. 기본으로 깔려 있지 않지만 윈도우즈XP 설치CD를 이용해 깔 수 있다. PC에서 서버 프로그램을 돌리는 일은 드무니까 사용안함으로 설정한다.
    초기값: 자동 → 권장값: 사용안함
       
    23 IMAPI CD-Burning COM Service
    윈도우즈XP는 기본으로 CD를 굽는 재주를 부린다. 네로 버닝롬과 같은 리코딩 소프트웨어를 따로 쓴다면 전혀 쓸모없는 서비스다.      사용안함으로 설정해 두자.
    초기값: 수동 → 권장값: 사용안함
       
    24 Indexing Service
    내 PC나 이용당하는 원격 PC에 담기 파일의 내용이나 속성을 목록으로 만들고 쿼리 언어로 파일을 빠르게 읽게 한다. 윈도우즈 2000과 XP에서 가장 많은 자원을 차지하는 뚱뚱한 서비스다.
    초기값: 자동 → 권장값: 사용안함
       
    25 Internet Connection Firewall and Internet Connection Sharing
    네트워크 주소를 바꾸거나 주소를 정해준다. 또 이름을 확인하거나 소규모 네트어크 침입을 막는 서비스다. 보통 모뎀을 쓰는 PC가 이용하는  서비스다. 인터넷 공유나 방화벽 서비스를 쓴다면 자동으로 놓고 그렇지 않는다면 사용안함을 선택한다.
    초기값: 자동 → 권장값: 사용안함
       
    26 IPSEC Services
    IP 보안 정책을 관리하고 IKE와 IP 보안 드라이버를 시작한다. IPSEC를 쓰는 인터넷이나 네트워크에 접속할 때 ‘자동’으로 설정된다. 두루넷이나 하나로통신과 같은 ISP는 이러한 기술을 쓰지 않기 때문에 필요없는 서비스다.
    초기값: 자동 → 권장값: 사용안함
       
    27 Logical Disk Manager
    새로운 하드디스크 드라이브를 알아채고 감시한다. 디스크 볼륨 정보를 로컬 디스크 관리 서비스에 건내준다. 이 서비스는 동적으로 볼륨을 관리하는 디스크 관리를 구동할 때 필요하다. 따라서 하드디스크를 떼었다 붙였다 하지 않는다고 해도 웬만해선 ‘자동’으로 놓고 쓰는 것이 좋다.
    초기값: 자동 → 권장값: 자동
       
    28 Logical Disk Manager Administrative Service
    하드디스크와 볼륨을 구성한다. 디스크 관리 창이 뜰 때만 쓰는 서비스이니까 수동으로 되어 있다. 하드디스크 관련 서비스는 초기값 그대로 두는 것이 좋다.
    초기값: 수동 → 권장값: 수동
       
    29 Message Queuing
    보통 이용자에겐 전혀 쓸모없는 서비스다. 다른 시간에 수행하는 응용프로그램들이 잠깐 오프라인이 되기도 하는 네트워크와 시스템을 거쳐 통신하게 만드는 서비스다.
    초기값: 자동 → 권장값: 사용안함
       
    30 Message Queuing Triggers
    대기열에 메시지가 닿는 것을 com 구성요소나 나홀로 수행하는 응용프로그램의 재주와 연결하는 서비스다. 기본으로는 설치되어 있지 않지만 윈도우즈XP 설치CD에 담겨 있다.
    초기값: 자동 → 권장값: 사용안함
       
    31 Messenger
    PC끼리 경고 메시지를 주고받는 일을 맡는다. 가끔 성인정보를 파는 사람이 이 서비스로 많은 사람에게 스팸 메시지를 보내는 등 악용되기도 한다. 보통 사람에겐 필요없는 서비스다. 이 서비스는 msn 메신저와 상관없으니 사용안함으로 돌려도 된다.
    초기값: 자동 → 권장값: 사용안함
       
    32 MS Software Shadow Copy Provider
    마이크로소프트 백업 유틸리티를 쓸 때 필요한 서비스다. 보이지 않는 곳에서 복사하는 일을 한다. 이 서비스를 멈추면 중지되었다는 메시지가 이벤트 로그에 기록될 뿐 나쁜 영향을 끼치지 않는다.
    초기값: 수동 → 권장값: 사용안함
       
    33 Net Logon
    도메인 서버에 로그인할 때 쓴다. 도메인 네트워크에 가입하지 않은 사람한테는 쓸모없는 서비스다.
    초기값: 수동 → 권장값: 사용안함
       
    34 NetMeeting Remote Desktop Sharing
    인증받은 이용자가 넷미팅을 써서 원격으로 PC에 접근하게 한다. 이 서비스는 나도모르는 사이에 내 PC에 도둑이 들게 하는 문짝을 단 것과 같다. 당연히 이 서비스는 쓰지 않는 것이 좋다.
    초기값: 수동 → 권장값: 사용안함
       

    35 Network Connections
    네트워크나 전화접속 연결 폴더에 있는 개체(두루넷, 하나로통신 바로가기 아이콘)를 관리한다. LAN이나 원격 연결을 모두 보게 한다. 이      서비스는 네트워크를 관리할 때 필요하다. 인터넷을 쓰지 않는 PC라면 필요없다.
    초기값: 수동 → 권장값: 자동
       
    36 Network DDE
    내 PC 안에서 돌아가는 프로그램이나 다른 PC에서 돌아가는 프로그램들이 동적 데이터 교환(Dynamic Data Exchange:      DDE) 기술을 부릴 때 네트워크에서 안전하게 주고받게 한다.
    DDE 네트웍 접속은 오래된 소프트웨어를 빼고는 거의 필요가 없다. 따라서 사용안함으로 돌리는 게 좋다.
    초기값: 수동 → 권장값: 사용안함
       
    37 Network DDE DSDM
    DDE 네트웍 공유를 관리한다. 36번 네트웍 DDE와 마찬가지로 전혀 쓸 일 없는 서비스다.
    초기값: 수동 → 권장값: 사용안함
       
    38 NLA(Network Location Awareness)
    네트워크 구성과 위치 정보를 모으고 저장한다. 이 정보가 바뀌면 응용프로그램한테 일러바치는 일을 한다. 인터넷 연결 공유 서비스를 하는 서버가 되는 PC에서는 ‘자동’으로 설정된다. 그렇지 않은 PC는 사용안함을 골라놓자.
    초기값: 수동 → 권장값: 사용안함
       
    39 NT LM Security Support Provider
    메시지 대기열이나 텔넷 서버를 돌리지 않을 때는 거의 쓰지 않는 서비스다. 명령어 통로를 거치지 않는 원격 프로시저 호출(RPC) 프로그램을 안전하게 지키는 일을 한다.
    초기값: 수동 → 권장값: 사용안함
       
    40 Performance Logs and Alerts
    때마다 성능 데이터를 모으고 이 정보를 기록해 두거나 경고를 띄울 때 쓴다. 미리 설정해 둔 예약 매개 변수를 써서 로컬이나 원격 PC에서 성능 데이터를 수집하는 일을 한다. 제어판 → 관리도구의 성능 모니터에서 PC를 감시하게 했놓았다면 ‘자동’으로 설정한다.      
    수동으로 설정해 두면 어떠한 성능 기록이나 경고도 기록하지 않는다.
    초기값: 수동 → 권장값: 수동
       
    41 Plug and Play
    윈도우즈가 새로운 하드웨어를 알아채는 일을 한다. 이용자가 따로 건드리지 않아서 윈도우즈가 하드웨어 변경 내용을 알아채고 드라이버를 스스로 깔게 한다. 이 서비스를 멈추면 장치 관리자에서 장치 목록이 뜨지 않는다.
    초기값: 자동 → 권장값: 자동
       
    42 Portable Media Serial Number
    PC와 연결한 휴대용 음악 재생기의 등록정보를 알아채는 일을 한다. 실제로 이런 일을 쓰는 경우는 거의 없다. ‘사용안함’으로 설정해도 휴대용 음악 재생기를 연결해 쓰는데 문제가 없다.
    초기값: 자동 → 권장값: 사용안함
       
    43 Print Spooler
    나중에 인쇄하려고 인쇄파일을 메모리에 올려둔다. 이 서비스는 프린터를 쓰는 이에게 필요하다. 프린터를 쓰지 않는다면 사용안함으로 설정해 둔다.
    초기값: 자동 → 권장값: 사용안함

       

    44 Protected Storage
    개인 키와 같은 중요한 데이터를 보호된 저장소에 보관하고 권한 없는 서비스나 다른 이용자가 접근하지 못하게 막는다. 로컬 암호나 웹사이트의 자동완성과 같은 정보를 저장하는데도 쓴다. 이 서비스는 ‘자동’으로 기본 설정되어 있다. 이 서비스를 꺼서 이런 정보를 저장해 두지 않는다면 보안을 튼튼히 할 수 있다. 하지만 하나하나 암호를 써 넣는 것이 귀찮다면 서비스를 켜두어도 괜찮다.
    초기값: 자동 → 권장값: 사용안함
       
    45 QoS RSVP
    QoS RSVP(Quality of Service Resource ReServation Protocol)는 QoS를 알아채는 일꾼이      
    활성화 되었을 때 이들에게 필요한 네트웍 대역폭을 주려고 여유 대역폭을 찜해 놓는데 쓴다. 기본으로 20% 대역폭을 예약해 놓는다. 이 서비스를 쓰지 않는다면 쓰지 않던 20% 대역폭도 활용할 수 있다. 인터넷 속도가 빨라진다는 얘기다.QoS 패킷 드라이버는 TCP/IP  방식으로 인터넷에 접속할 때 기본으로 메모리에 뜬다. 이것을 쓰는 응용프로그램은 ‘자동’으로 설정해 둔다. 하지만 보통 PC는 이런 QoS를 쓰는 일이 드무니까 사용안함으로 설정해도 된다.
    초기값: 수동 → 권장값: 사용안함
       
    46 Remote Access Auto Connection Manager
    응용프로그램이 원격 DNS나 NetBIOS 이름이나 주소를 엿볼 때마다 원격 네트워크 연결을 하게 한다. 프로그램이 원격 주소를 요청할 때 자동으로 네트웍에 접속시켜주는 일을 하는 것이다. 이 서비스는 모뎀 전화접속을 할 때 필요하다. 모뎀을 쓰지 않는다면 필요 없는 서비스다.
    초기값: 수동 → 권장값: 사용안함
       

    47 Remote Access Connection Manager
    인터넷 연결 공유를 쓸 때 필요하다. 이 서비스는 인터넷 연결 공유를 할 때 필요한 연결 관리자다.
    초기값: 수동 → 권장값: 사용안함
       
    48 Remote Desktop Help Session Manager
    ‘원격 지원 기능’을 관리한다. 이 기술을 쓰지 않는다면 사용안함으로 돌려놓자. 이 서비스를 중지해도 원격 서비스를 쓰는데 전혀 문제 없다.
    초기값: 수동 → 권장값: 사용안함
       
    49 Remote Procedure Call (RPC)
    종점 매퍼나 갖가지 RPC 서비스를 맡고 있다. 대부분 다른 서비스를 돌리는데 꼭 필요한 서비스다. 멈출 수 없는 유일한 서비스이기도  한다.
    초기값: 자동 → 권장값: 자동
       
    50 Remote Procedure Call (RPC) Locator
    PRC 이름 서비스 데이터베이스를 관리한다. 보통 PC는 이 서비스를 쓸 필요 없으니까 사용안함으로 설정해도 된다.
    초기값: 수동 → 권장값: 사용안함
       
    51 Remote Registry Service
    원격 이용자가 내 PC에서 레지스트리 설정을 바꾸게 한다. 이 값을 자동으로 설정해 두면 원격 이용자가 지정된 레지스트리 경로 항목을 바꿀 수 있어 위험하다. 보안상 위험한 서비스이니 사용안함으로 돌리자

    초기값: 자동 → 권장값: 사용안함
       
    52 Removable Storage
    이동식 드라이브를 관리하는 서비스다. CD나 DVD 드라이브가 아닌 테잎 백업 장치를 말한다. 디지털카메라를 써서 USB 메모리 카드를      쓴다면 수동 값 그대로 둔다.
    초기값: 수동 → 권장값: 사용안함
       
    53 RIP Listener
    RIPv1(Routing Information Protocol version 1)을 쓰는 라우터가 보낸 라우트 업데이트를 알아챈다. 다중  라우터를 갖는 네트웍에서 RIP 메시지를 감지하고 다른 라우터를 알아채는 일을 한다. IP 라우팅 테이블에 라우터를 추가하는 서비스다.      
    기본으로 깔려 있지 않지만 윈도우즈XP 설치CD로 깔 수 있다. 보통 이용자는 이 서비스를 쓸 일이 없다.
    초기값: 수동 → 권장값: 사용안함
       
    54 Routing and Remote Access
    근거리 네트웍(LAN)이나 원거리 네트웍(WAN) 환경에 있는 사무실에서 라우팅 서비스를 쓸 때 필요한 서비스다. 보안을 위해 사용안함으로 해 놓자. 라우팅해야 하는 갖가지 네트웍을 쓸 때는 ‘자동’으로 놓는다.
    초기값: 수동 → 권장값: 사용안함
       
    55 Secondary Logon
    다른 자격 증명으로 프로세스를 시작하게 한다. 윈도우즈XP의 RunAs 서비스와 같다. 이 서비스를 써서 응용프로그램을 다른 이용자 권한으로 수행할 수 있다. 내 PC에 로그인한 사람에게 특정 프로그램의 수행 권한을 줄 때 쓸만하다. 윈도우즈 업데이트를 할 때가 그렇다. 하짐나 이 서비스도 보안허점이 많으니까 쓰지 않는 것이 좋다.
    초기값: 자동 → 권장값: 사용안함
       
    56 Security Accounts Manager
    이용자 계정의 보안 정보를 저장한다. Protected Storage 서비스처럼 로컬 이용자의 보안 정보를 저장하는 일을 한다.  이   서비스는 IIS Admin 서비스를 쓸 때 필요하다.
    초기값: 자동 → 권장값: 사용안함
       
    57 Server
    내 PC에 담긴 파일이나 인쇄 명령을 내리는 명령어 통로를 다른 PC도 네트워크에서 쓸 수 있게 한다. 파일이나 프린터를 공유하는데   쓴다. 보안상 이 서비스를 쓰지 않는 것이 좋다.
    초기값: 자동 → 권장값: 사용안함
       
    58 Shell Hardware Detection
    윈도우 탐색기가 드라이브나 메모리 카드와 같은 장치를 알아채게 한다. 메모리 카드를 쓰지 않는 이라면 사용안함으로 돌려도 된다. 이  서비스를 멈추면 드라이브에 내맘대로 아이콘이나 이름을 지을 수 없다.
    초기값: 수동 → 권장값: 사용안함
       
    59 Simple Mail Transport Protocol (SMTP)
    네트워크에서 e-메일을 보낼 때 쓴다. 내 PC를 e-메일 서버로 돌릴 때 쓰는 서비스다. 보통은 두루넷이나 하나로통신과 같은 ISP업체가 주는 e-메일 계정을 쓰거나 한메일이나 한미르와 같은 웹메일을 쓰니까 필요없는 서비스다.
    초기값: 자동 → 권장값: 사용안함
       
    60 Simple TCP/IP Services
    몇몇 오래된 유닉스 네트웍 서비스를 돌리는 일을 한다. 기본으로 깔려 있지 않은 서비스다.
    초기값: 수동 → 권장값: 사용안함
       
    61 Smart Card
    윈도우즈가 스마트 카드를 읽게 한다. 내 PC나 네트웍에 연결된 PC가 인증을 할 때 필요한 스마트 카드를 쓸 때 필요하다. 보통은   스마트 카드를 쓰지 않으니까 ‘사용안함’으로 돌리자.
    초기값: 수동 → 권장값: 사용안함
       
    62 Smart Card Helper
    플러그앤플레이를 부리지 않는 구형 스마트 카드를 쓰게 한다. 스마트 카드를 쓰지 않는 사람한테 필요없는 서비스다.
    초기값: 수동 → 권장값: 사용안함
       
    63 SNMP Service
    네트워크 장치가 돌아가는 것을 감시하고 네트워크 콘솔 워크스테이션에 보고하는 일꾼(agent)를 포함하는 서비스다. 기본으로 깔려 있지 않은 서비스다.
    초기값: 수동 → 권장값: 사용안함
       
    64 SNMP Trap Service
    로컬이나 원격 SNMP 일꾼이 만든 트랩 메시지를 받아서 내 PC에서 돌아가는 SNMP 관리 프로그램한테 건내준다. 기본으로 깔려 있지 않은 서비스다.
    초기값: 수동 → 권장값: 사용안함
       
    65 SSDP Discovery Service
    홈 네트워크에 유니버셜 플러그 앤 플레이 장치를 알아채게 한다. 네트웍에 연결된 PC에서 PNP장치가 아닌 것을 찾아내는 일을 한다.      
    유니버설 플러그 앤 플레이는 TCP/IP 네트웍으로 스캐너나 프린터 장치에 접속하는데 쓰는 것이다.
    초기값: 수동 → 권장값: 사용안함
       
    66 System Event Notification
    COM+ Event System 서비스와 함께 돌아간다. 이 서비스는 로그온이나 종료와 같은 시스템 사건이 벌어진 것을 기록한다. 보통은 이러한 사건 기록이 쓸모가 없다. 이벤트 로그가 중지되었다는 메시지만 뜰 뿐 다른 문제는 생기지 않으니 사용안함으로 돌려놓자.
    초기값: 자동 → 권장값: 사용안함
       
    67 System Restore Service
    시스템 복구 지점을 만들고 필요한 경우 해당 지점으로 복구한다. 이 서비스도 많은 자원을 차지한다. 윈도우즈가 맛이 가면 이 서비스를 써서 복구를 하지 않고 새로 까는 것이 낫다.
    초기값: 자동 → 권장값: 사용안함
       
    68 Task Scheduler
    이용자가 PC에서 하는 작업을 자동화하고 이것을 예약하게 한다. 이 서비스는 유지나 관리, 백업, 자동업데이트와 같은 작업을 예약해 두는  데 쓴다. 이런 일을 윈도우즈가 똑바로 하지 못하니까 이용자가 손수 해주는 것이 좋다. 따라서 이 서비스는 굳이 자동으로 놓고 쓸 일이  없다.
    초기값: 자동 → 권장값: 사용안함
       
    69 TCP/IP NetBIOS Helper Service
    TCP/IP에서 NetBIOS 서비스나 NetBIOS 이름확인 지원을 쓰게 한다. NetBIOS를 쓰지 않는다면 사용안함으로 돌려놓자.
    초기값: 자동 → 권장값: 사용안함
       
    70 TCP/IP Printer Server
    TCP/IP에서 line printer 프로토콜을 쓰는 인쇄 작업을 한다. 이것은 유닉스 프린트 서버를 설정하는데 쓰는 것이다. 유닉스와 관련 없는 PC는 사용안함으로 설정해 두자.
    초기값: 자동 → 권장값: 사용안함
       
    71 Telephony
    내 PC나 네트웍에 연결된 서버 컴퓨터에서 전화 통신 장치나 IP 기반 음성 연결을 하는 프로그램에게 TAPI(telephony API)를 한다. 전화 모뎀을 쓰지 않는 PC는 쓸모없는 서비스다.
    초기값: 수동 → 권장값: 사용안함
       
    72 Telnet
    원격 이용자가 내 PC에 로그인해서 소프트웨어를 수행하게 하는 서비스다. 보안상 이유 때문이라도 쓰지 않는 서비스다. 사용안함으로 돌려놓자.
    초기값: 수동 → 권장값: 사용안함
       
    73 Terminal Services
    다른 PC의 바탕화면이나 소프트웨어와 연결하고 여러 이용자가 한 PC에 대화형으로 연결하게 한다. 보안상 이유 때문이라도 쓰지 않는 것이 좋다.
    초기값: 수동 → 권장값: 사용안함
       
    74 Themes
    윈도우즈XP 테마나 바탕화면 색깔을 표시하는 서비스다. 윈도우즈 테마는 속도를 갉아먹는 주범이니 이 서비스는 쓰지 않는 것이 좋다. 이  서비스를 멈추면 바탕화면 테마를 쓸 수 없다.
    초기값: 자동 → 권장값: 사용안함
       
    75 Uninterruptible Power Supply
    내 PC와 연결한 무정전 전원 장치(UPS)를 관리한다. UPS를 달아 쓰지 않는 사람에게는 필요없는 서비스다. UPS를 쓰는 이는 초기값 그대로 둔다
    초기값: 수동 → 권장값: 사용안함
       
    76 Universal Plug and Play Device Host
    UPnP는 네트웍으로 다른 PC와 연결한 스캐너나 프린터에 접속하는데 필요한 서비스다. 네트웍으로 다른 장치를 쓰지 않는 PC는 필요없는  서비스다.
    초기값: 수동 → 권장값: 사용안함
       
    77 Upload Manager
    네트워크에서 클라이언트와 서버가 파일을 동기나 비동기 전송할 때 필요한 서비스다.
    초기값: 수동 → 권장값: 사용안함
       
    78 Volume Shadow Copy
    백업이나 다른 목적에 쓰는 볼륨 새도 복사 파일을 관리한다. 이 서비스를 중지해도 이벤트 로그에 알림 메시지만 뜰 뿐 다른 문제는 일어나지 않는다.
    초기값: 수동 → 권장값: 사용안함
       
    79 WebClient
    윈도우즈에서 돌아가는 소프트웨어가 인터넷으로 연결한 웹페이지 파일을 고치거나 읽게 한다. 이 서비스는 아직까지 활용되고 있지 않은 필요없는 것이다.
    초기값: 수동 → 권장값: 사용안함
       
    80 Windows Audio
    윈도우즈에서 돌아가는 프로그램이 지닌 오디오 장치를 관리한다. 음악을 들을 때 필요한 서비스이지만 사운드카드가 없다면 중지해도 된다.
    초기값: 수동 → 권장값: 자동
       
    81 Windows Image Acquisition (WIA)
    윈도우즈가 스캐너나 카메라를 알아채게 한다. 이 서비스는 몇몇 스캐너나 카메라를 알아차릴 뿐이니까, 서비스를 중지하고 스캐너나 카메라를 쓰지 못한다면 원래 값으로 돌린다.
    초기값: 수동 → 권장값: 사용안함
       
    82 Windows Installer
    확장자 MSI 파일에 적혀 있는 가르침에 따라 소프트웨어를 설치하거나 복구, 제거한다. 이 서비스를 멈추면 .msi 파일을 깔지 못하게   된다.
    초기값: 수동 → 권장값: 수동
       
    83 Windows Management Instrumentation
    서비스 설정 화면에 보이는 버튼을 나타내거나 버튼이 가리키는 설정 창으로 옮기는 일을 한다. 전문용어로 하면 정보에 접근하는 공용 인터페이스나 개체 모델을 제공한다. ‘자동’값 그대로 두는 것이 좋다.
    초기값: 자동 → 권장값: 자동
       
    84 Windows Management Instrumentation Driver Extension
    Windows Management Instrumentation 서비스와 관련한 드라이버 정보를 건내주는 일을 한다. 수동 값 그대로 두는 것이 좋다.
    초기값: 수동 → 권장값: 수동
       
    85 Windows Time
    네트웍에서 모든 클라이언트나 서버 컴퓨터의 날짜와 시간을 맞추는 일을 한다. 내 PC에서는 인터넷 시간서버를 이용해서 시계를 정확하게 맞추는 일을 한다. 7일마다 시간을 맞추는데 그 7일동안 자원을 낭비하는 셈이다. 일단은 사용안함으로 돌려놓고 시간이 맞지 않을 때마다 시간을 맞추는 전문 유틸리티를 따로 쓰는 것이 낫다.
    초기값: 수동 → 권장값: 사용안함
       
    86 Wireless Zero Configuration
    윈도우즈가 무선 네트웍 장치를 알아채게 한다. 무선LAN을 쓰지 않는다면 쓸모없는 서비스다.
    초기값: 수동 → 권장값: 사용안함
       
    87 WMI Performance Adapter
    WMI HiPerf 공급자에게 성능 라이브러리 정보를 건내준다. 거의 쓰지 않는 서비스이니 사용안함으로 돌려놓자.
    초기값: 수동 → 권장값: 사용안함
       
    88 Workstation
    내 PC가 다른 PC에 접속할 때 필요한 서비스다. 클라이언트 PC의 원격 서버 연결을 만들고 관리한다. 인터넷 접속이나 파일 공유, 프린터 공유 일을 하는 것이다. 기본값 자동을 그대로 두는 것이 좋다.
    초기값: 자동 → 권장값: 자동
       
    89 World Wide Web Publishing Service
    인터넷 정보 서비스(IIS) 스냅인을 써서 웹 연결이나 관리를 한다. 내 PC에서 웹서버를 돌릴 때 쓰는 서비스인 것이다. 기본으로 깔려 있지 않다.
    초기값: 자동 → 권장값: 사용안함

    2006/09/27 22:35 2006/09/27 22:35
    이 글에는 트랙백을 보낼 수 없습니다
    찜질방등에서 먹는 맥반석 계란, 혹은 구운 계란.
    말랑말랑하고 고소한 맥반석 계란 집에서 만들 순 없을까요?
    맥반석 계란을 좋아하는 필자는 연구를 해 보았습니다.
    별 다은 시설도 없이 집에서 만드는 방법.
    그리고 고안해냈죠 네..
    여러분 구운 계란을 찜질방에서 어떻게 익히는지 아십니까?
    맥반석의 비밀은 바로 사우나입니다.
    100도씨를 육박하는 사우나에 계란이 있게되면 그 공기의 열로 익게 되는것이죠.
    (아, 사람의 경우 몸에서 땀이 나오기 때문에 안 익고 버틸 수 있는 것입니다.)

    그럼 사우나에 착안하여 고안해낸 것이 바로 이것!

    사우나와 똑같은 환경을 만들기 위하여 삼면이 밀폐된 유리컵의 위를 밀봉 시켰다.
    분명 이렇게 하면 수증기나 수분이 없이 완벽하게 계란에 직접적으로 열이 전달될 것이다.

    완전히 수분이 들어가지 않게 하기 위해 비닐 봉지로 다시 그 위에 밀봉을 하고,줄로 묶어 끊는 물에 끊이기 시작하였다. 컵이 넘어지지 않게 하기 위해 숫가락으로 고정을 시켰다. 이제 익기만 하면 된다.



    엄청난 화력으로 90분 가량을 끓였다. 컵에는 수분이 전혀 들어가지 않았다. 정말 90분가량 오로지 열(熱)로만 익히게 되는 계란. 구운 계란이 되기를 바라면서... 성공시 돈을 벌겠다는 상상을 하며...

    <90분 후의 계란의 모습>
    속에서 약간의 김이 모락모락 난다.
    컵 밖의 계란은 삶아졌지만 컵 속 계란은 구워진 것이다. 그래서 모락모락 김이 나는 것이다.

    충분히 익힌 계란이 들은 컵을 꺼내고 가까이서 촬영해 봤다.
    보면 위의 밀봉한 휴지는 비닐의 속에서 젖지 않았으나 계란에는 송송 물이 맻혀있는 것을 볼 수 있다. 이는 계란 자체에서 빠져나온 물로써 사람이 사우나에서 땀을 흘린 것과 같은 현상인 것이다. 계란은 열에 자신의 노폐물을 밖으로 빼면서 익어 신선하고 맛있는 초콜렛빛 맥반석 계란이 된 것이다.

    자, 계란이 완성 되었다. 아직 뜨겁다. 이 녀석은 내 생에 처음으로 직접 만든 구운 계란이다. 이 녀석을 먹기전에 익었는지 확인해 보기 위하여 물컵에 넣어봤더니 가라앉았고 바닥에 굴려 봤더니 팽이처럼 돌아갔다. 이 녀석은 구워진 것이 확실했다. 부분 기대를 안고 계란을 까봤다!!!!!
    짜잔!!!!!
    기대하시라!!!!!!
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    집에서 만든 구운 계란!!!!!!!!!!!!!!!!!
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    짜잔!!!!
    .
    .
    .
    .
    .
    .
    실패
    2006/09/22 11:26 2006/09/22 11:26
    이 글에는 트랙백을 보낼 수 없습니다
    게임  2006/09/21 14:04






    정말 죽이는구먼 ~!~!
    2006/09/21 14:04 2006/09/21 14:04
    이 글에는 트랙백을 보낼 수 없습니다
    게임  2006/09/20 14:20
    2006/09/20 14:20 2006/09/20 14:20
    이 글에는 트랙백을 보낼 수 없습니다
    Web_developing/PHP  2006/09/16 22:04
    출처 블로그 > 행복이네 집
    원본 http://blog.naver.com/prebetty79/100028415343

    폼변수 다루기

      폼변수

       PHP 스크립트에서 폼 필드 값은 PHP 변수처럼 접근 할수 있다.

       3가지 방법이 있다.

         ex)

              $tireqty                                  //짦은 스타일

              $_POST['tireqty']                   // 중간 스타일

              $HTTP_POST_VARS['tireqty']  // 긴 스타일

        1. 짧은 스타일 : register_globals를 활성화 시켜야 쓸수 있다. (비추천)

                                지역변수와 혼란을 야기 한다. 4.2.0이후로 비활성화 되어있다.

        2. 중간 스타일 : 추천되는 방식(4.1.0이후에서만 가능)

        3. 긴 스타일 : 지양되어 왔다. 모든 버전에서 사용할수 있어 이식성은 높다.

                            성능에 좋지 않다. registre_long_arays로 비활성화 할수 있다.

    식별자(Identifier)

    dfe

      - 식별자는 변수의 이름을 말한다.

     - 길이 제한은 없으며 문자,숫자,'_', '$'로 만들 수 있다.

      - '$'는 가변변수때문에 조심해서 사용해야 한다.

      - 숫자는 매 앞에 올수 없다.

      - 대소문자를 구분한다.

    변수형

    : 변수의 형(type)은 저장된 데이터의 종류에 따라 정해진다.

       기본데이터형

         ■ Integer : 모든 숫자

         ■ Float

         ■ String

         ■ Boolean

         ■ Array

         ■ Object

         이 외에 NULL형과 resource형(외부자원 ex DB연결)이 있다.

    형 강도(Type Strength)

    PHP는 형 강도가 매우 약한다. 변수에 저장된 값에 따라 형이 결정된다.

         $a = 0;

         $a = 0.00;

           // $a는 처음엔 정수형이였다가 실수형으로 바뀐다.

         $a = 'Hello';  // 이것도 가능하다 이제 $a는 문자열이다

    가변 변수(variable varialbes)

    :  가변변수를 사용하면 변수의 이름을 동적으로 바꿀수있다.

      ex)

       $varname = 'b';

       $$varname = 5;

     

      위는 $b = 5 와 하는 것과 동일하다.

      

    상수

      - 상수는 define 함수를 사용하여 상수를 정의한다.

        ex)

            define('TIREPRICE' , 100);

            define('OILPRICE', 10);

            define('SPARKPRICE', 4);  

      - 상수의 사용

         : 변수는 $를 붙이지만 상수는 상수의이름만 적어주면 된다.

        ex)

          echo TIREPRICE;


    변수의 범위(scope) 6개의 범위를 가지고 있다.

    - 수퍼글로벌 변수는 스크립트 전역에서 사용할 수 있다.

    - 한번 선언된 상수는 스크립트 전역에서 사용할 수 있다. 즉 함수의 안과 밖 모두에서 사용할 수 있다.

    - 전역변수는 스크립트 내에서 정의된 변수로 스크립트 내에서 사용할 수 있지만, 함수 안에서는 사용할 수 없다.  

    - 함수 안에서 정의된 변수는 함수 내에서만 사용할 수 있다.

    - 함수 안에서 전역으로 정의된 변수는 함수 밖에서는 사용할 수 없지만 매 사용 시마다 값이 저장되어 다음에 사용할 수 있다 ???

    - 함수 안에서 사용된 변수는 함수가 끝나면 삭제된다.


    수퍼글로벌 전체 리스트

      - $GLOBALS

      - $_SERVER

      - $_GET

      - $_POST

      - $COOKIES

      - $_FILES

      - $_ENV

      - $_REQUEST

      - $_SESSION



    Operation(연산자)

    대부분 C, Java랑 비슷하고 틀린부분만 정리

    - 문자열 연산자   '.' : 문자열을 앞뒤로 붙여서 새로운 문자열을 만든다.

      ex)

         $a = "Bob's";

         $b = 'Auto Parts';

         $result = $a.$b;


       결과 $result에 저장된 값은 "Bob's Auto Parts"이다.

      - 산술 연산자

       : 산술 연산자의 operand(피연산자)는 정수와 실수형으로만 쓰일 수 있다. 만약 문자열로 산술연산을 시도한면 문자열을 숫자로 바꾸어서 실행한다. 문자열에 "e"나 "E"가 들어있다면 실수형으로 변화 한다. 그 외에는 정수형으로 변환. PHP는 문자열 처음에서 숫자를 찾아서 그것을 값으로 인식하는데, 만약에 문자열에 숫자가 없다면 문자열의 값은 0이 된다.


     - 참조 연산자(Reference)

       : C의 &연산자와 같음..

        ex) $a = 5

              $b = $a; --> $a, $b 서로 다른 메모리 영역을 가진다.


              $a = 5;

              $b = &a; 

              &b = 7    // $a, $b 서로 같은 메모리영역을 가진다 즉 $a, $b가 7


               unset($a)  : 서로의 참조를 다르게 한다 (관계를 떼어놓을 수 있다)


    - 비교연산자(Comparison Operatiors)

         identical operator (===) : 두 피연산자가 값이 같고 같은형일 때만 true를 리턴한다.

         Not Identical (!==)  : != 와는 다르다

         Not Equal (<>) : 같지 않다. (!=) 와 같이 동일한 의미로 쓰인다.

    - 에러 억제 연산자(error suppression operator) : @

        : '@'은어떠한 표현식에도 쓸수 있다.

        ex) $a = @(57/0)

         '@'가 없다면 위 문장은 "0으로 나누기"에 의한 에러가 발생하지만 '@'를 앞에 써주어서 에러는 무시하고 넘어간다. 만약 이런 방식으로 억제한다면 에러를 처리하는 코드를 작성해야 한다. 만약 PHP에서 track_error를 설정해 놓았다면 에러메시지를 전역변수인 $PHP_erromsg에 저장한다.


    - 실행 연산자(execution operation)

     :  '`' 와 '`'로 이루어진 한 쌍의 연산자로 '`'는 홑따옴표(')와는 다른 키보드 ~아래에 있다.

       PHP에서 서버의 커맨드 라인에서 실행하고 싶은 것이 있다면 `` 사이에 명령어를 쓰면된다.

       그러면 ``의결과값이 표현식의 리턴값이 된다.

       EX)

          유닉스 환경

            @out = `ls -la`;

            echo '<pre>'.$out.'</pre>';

         그러면 시 디렉토리의 파일 리스트가 보이게 된다.


        

    - 배열 연산자

       +       |    $a + $b    |  $a와 $b가 가지고 있는 모든값을 반환한다(합집합)

      ==       : $a, $b가 같은 요소를 가지고 있으면 true

      ===     | $a, $b가 같은 요소를 같은 순서로 가지고 있으면 true

      !=

      <>

      !==


    변수와 관련된 함수

    - 변수의 데이터 형을 검사하고 설정하기

     

          string gettype(mixed var);

             : 'boolean", "integer", "double", "string", "array", "object", "resource", 혹은 NULL을 반환한다. 표준 데이터 형이 아니면 "unknown"을 반환


          bool settype(mixed var, string type);


           ■ is_array()

           ■ is_double(), is_float(), is_real() (모두 같은 함수)

           ■ is_long(), is_int(), is_integer() (모두 같은 함수)

           ■ is_string()

           ■ is_object()

           ■ is_null()

           ■ is_scalar() - 변수가 스칼라 변수인지 확인한다. 즉 정수형, 불리어형, 문자열이나 실수형인지 확인한다.

           ■ is_numeric() - 변수가 숫자나 혹은 숫자 문자열인지 확인한다.

           ■ is_callable() - 변수에 저장된 값이 호출할 수 있는 함수의 이름인지 확인한다.


    - 변수 상태 검사

       boolean isset(mixed var);

         : 이 함수는 변수의 이름을 인자로 받아서 만약 이 변수가 존재한다면 true를 반환한다.

          , 로 연결된 변수들을 주면 모든 변수가 존재해야 true를 반환

       boolean unset(mixed var);

        : 인자로 받은 변수의존재 자체를 없애고 true를 반환한다.

      empty(mixed var);

        : 변수가 존재하고, 비어 있지 않으며, 0이 아닌값을 가지고 있다면 true를 리턴

       

     - 변수형 변환

       int intval(mixed var[, int base]);  base :진수 (10, 2, 16)

       float floatval(mixed var);

       string strval(mixed var);

         

    == 제어문 ==

     대부분 C와 비슷하지만, 틀린점만 요약하면

     

      1.  else if    -->  elseif  와 같이 붙여서 쓴다   

      2. 루프를 빠져나갈때 'continue', 'break' 이외에 'exit' 라는 제어문이 있다.

         'exit' : 루프를빠져나가 PHP 스크립트를 완전히 끝낸다.

      3. 대체 제어 구조

          { } 로 구역을 정하는 것이 아니라

            '{' 대신에 ':' 를 쓰고,

            '}' 대신에 사용한 제어구조에 따라, endif, endswitch, endwhile, endfor, endforeach를 쓸수있다.

         ex)

          if( $totalqty == 0 )

          {

               echo 'You did not ... ';

               exit;

          }

            를 아래와 같이 쓸수 있다.

          if( $totalqty == 0 ) :

               echo 'You did not ... ';

               exit;

          endif

       4. declare

         declare (directive)

         {

               // block

         }

           이 구조는 코드 블록에서 실행 지침(execution directive)를 설정하기 위해 사용된다.

           단 하나의 실행 지침인 tricks 만이 구현되어있는데 tricks=n이라는 방식으로 지침을 삽입할 수 있다. 코드 블록내에 있는 특정 함수 중 n개의 코드 행을 실행 시킬 수 있어 디버깅에 매우 유용한다.

    2006/09/16 22:04 2006/09/16 22:04
    이 글에는 트랙백을 보낼 수 없습니다

    인터넷 서비스를 계획하다 보면 차후에 많은 양의 데이터를 각각의 서버별로 어떻게 동기화를 실행할것인지 걱정이 될것이다. 물론 많은 자금을 들여서 스토리지를 구입을 하면 좋지만, 웹서버 3-4대분량이나 소량의 데이터를 위해서 스토리지를 구입하기에는 가격이 만만하지 않다.

    이런 중소형의 미러링을 위해서 생각해 볼수 있는 방법중에 하나가 rsync다. rsync는 파일크기의 변화나 시간의 변화등을 이용 동기화를 한다. 테스트 결과 적은량의 리소스로 빠른동기화의 효과를 볼수 있었다. 물론 원격에서 접근해서 미러링을 한다는 것 자체가 보안에 문제가 있기는 하지만, 매우 유용한 프로그램인 것은 확실하다. 어떻게 사용하느냐는 사용자들의 선택일 것이다.

    +Rsync의 주요 특징

    / 링크, device, 소유자, 그릅, 허가권 복사를 지원

    / GNU tar와 비슷한 exclude, exclude-from 옵션 지원

    / RSH 또는 SSH등 사용가능

    / root 권한이 필요없음

    / anonymous 또는 인증 rsync 서버 지원(미러링에 유용함)

    +Install #1 소스 설치

    Rsync의 설치는 매우 간단하다. 설치라고 할것도 없다. 요즘 리눅스 플랫폼에는 거의 기본으로 들어있기 때문이다. 혹시 모르니 간단하게 설치를 해보자. 설치는 소스설치와 RPM설치로 진행하겠다. 될수 있으면 RPM으로 설치하는것을 권장한다. rsync홈페이지에 가보면 리눅스 플랫폼 외에도 다양한 플렛폼에서 사용할수 있도록 바이너리 화일이 제공된다.

    먼저 소스 설치를 해보자. 아래 링크에서 Rsync소스 파일을 다운로드 받는다. 적당한 디렉토리로 이동후 압축을 해제하고 설치해 보자. configure옵션은 별다른게 없다. install화일에도 아래와 같이 나와있었다.

    / 소스 다운로드 : rsync-2.5.6.tar.gz

    [root@localhost]#
    [root@localhost]# tar xvfz rsync-2.5.6.tar.gz[root@localhost]# ./configure[root@localhost]# make[root@localhost]# make install

    위와 같이 소스로 설치할 경우 rsync실행화일은 /usr/local/bin/rsync에 생성이 되었다. 혹시라도 패스 설정이 안돼 있다면 /usr/local/bin을 넣어주기 바란다.

    +Install #2 RPM 설치

    RPM설치는 기본적으로 리눅스에서 제공이 되기 때문에 간단히 설명하겠다. 그냥 up2date로 설치하거나, 패치지 구해서 설치하면 된다. rpm패치지는 아래 링크에서 받으면 된다.

    / RPM 다운로드 : rsync-2.4.6-1.i386.rpm

    [root@localhost]#
    [root@localhost]# up2date rsync실행전에 rhn에 등록이 되어있어야 한다.[root@localhost]# rpm -Uvh rsync-2.4.6-1.i386.rpm

    rpm설치시 rsync실행화일 경로는 /usr/bin/rsync이다.

    +Rsync의 설정

    rsync는 xinetd기반으로 동작한다. 아래와 같이 설정화일을 만들어 준다. 아래 파일은 TCP 837포트를 이용해 미러링을 시킬 때 설정하면 된다. 만약 SSH를 사용할 것이라면 별도의 설정화일은 필요하지 않다.

    [root@localhost]#
    [root@localhost]# vi /etc/xinetd.d/rsyncservice rsync {         disable = no         socket_type = stream         wait = no         user = root         server = /usr/bin/rsync         server_args = --daemon         log_on_failure += USERID }[root@localhost]# /etc/rc.d/init.d/xinetd restart

    xinetd를 재시작 시키면 아래와 같이 873번 포트가 열릴 것이다.

    [root@localhost]#
    [root@localhost]# nmap localhost873/tcp    open    rsync

    이제 rsyncd.conf 설정화일을 작성해 보자. rsyncd.conf화일은 TCP 837포트를 사용할 때 설정해줘야 된다. 필자는 백업용도의 미러링 설정을 할 것이다.

    [root@localhost]#
    [root@localhost]# vi /etc/rsyncd.conf[/home/backup]path = /home/backupcomment = www.nasord.comuid = nobodygid = nobodyuse chroot = yesread only = yeshosts allow = 192.168.0.2max connections = 3timeout 600

    설정화일 옵션이다. 옵션은 간단하며, 기본적으로 위의 옵션들만 있으면 동작이 된다. 나머지 옵션들은 man을 참고 하기 바란다.

    [/home/backup] 서비스명
    path : 미러링 경로
    comment : 설명
    uid : 파일전송하는 사용자의 id. 기본값은 nobody
    gid : 파일전송하는 사용자의 그룹 id. 기본값은 nobody
    use chroot : 위의 path를 root 디렉토리로 사용. 보안상 필요함.
    read only : 읽기전용
    hosts allow : 호스트별 접속허용. 기본값은 all host이므로 보안을 유지하려면 반드시 설정함
    max connections : 동시접속자수
    timeout : 클라이언트에서 접근시 타임아웃시간. anonymous 로 운영하는 경우 설정을 해야 클라이언트가 죽었을 때 서버에서 접속을 해체할 수 있음.

    보안상 hosts allowuse chroot는 설정을 해줄 것을 권장한다.

    +클라이언트 실행

    위의 설정으로 서버측 설정은 모두 끝났다. 이제 실제로 동기화를 시켜보자. 실행방법은 TCP 873포트를 이용한 실행과 SSH를 이용한 실행으로 나눠서 설명하겠다.

    / 873 포트를 이용한 미러링

    [root@localhost]#
    [root@localhost]# rsync -avz hostname(IP)::서비스명 /백업받을 경로ex) [root@localhost]# rsync -avz 192.168.0.1::/home/backup /home/admin

    / ssh를 사용한 미러링

    ssh를 사용할때는 위에서 설정한 xinetd설정화일과 rsyncd.conf화일이 필요없다. 사용자 인증만되면 동기화를 시킬수 있다.

    [root@localhost]#
    [root@localhost]# rsync -avz -e ssh hostname(IP):/타겟 경로 /백업 받을 경로ex) [root@localhost]# rsync -avz -e ssh 192.168.0.1:/home/backup /home/admin

    rsync의 실행옵션은 무지 많다. 다 알려면 복잡하고, 아래 옵션만 알아도 사용하는데 지장없다. 나머지 옵션이 궁금하면 man을 참고 바란다.

    / -a는 archive mode (심볼릭 링크, 속성, 퍼미션, 소유권등 보존).

    / -v verbose(상세하게 보여움).

    / -z compress(전송시 압축을 함).

    / -u update only(새로운 파일을 덮어쓰지 않음)

    / --delete 서버쪽에 없고 클라이언트쪽에만 있는 파일을 지움

    위의 실행 예제를 보면 호스트 설정다음에 : "콜론"이 보일것이다. : 는 ssh나 rsh를 이용할 때 사용하고 ::는 TCP 873포트를 이용할때 설정해 주면 된다. 타겟경로를 지정해줄 때도 경로뒤에 /가 붙는 것과 안붙을 경우 차이가 난다. 타겟경로를 /home/backup라고 해주면 backup폴더가 생성되고 자료들이 backup폴더 안으로 들어가고 타겟 경로를 /home/backup/라고 해주면 백업 경로에 바로 저장이 된다. 주의 하기 바란다. 주기적인 미러링을 위해서는 cron을 이용하여 동기화 시키면 된다.

    +설치 후기

    Rsync는 상당히 유용한 도구임에는 틀림없다. 하지만 보안상 취약하니 설정에 주의해서 사용해야 된다. 2002년 rsync의 취약점을 이용한 exploit이 나왔다. 2.5.1버전이나 이전 버전들에 한해서 적용이 되는 것이니 2.5.1버전 이상을 사용해야 된다. 마지막으로 rsync영문 매뉴얼을 링크 걸어 놓겠다. 참고 하기 바란다.

    2006/09/16 16:54 2006/09/16 16:54
    이 글에는 트랙백을 보낼 수 없습니다
    웅쓰:웅자의 상상플러스
    웅자의 상상플러스
    전체 (379)
    게임 (5)
    영화 (2)
    기타 (23)
    맛집 (5)
    영어 (2)
    대수학 (3)
    형태소 (5)
    Hacking (9)
    Linux (112)
    HTML (48)
    Application_developing (48)
    Web_developing (102)
    Window (11)
    «   2006/09   »
              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 27 28 29 30
    1. 2016/01 (1)
    2. 2015/12 (3)
    3. 2015/10 (3)
    4. 2015/03 (2)
    5. 2015/01 (4)