2012년 7월 29일 일요일

지난 일기 6/1


proc 디렉토리는 메모리상의 공간을 말하는 것이 참 재미있다.
------------------------------------------------------- 
Linux필수 디렉토리에 대한 각 기능설명!! 
 * 각각의 디렉토리에 대해서 *



도스와는 달리 유닉스는 설치 즉시
상당히 복잡한 파일 시스템이 만들어져
있다. 그리고 그것들은 각각의 고유한
의미들을 가지고 있다.

우선 루트로 로그인을 한 후 '/' 디렉토리로
가서 'ls -F' 라고 해보자.



 eun-young:~# cd /
 eun-young:/#
ls -F

그러면 etc, bin, var 등등 여러 디렉토리가 나온다. 이제부터
각각에 대해
알아보도록 하자.



1. /bin
 /bin은 바이너리나
실행 파일의 줄임말이다. 이 곳에는 시스템의 아주 기본
적인 프로그램들이
위치하고 있다. 'ls -F /bin' 이라고 해보면 cp, ls, mv등과
같은 명령들이
보인다. 여기있는 프로그램들이 바로 우리가 cp, ls, mv 라고
명령을 내렸던
것에 대한 실제 프로그램들이다. 즉, cp 라고 명령을 하면
우리는 /bin/cp를
사용하고 있는 것이다.
또한 대부분이 뒤에 실행 파일을 의미하는
'*' 문자가 붙어 있다.여기있는
중요한 파일들을 나열해 보면 다음과 같다.

cat, cp, ftp, gzip, kill, ln, ls, mail, mkdir, more, mount, mv, ping,

rm, rmdir, su, telnet, tar, pwd, ps, bash, more...............등등.

여기에 있는 프로그램들은 너무도 기본적인 파일이므로 절대 지워서는
안된다.



2. /dev
 여기에 들어 있는
파일들을 디바이스 드라이버라고 부른다. 보통 그 파일들은
디스크 드라이버나
메모리 등등의 시스템 장치들, 또는 자원에 접근하기 위해
사용된다. 즉,
/dev/mouse 파일을 읽음으로써 마우스로 부터의 입력을 읽어 낼
수 있다.
예를 들어, fd로 시작되는 디바이스 드라이버들에 대해 알아보자.
fd0는
첫번째 플로피 디스크 드라이버를 뜻하며, fd1은 두번째 것을 뜻한다.
fd1h1440은 3.5인치 1.44메가 디스켓이 들어가는 플로피 드라이브를 뜻한다.

그럼 자주 쓰이는 장치 파일의 목록들을 보자.
1) /dev/console
은 시스템의 콘솔을 의미한다. 즉, 리눅스 시스템에 직접
  연결되어
있는 모니터를 말하는 것이다.
2) /dev/ttyS, /dev/cua 장치들은 시리얼
포트를 사용하기 위해 필요하다.
  예를들어 /dev/ttyS0는
도스에서 COM1을 의미한다.
3) /dev/hd 로 시작하는 파일들은 하드
디스크를 의미한다.
  즉, /dev/hda 는 첫번째 IDE 하드
디스크 전체이고, 그중 /dev/hda1 은
  그 하드 디스크의
첫번째 파티션을 의미한다.    
4) /dev/lp
로 시작하는 장치명들은 패러렐 포트를 뜻한다.
  즉, /dev/lp0,
/dev/lp1 은 도스에서 LPT1에 해당한다.
5) /dev/tty 로 시작되는
장치들은 가상 콘솔과 연결된다.
  즉, /dev/tty1 은 첫번째
가상 콘솔이다.



3. /etc
 이 곳에는 다양한
시스템 설정 파일들이 있다. 중요한 파일들의 예를 들어보면
전체 사용자의
암호를 갖고 있는 /etc/passwd, 프린터 셋팅을 가지고 있는
printcap, 시스템
부팅 유틸인 리로의 셋팅을 가지고 있는 lilo.conf, 넷트워킹
정보를 가지고
있는 hosts, resolve.conf, 파일 시스템 정보를 담고 있는 fstab
등이 있다.



4. /sbin
 /bin에 대비되는
디렉토리로써, 바이너리들이긴 하지만 시스템 관리자에 의해
필수적으로
사용되어야 할 것들이 있다. adduser와 같이 사용자를 등록해 주는
스크립트,
SLIP 커넥션을 만들어 주는 dip, 파일 시스템과 관계되는 fdisk,mkfs,
fsck,
mkswap, 슬렉웨어 안의 installpkg, setup 등이 있다.



5. /home
 이 디렉토리는
사용자들의 홈 디렉토리를 포함하고 있다. 예를 들어 pey1
사용자의 홈 디렉토리는
/home/pey1 이다. 또 슬렉웨어의 경우에는 ftp 사이트에
사용되는 디렉토리가
여기 있다.



6. /lib
 여기에는 시스템
전체 운영에 필수적인 공유 라이브러리 이미지가 들어있다.
또 이러한 파일들은
많은 프로그램이 공유하고 있는 코드를 포함하고 있다.
각 프로그램은 각자
그러한 루틴을 따로 가지고 있는 것이 아니라 /lib 라고
하는 곳에다 공유해서
가지고 있는 것이다. 이렇게 함으로써 실행 파일들의
크기를 줄일 수 있다.
많은 프로그램들이 공유하고 있는 부분이기 때문에 역시
몇개의 /lib 파일이
날아가는 날에는 시스템이 다운되는 사태를 당하게 된다.



7. /proc
 이 곳은 리눅스를
알면 알수록 재미있게 해주는 가상 파일 시스템이라고 말할
수 있다. 실제로
/proc는 하드 디스크상에 존재하는 것이 아니라, 메모리에 존재
하는 것이다.
메모리에 존재하는 내용을 마치 하드 디스크상의 하나의 파일처럼
다룰 수
있게 해주는 디렉토리 이다. 이 안에는 지금 시스템에서 작동하고 있는
다양한
프로세스들을 참조 할 수 있게 한다.



8. /usr
 이 디렉토리는
매우 중요한 디렉토리이다. /usr 디렉토리는 매우 많은 하위
디렉토리를
가지고 있으며, 그 디렉토리들은 시스템에 사용되는 매우 중요한
프로그램들을
포함하고 있고, 설정 파일들도 지니고 있다.
진술한 많은 디렉토리들이
시스템 운영에 있어서 필수적인 것에 반하여, /usr
에 있는 파일들은 선택적이라고
말할 수 있다. /usr 이 없다면 cp, ls 등만
있는 지루하고 재미없는 시스템이
될 것이다. 대부분의 흥미로운 소프트웨어들이
여기 /usr 디렉토리에 설치된다.



9. /usr/bin
 여기야 말로
유닉스 시스템의 실제적인 프로그램들이 들어 있는 장소이다.
시스템 운영에
최소한의 기본 프로그램들이 든 /bin에서 발견 할 수 없는
대부분의 실행
프로그램들을 저장하고 있다.



10. /usr/X11R6
 X 윈도우를
설치 한다면, X 윈도우는 상당히 크고 강력한 그래픽 환경으로써
아주 많은
그래픽 유틸리티와 프로그램들을 가지고 있고, 여러분의 스크린에
창으로
나타난다. 이 디렉토리 아래에는 X 윈도우에 관계되는 모든 프로그램,
설정
파일, 그리고 지원 파일들이 들어 있다.



11. /usr/include
 /usr/include
에는 그 이름이 의미하듯, C 컴파일러에 대한 헤더 파일을 포함
하고 있다.
대부분 .h 로 끝나는 해더 파일들은 자료 구조명과 서브 루틴 그리고
C 프로그래밍에
사용되는 모든 상수들을 선언하고 있다. 유닉스 프로그래밍 수준
에서 사용되는
파일들은 /usr/include/sys 에 들어 있다.



12. /usr/lib
 여기는 /lib에서
볼 수 있는 정적 라이브러리에 해당되는 것, 또는 다른
라이브러리들을 가지고
있다. 프로그램을 컴파일 하려고 할 때 그 프로그램은
바로 /usr/lib에 든
라이브러리와 링크 된다. 그 다음에 /lib를 찾아서 실제
코드를 링크해 낸다.



13. /usr/local
 이 곳은
/usr과 상당히 유사하다. 시스템 운영에 필수적이지는 않은 다양한
프로그램들을
많이 포함하고 있다. 필수적이지는 않지만 시스템에서 제일 재미
있고 흥미로운
프로그램들이 여기에 위치한다고 할 수 있다.
일반적으로 /usr/local에
있는 파일들은 여러분의 시스템에 특별한 프로그램만
설치한다. 즉, 각 유닉스
시스템 서로 간에 /usr/local은 엄청나게 많이 다르다.
예를 들어 TaX, Emacs와
같은 소프트웨어 패키지 등이 여기에 설치되어 있다.



14. /usr/man
 맨 페이지를
저장하고 있는 디렉토리이다. 모든 맨 페이지에 대해서는 두개의
하위 디렉토리가
존재한다. 자새한 사항은 'man man' 을 해보기 바란다.



15. /usr/src
 이 디렉토리는
컴파일 되지 않은 다양한 프로그램 소스들이 들어 있다. 그중
가장 중요한
것은 뭐니뭐니 해도 /usr/src/linux 라는 디렉토리로써, 리눅스
커널의 소스를
담고 있다. 통상 시스템에 중요한 소스를 /usr/src 밑에서
컴파일 하는 것이
관례이다. 시스템에 덜 중요한 소스들이라면 /usr/local/src
밑에다 하는
것이 또한 관례이다.



16. /var
 이 곳은 시스템
운영 도중에 파일 크기가 변하는 요소들을 담고 있는 디렉토리
이다. 대부분의
경우 /usr 디렉토리에 존재 하지만, /usr 디렉토리에 있는 것은
시스템 운영중에
변하지 않는 요소라고 보고, 변화하는 요소들을 /var 디렉토리
로 보낸다.
이 중에서 중요한 디렉토리의 예를 2개 들어 보겠다.
1) /var/adm

   이 곳은 시스템 관리자에게 관계되는 파일들을 포함하고
있다.
  특히, 시스템의 에러나 문제 상황을 기록하는 시스템
로그 파일을 들수 있다.
  다른 파일들은 시스템에 로그인
하려 했던 기록을 남겨두고 있다.
2) /var/spool
   이
디렉토리에는 프로그램에 의해서 스풀링 되는 파일들이 들어가는
  디렉토리이다.
만약 여러분의 리눅스 시스템이 네트워크에 물려 있다면
  시스템으로
들어오는 메일은 여러분이 읽거나 지우기 전까지는
  /var/spool/mail
에 일단 저장된다. 또, 시스템을 드나드는 뉴스그룹 포스팅
  메시지는
/var/spool/news에 일단 저장된다. 특히 리눅스의 프린팅은 BSD
  방식의
스풀링을 사용하므로 프린팅할 때 임시로 생성되는 파일 또한 여기에
  일단
저장되어 처리된다.



TCP Wrapper 에 대해서 설명 드립니다. 

TCP Wrapper

TCP Wrapper 는 보안 툴이다.

/etc/inetd.conf 에 관련된 데몬들에만 적용된다.

/etc/hosts.deny 와 /etc/hosts.allow 에 각각 접속불가,
접속허가 등을 설정 할수 있다.

ex)

/etc/hosts.deny

all : 203.222.33.44

# 위 내용은 203.222.33.44 의 IP 에 대해서는 모든 서비스를
# 하지 않는 다는 이야기이다.

/etc/hosts.allow

all : 203.222.33.45

# 위 내용은 203.222.33.45 의 IP 에 대해서는 모든 서비스를
# 하겠다는 이야기이다.

deny 보다 allow 가 우선순위를 가진다.

ex) /etc/hosts.deny 에 ALL : ALL 이라고 되있어도
/etc/hosts.allow 에 ALL : 203.222.33.45 라고 되어있으면
203.222.33.45 는 모든 서비스를 이용가능하다. 







심심해서 집에 있는 자료를 올리고 있는데... 이상한 사이트 돌아다니다가 구한 것들이라서 출처가 없다. 최신 버젼들은 아니지만 컴퓨터 교양에 조금은 도움이 될 듯.
----------------------------------------------------------------
★개념정리★Packet Flooding 과 WinNuke 설명!! 
Packet Flooding 과 WinNuke 는 무엇입니까?

만약 유저가 당신의 IP 주소를 알고있다면 win nuke 나 packet flood 가 적용될 수 있습니다. 기본적으로 어떤 사람이 정상적으로 0-11번 포트를 사용하는 ICMP(Internet control message protocol)에 대하여 물어보는 프로그램을 설치합니다.

또한 TCP/IP에 대해 139, 113 포트를 물어보듯이, 다른 프로토콜에 대한 다른 포트도 물어볼 수 있습니다. 이를 진보한 전화 시스템으로 가정해 보세요. 당신이 누군가에게 전화를 걸 때, 상대편에게 벨리 울릴 것이고, 당신도 벨이 울리는 것을 듣습니다.


컴퓨터에서도 이와 같은 과정이 있습니다. 이를 "핑잉(pinging)"이라고 합니다. 만약 다른 컴퓨터 사용자가 당신의 IP 주소를 가지고 있다면, 이는 마치 당신의 "전화번호"를 가지고 있는것과 같습니다.


그 사용자는 당신의 컴퓨터를 "핑"할 수 있습니다. 그리고 당신의 컴퓨터는 "핑"이라는 수치를 대답해 줍니다. 이 값은 두 컴퓨터 사이의 속도로 달려 있습니다. 얼마나 빠르게 응답을 하느냐를 나타냅니다. 어떤 사람이 매우 빠른 인터넷 커넥션을 가지고 있다면, 그는 계속해서 빠른 속도로 당신의 컴퓨터에게 핑을 요구할 수 있습니다.


이 때 당신의 컴퓨터는 계속해서 대답을 해 주어야 합니다. 그들이 먼저 반드시 핑을 보내야 하지만 당신도 반드시 대답해야 합니다. 당신의 컴퓨터는 핑을 받아야하고, 대답을 해야할 것입니다. 보내는 측에서 이 최고속도를 이를 요구하게 되면, 당신의 인터넷 커넥션은 엉망이 되어 버릴 것입니다. 심지어ㅡㄴ 시스템을 다운시킬 수도 있습니다.


WinNuke의 공격에서 윈도우 스택을 사용하는 또 하나의 이런 유형이 있습니다. 이는 대게 TCP/IP 프로토콜을 사용하여 139번 위의 포트에서 발생됩니다. 이런 공격은 흔하지 않은데, 왜냐하면 최근의 마이크로소프트에서 이를 막았기 때문입니다. 이런 폭탄(?) 핑을 막기 위한 방법은 여러가지가 있습니다. 방화벽(firewall)이나 NukeNabber을 설치하여 공격받기 쉬운 포트를 차단하고 검색하는 것입니다.



이 방법은 특히 LAN에서 사용되어 몇개의 포트의 합법적인 사용을 제한할 수 있습니다. 그러나, 가장 바람직한 해결책은 아닙니다. ISP 같은 선택된 시스템을 허용하기 위해서 또한 당신은 공격받기 쉬운 포트를 차단하고 싶을 수도 있을 것입니다.



많은 방화벽들은 이런 선택적인 필터링을 해결하도록 도와주며, 당신은 공격받기 쉬운 포트와 소프트웨어 설정에 대해 토규먼트를 참고하셔야 합니다. 많은 이런 유형의 공격은 인터넷 보안을 향상시킨 마이크로소프트에서 제공한 패치의 결과로 줄어들고 있습니다.







얼마전에 타겟보드 테스팅 때문에 똑같은 운영체제를 깐다고 윈 98을 깔았는데 잘못된 연산 어쩌구 해서 밀었다... 관련 팁이 있는 것 같아서 올려본다. 내용을 보니 치료는 안 될 것 같지만 혹 도움이 될지도...
-----------

[팁]컴을 사용시 "잘못된연산을 수행하여 종료합니다" <== 대처법공개!! 
컴을 사용하다보면 "잘못된연산을 수행하여 종료합니다"



라는 에러메시지가 뜨는 경우가 있습니다. 이런경우는 기본적으로
C:\WINDOWS\TEMP 폴더안의 모든파일을 삭제해구고요 디스크검사
하고 안전모드로 부팅을 해줍니다.
(WINDOWS STRATING 나올때 F8키를 누르고 3번을 선택합니다.)
위와같이 기본적인 조치사항을 해주시고요. 문제가 계속된다면
해당프로그램가 상황에 따라서 조치사항이 달라집니다.


특히 엑셀사용시 빈번하게 문제가 많은것 같아서 엑셀사용시에
문제와 해결책을 알아보겠습니다.
두가지의 경우가 있습니다.


첫째. 엑셀프로그램을 실행하면 바로 에러메시지가 뜬다.

둘째. 엑셀프로그램을 실행하면 괜찮은데 엑셀데이타를
불러오거나 작업시트에서 변경(서식.수식...등등)을
하면 에러가 발생하는 경우입니다.



첫번째의 경우는 다음과 같이 합니다.


시작-실행에서 REGEDIT 를 실행하면 레지스티리 창이 뜹니다.
내컴퓨터\HKEY_LOCAL_MACHINE\Software\Microsoft\office폴더앞의
+를 클릭하면 8.0 이름의 폴더에서 우측버튼을 누르고 이름바꾸기를
선택해서 old 8.0 이라고 변경해줍니다. 레지스트리를 닫고
엑셀을 실행해 보세요. 문제가 계속되면 재설치해주면 됩니다.
재설치 할때는 반드시 다음과 같이 해야 합니다.
제어판-프로그램추가/삭제에 보시면 오피스항목이 있습니다.
여기서 삭제를 해주세요. 그다음. 설치폴더를 삭제합니다.
C:\PROGRAM FILES\Microsoft office 폴더를 삭제하면 됩니다.


그다음


시작-실행에서 REGEDIT 실행하면 레지스트리 창이 뜹니다.
내컴퓨터\HKEY_LOCAL_MACHINE\Software\Microsoft 에서 office
폴더를 삭제합니다.
내컴퓨터\HKEY_CURRENT_USER\Software\Microsoft 에서 office
폴더를 삭제합니다.
이제 오피스 프로그램을 재설치해 줍니다.



두번째의 경우.



엑셀시트에서 변경등의 작업을 할때의 오류는 시트상에 각종서식이
많아서 발생하는 경우가 많습니다..(엑셀의 버그라고 생각함)
먼저 시트의 데이타를 복사하기위해서 불럭을 칩니다.
불럭이 쳐진 시트를 복사를 한후에
새시트를 엽니다 메뉴에서 파일-새파일을 선택합니다.
새시트에 붙여넣기로 복사를 하면 필요없는 수식은 그대로두고
데이타만 복사가 됩니다.
그다음 다른이름으로 저장을 합니다.
위와같이 해보세요.
위의 두가지의 경우는 현장에서 빈번하게 발생하는 문제이구요
제시한 방법들도 효과가 높습니다. 정리를 하면
기본적로 맨위에 제시한 방법대로 하시구요. 안되면
해당되는 경우에 따라서 제시된 방법대로 하면 됩니다.
바이러스 검사도 기본입니다. 







모뎀 시절엔 하이텔과 나우누리만 이용했었는데...01410하고 말이지 ^^; 요즈음엔 안 들어간다. 네이버 말고는... 야후 거기는 정말 좋긴하더라. 나머지는 네이버가 좋은 듯. 정 찾기 힘든 문서는 구글... 참 구글서... G mail이라고 2기가짜리 메일을 선배가 쓰고 있는데 좀 끌리긴 한다.

---------------
━━━━ Internet BBS IP Address ━━━━━━━━━━━━━━━━


엑스넷 telnet 210.127.194.18

블루컴 telnet 210.113.215.2

야호넷 telnet 210.113.215.101

헤드넷 telnet 210.127.194.14

프로넷 telnet 210.127.194.70

하이밴 telnet 210.111.37.1

알파넷 telnet bbs.alpha.co.kr

멀티넷 telnet 210.236.85.10 login:multi

일주일 telnet 203.229.164.1

한통신 telnet 210.124.103.2

나드리 telnet nadri.co.kr login:nadri

신천지 telnet scjnet.jsd.or.kr

체인스 telnet chains.or.kr logim:chains

케이넷 telnet knet.alpha.co.kr

코코텔 telnet 168.126.145.1

뮤직넷 telnet musicnet.co.kr

워드넷 telnet 210.127.194.18

스마트라인 telnet 210.123.193.3

키스코넷 telnet 203.233.144.1

아바투아 telnet 210.111.23.1

코리아넷 telnet 210.127.194.10

키텔 telnet kitel1.kitel.or.kr

블루넷 telnet blue.alpha.co.kr

느낌하나 telnet 210.111.8.11



 학교나 공공단체에서 불법 소프트웨어를 사용하다가 단속 뜬다고 해서 지우면?

지워도 헛수고다 다 걸린다(동아리 선배들 말로는 프로그램 돌리면 다 튀어 나온다고 한다)
 관련 문서를 캡춰해 보았다.

 요새는 네트워크를 통해서 다 전달이 되기 때문에 별 쓸모는 없을 듯도 하다.

내 생각이지만... 윈도우즈는 엄청난 기술력에 비하여 XP SP2 이전까지 별 단속을 안하는 것 같다. 솔직히 강력히 단속했으면 리눅스가 더 떴겠지. 사용자가 워낙 많으니까 OS를 통일하다시피 한거다. 네이버에에서 파이어 폭스만 제대로 지원해도 익스플로러 안 쓰련만... 파이어 폭스로 글을 쓰고 나면 입력 버튼이 안 눌러진다. 항의를 했건만.. 통할리가...
-----------------------------
★★필수팁★★[필독]하드에서 지운파일을 완전히 없애는 방법!!! 

요즘 소프트웨어 불법복제 단속이 다시 시작됬더군요..
학교는 괜찮을줄 알았는데..
uninstall하거나 지워버리 s/w를 softscan이라는 프로
그램으로 검사하면...지금까지 사용한 s/w들이 모두
나오더군요.....
단속시 사용하는 방법도....이 softscan을 사용한다고 들었읍니다.ㅡ.ㅡ;

이때의 대처방법을 알차드립니다..

윈도우에서 uninstall하거나 지워도 실제 지우는것은 그 프로그램의 테이블만 지울뿐 나머지는 기냥 하드에 남아있읍니다. 다만 멍청한 컴퓨터가 테이블만 없어면 지워졌다고 하는거죠. 일단은 먼저 BC Wipeout란 프로그램을 다운 받어세요.
이넘은 작고 간단한 프로그램인데 하는 일이 뭔하고면 delete나 uninstall 처럼 테이블만 없애는것이 아니라 지우는 프로그램 파일들을 하드에서 밀어내 버리는것입니다. 문제는 이것으로 지우면 복구가 불가능합니다.
delete를 잘못했을때는 복구를 할수있지만 이넘으로 한번 지우면 복구는 꿈도 꾸지 말아야합니다.
하드에 아예 흔적도 남기지 않고 지우니까요.
그리고 레지스트리 청소하는 프로그램은 RegClean이란 프로그램이 있는데 사용하기 간편하고 또 리스트가 나오면 레지스트리에서 지우고싶은 프로그램을 지정해주면 지워줍니다.



HTML 이랑 XML이랑 다른 점은 뭘까...

둘 다 SGML에서 나와서 태그를 가지고 있다는 것은 같다. HTML은 미리 정의된 태그를 쓰고


<>등... XML은 아니라고 한다.
우리집
이런식으로
정의해서 쓴다고 한다.

 그러면 어떤 녀석이 고것을 해석해 주는가? 기본적으로 정의된 태그는 없는가? 없다면 특정한 자료 구조형을 직접 만드는 것 밖에 안되는 것인데... 그 해석기가 스타일 시트인갑다.

맛보기로 http://xml.80port.net/에서 캡춰했습니다. 그림이 궁금하시면 사이트에 직접가세욤. ^^

2. XML의 시작

  무더운 8월입니다. ^^ 이 글을 첨 썼던 때가 2000년 12월이니까.. 와우.. 많은 시간이 흘렀네요.. 그때도 시간이 참 빠르다는 표현을 했던것 같은데~~

어느 사이트를 돌아다니다 보면 제 강좌를 복사해서 사용하는데도 있더라구요. 그래도 별 상관은 없지만.. 출처는 밝혀주심이 좋겠네요. 지난번만큼의 강좌를 다 수정해서 올리는데 약간의 시간이 걸릴거고요. 그리고 나서는 새로운 강좌를 시작할 겁니다.



자 그럼 오늘 강좌를 시작해 볼까요.. 소스는 강좌소스 에 보면 있습니다. 거기로 가서 받아가시기 바랍니다.



간단한 XML 예제

  XML 문서는 DTD의 포함 여부에 따라서 Well-formed 문서와 Valid문서로 나눌 수 있습니다.

먼저 새로운 단어를 분석해 볼까요?? Well-formed란 잘 구성되었다고 해석을 많이 하더군요.

잘 구성되었다?? XML 스펙을 보면 XML 문서가 갖추어야 할 조건들을 설명하고 있습니다. 

그 조건을 잘 지키고 있다면 Well-formed라고 하는 것이지요.



참고로 첨 XML 스펙을 보았을 때 머리가 돌아 버리는 줄 알았습니다. 완전히 암호문이더군요.

다행히 그당시 제가 학교에서 컴파일러를 배우고 있던 때라 그나마 다행이었죠.. 



그렇다면 Valid 문서란 무엇을 나타내느냐?? 기본적인 조건에 무언가를 하나 더 지키고 있다는 것이겠죠..

그게 바로 DTD라는 겁니다. DTD란 Document Type Definition의 약자로서 문서의 타입을 정의하는 것을 말합니다.

혹시 HTML 문서에서 한번쯤 이런 것 보지 못했나요??







못봤나요?? 다시 한번 HTML소스를 보세요.. 직접 타이핑 한 것 말구 에디터로 만든 걸 보면 반드시 들어가 있을 겁니다.



어쨌든 그게 바로 DTD입니다. 문서의 타입은 정의해서 어디에 쓰는 걸까요? 

HTML에서 기본적으로 모든 시작은 로 합니다. 그죠..



그리고 내에서 와 가 나옵니다.

즉,,





 

  ....

 

 

  ....

 





기본 구조가 위와 같죠.. 자 제가 이걸 어떻게 알았을까요... 당연히 HTML책이나 강좌에 나와 있죠..

그럼 어떻게 모든 사람들이 저렇게 사용할까요? 그건 바로 DTD에 있습니다.

DTD에 그렇게 하라구 나와 있거든요.. 즉 사용자는 DTD에 나온 대로만 쓰면 됩니다.



그런데 때로는 를 빼먹고 안쓰는 사람들 많죠.. 

HTML은 그래도 인정했었지만 XML에서는 유효한 문서가 아니라고 하죠.. (Non-Valid 문서)

즉, DTD가 있으면 반드시 그대로 해야 한다는 거죠.. 물론 빼먹을 수 있도록 DTD에서 선언할 수도 있지만요..



음.. 보통 질문을 많이 하는 내용중의 하나가 "Document Type Definition"과 "Document Type Declaration"의 차이를 물어보는 겁니다. 

보통 DTD 문서를 "Document Type Definition"이라고 하지요..

그렇다면 "Document Type Declaration"은 무엇일까요?

이것은 XML 문서 내에서 요소를 사용해 DTD 문서를 선언하는 것을 말합니다.



즉, XML 문서가 

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...