index.html
World-Wide Web을 이용하는 사람은 충분히(?) 많지만, 이것을 제대로 이해하고 쓰는 사람은 매우 적다. 무엇이든지 '제대로' 이해한다는 것은 사실 말만큼 쉽지 않지만, 여기서는 GNU/Linux 시스템의 계정으로 자신의 홈페이지를 만드는 과정을 따라해보며 최소한 "필요하다면 웹을 통해 어떤 정보를 전달할 수 있을 만큼"의 교양을 갖추는 것을 목표로 하자.
홈페이지를 만들었다 해도 정작 그 시스템이 웹 서비스를 제공하지 않는다면 아무 소용이 없다. 접속해 있는 시스템이 웹 서버를 돌리고 있는지 확인하려면? httpd 데몬이 실행되고 있는지 보면 된다.
$ ps aux |grep httpd
몇몇 데몬이 보인다면 일단 웹 서버가 돌아가고 있는 것이다. 그렇다면 이 컴퓨터의 주소를 웹 브라우저에 입력하면 뭔가 보인다는 말이 된다. 또 한 가지 알아내야 할 것은 사용자의 웹페이지 홈이 무엇인지다. 많은 시스템에서 그 역할을 하는 디렉토리로 ~/public_html/를 이용하지만 이것은 어디까지나 시스템 관리자의 취향에 달려 있는 문제다. 일단 자신이 이용하는 시스템의 관리자는 매우 정상적이고 성실하다고 가정하자!
$ cd ; mkdir public_html # 자신의 홈 디렉토리에서
웹페이지의 홈 디렉토리를 만들긴 했는데, 웹을 통해 이 디렉토리의 문서들에 접근을 하기 위해서는 사용자 자신과 그룹 뿐만 아니라 그 외 사람들의 권한으로도 이 디렉토리 안에 들어올 수 있어야 할 것이다. ls -l 명령으로 방금 만든 public_html/ 디렉토리의 접근 권한을 확인해 보면 별 문제가 없어 보인다. 하지만 문제는 - 웹페이지의 홈 디렉토리가 아니라 쉘 계정 자체의 홈 디렉토리의 접근 권한이 그렇지 않을 수 있다!
$ cd /home/ $ ls -l |grep jedi # 홈 디렉토리의 접근 권한을 확인 drwx------ 4 jedi jedi 4096 6월 19 2001 jedi/ $ chmod a+rx jedi/ # 누구나 읽거나 들어올 수 있도록; 숫자로는 755 drwxr-xr-x 4 jedi jedi 4096 6월 19 2001 jedi/
그렇지 않은 경우도 있겠지만, 사용자의 프라이버시를 무척이나 생각해 주는 대부분의 GNU/Linux 시스템에서는 위와 같이 사용자의 홈 디렉토리가 완전히 막혀 있다. 자신의 홈페이지 말고는 어떤 것도 보여주기 싫다면 굳이 a+rx이라 할 필요도 없이 a+x로 해도 좋다.
이제 새로 생성한 public_html/ 디렉토리로 이동하자. 바로 이 위치, /home/jedi/public_html/ 디렉토리가 자신의 홈페이지가 올려질 곳이며 웹 브라우저에서 http://cpu.phys.cau.ac.kr/~jedi/ 주소로 찾아오게 되는 위치다. 무료 홈페이지를 만들어 주는 일부 싸이트에서는 다른 표현들, 예를들어 http://jedi.domain.com/ 또는 http://domain.com/jedi 등의 형식으로 이용자의 홈페이지를 기억하기 쉽게(?) 만들어 주는데 이건 하나의 편법일 뿐이며 쉘 계정 수준의 홈을 의미하지도 않는다 - 우리가 지금 만든 쉘 계정에서의 홈에 비한다면 차원이 떨어진다는 말이다 :-)
![]() |
왜 ~/ 대신 ~/public_html/ 디렉토리를? |
---|---|
쉘 계정 이용자의 보안과 프라이버시를 고려해서다. 만약 쉘 계정의 홈 디렉토리가 웹페이지의 홈 디렉토리로 된다면? 웹 브라우저로 접근해 오는 수많은 인터넷 이용자들이 집 주인도 모르는 사이에 그(녀)의 모든 디렉토리를 헤집고 다니는 ... 상상도 하기 싫은 상황이 연출될 것이다. (더 중요하면서도) 마찬가지 이유로 시스템 자체의 웹페이지도 결코 / 디렉토리에 두지 않는다. 중요한 시스템 정보가 포함된 /etc /usr /bin 등의 디렉토리에 웹 브라우저가 접근하지 못하도록 하기 위해서다. |
웹페이지의 홈 디렉토리로 이동했으면, 간단히 텍스트 파일을 하나 만들어 보자. 그리고 자신의 홈디렉토리 표기 끝에 그 파일의 이름을 추가해서 웹 브라우저로 확인해 본다.
$ echo 'Welcome to my home!' > welcome.txt # cpu.phys.cau.ac.kr/~jedi/welcome.txt
그대로 따라했다면 웹 브라우저가 텍스트 파일을 있는 그대로 보여줄 수 있음을 알 수 있을 것이다. 물론 이것은 웹 브라우저가 존재하는 목적이 아니다. 이젠 옛날 이야기가 되어 버렸지만, WWW(World-Wide Web, W3)을 구축하고 특별한 구문을 갖춘 텍스트를 이용, 문자 뿐만 아니라 그림 형식의 정보도 시각적으로 전달하는 기술이 다른 곳도 아닌 CERN(유럽 입자물리 연구소)에서 시작되었다. [37] 이번에는 이들의 실험(?)을 재현해 보자.
$ vi welcome.html # 웹페이지 문서는 .html 확장자
아래의 그림과 같이 welcome.html 입력; "텍스트"를 조금 바꿔도 좋다.
그림 5.1. welcome.html 파일의 내용
지금 만든 페이지를 웹 브라우저로 확인하려면 앞서 welcome.txt를 welcome.html로 바꾸기만 하면 된다. 어떻게 보이는지? 상식적으로 알고 있으면 좋을 사실 하나 더 - 웹 브라우저에 디렉토리 이름까지만 주고 HTML 파일을 명시하지 않으면 그것은 일단 index.html 파일을 찾는다. 즉 지금 만든 welcome.html을 index.html로 바꾸기만 하면 더 쉽게 찾아갈 수 있는 홈페이지, 말하자면 http://cpu.phys.cau.ac.kr/~jedi/ 라고만 해도 웹 브라우저로 확인할 수 있는 홈페이지가 되는 것이다.
방금 작성한 문서처럼 특별한 확장자(*ml)를 가지고, < > 문자 사이에 어떤 의미를 가진 키워드를 쓰며, 열리고 닫히는 블럭 구조 안에 실제의 텍스트 데이터가 놓여지는 "텍스트 형식"을 가리켜 마크업 언어(Markup Languages) 또는 간단히 마크업이라고 한다. [38] 대표적인 마크업인 HTML로 넘어가기 전에 몇 가지 용어를 확실히 기억해 두자.
![]() |
마크업 언어의 구성 요소들 |
---|---|
<tag prop="value">Text data</tag>
|
HTML은 정의 그대로 하이퍼-텍스트를 표현하기 위한 마크업이다. 하이퍼-텍스트란 그냥 텍스트의 한계를 뛰어 넘은 몇 가지 기능들, 특히 "다른 텍스트로의 연결" 기능을 갖춘 텍스트를 말하며 웹 브라우저에서는 이 기능이 주로 링크(links)라는 형태로 나타난다.
하이퍼-텍스트 마크업에 대해 이 문서에서 자세히 다루는 것은 정말 "어림도 없는" 일 또는 "기껏 다뤄봐야 아무 쓸모도 없는" 일이다. HTML 태그를 익히려면 평소 돌아다니는 웹싸이트의 소스를 열어보는 것이 최선의 방법이다. 그다지 어려운 마크업도 아니며, 일단 재미를 붙이면 누구나 며칠 동안 매달리게 되는 신기한(?) 매력을 가지고 있기도 하다.
그림 5.2. HTML 문서의 보기, 마크업에 대한 잔소리들
그림 5.3. 웹 브라우저에서 표현되는 모습
자세히 다루진 않더라도, 여러분이 HTML을 익히고 참고하기 위해 돌아다닐 많은 웹페이지들의 소스를 있는 그대로 받아들이지 말 것을 "폭력적으로" 권장하고 싶다. 잘못된 구문을 포함한 HTML 문서를 웹 브라우저가 자기 마음대로 추측해서 그럴듯하게 보여준다는 사실이 - 불행히도 좋은 것만은 될 수 없다. 앞으로 모든 문서와 정보는 마크업 형식으로 바뀔 것이고, 미래의 마크업은 훨씬 정밀해지고 또한 구문에도 엄격해질 것이기 때문이다. 만약 그동안 잘못된 HTML을 그냥 이용해 왔다면 지금 이 기회에 버릇을 고치고, 이것이 처음 HTML을 접하는 경우라면 반드시 "좋은 버릇"을 들이도록 하자!
![]() |
HTML - "길들여져야 할" 습관들 |
---|---|
위의 보기에서 강조한 몇 가지와, 그 밖에 기억해야 할 원칙들이다. 이 원칙들을 잘 지키면 XHTML, 나아가서 XML을 비롯한 '진짜' 마크업을 접했을 때 큰 어색함이 없을 것이다.
|
[37] 이 기술은 CERN처럼, 거대한 가속기를 따라 띄엄띄엄 분포한 연구소끼리 정보를 주고받기 위해 필연적으로 개발된 것이다.
[38] 현재 인터넷의 마크업 표준을 규정하고 관리하고 있는 곳은 W3C - World Wide Web Consortium이라는 비영리 단체다. 굳이 웹 세계의 중심을 찾는다면 바로 여기다.