- 가상 디렉토리 - (이 강좌에서는 가상 웹 어플리케이션을 이렇게 지칭한다)
서버에 오직 단 한 개의 홈 디렉토리만이 있을 수 있다는 것은 상당히 피곤한 일이다. 그렇다면, 단 하나의 사이트밖에 구성할 수가 없기 때문이다. 그리고, 모든 ASP 페이지들이 반드시 wwwroot 의 하위로 존재해야 한다는 사실도 너무 제한적인 조건이다. 물론 홈 디렉토리의 서브로 여러 디렉토리를 만들어 사용할 수도 있지만 그 디렉토리들은 wwwroot 폴더의 모든 내용을 같이 적용받음으로서 여전히 독립적이지 못하다.
예를 들지 않으면 잘 이해가 안되는 독자들이 있다. 필자가 그런 스타일이다. 자세한 설명보다는 적절한 예. 개인적으로는 언제나 그것이 더 중요하다고 생각했었다.
예를 들어보자. 그전에 먼저 한가지만 묻겠다. 여러분은 두루넷이나 천리안 등등에 홈페이지를 신청해 본적이 있는가? 있다면 그 업체들이 여러분들에게 홈페이지를 올리기 위한 장소를 제공하며 URL을 알려줄 것이다. 일반적으로 그들의 서버 URL에 ~여러분의 ID를 붙인 장소를 말이다.
예를 들면, http://myhome.thrunet.com/~taeyo로써 이곳이 바로 여러분의 홈페이지 URL일 것이다. 한 대의 서버에 각각의 사람들에 따라 ~아이디로 이렇게 장소를 제공해 준다. 이 사실을 알고 있었다면, 모르고 있었다고 해도 이제 알았다면 예를 시작해보자.
여러분이 회사에서 자그마한 서버를 관리한다고 치자. 이 서버는 웹서버이고, 여러분의 동료들은 이 서버에 자신만의 홈페이지를 만들고 싶어한다. 우리의 서버는 www.server.com이라고 할 때,어떻게 그 사원들만의 홈페이지 공간을 나누어 줄 것인가? 위의 두루넷 예처럼 말이다.
그 방법이 바로 가상 디렉토리이다. 가상디렉토리는 하나의 웹 서버에 무한대로 만들수가 있으며(하드 공간에 여유만 있다면), 위의 예와 마찬가지로 마치 서브 디렉토리처럼 url을 생성한다. 예를 들면, www.server.com/taeyo, www.server.com/dragon 처럼 말이다. 이것들은 마치 홈 디렉토리의 서브 디렉토리처럼 보이지만, 그렇지가 않다.
물론 홈 디렉토리의 서브 디렉토리이기는 하지만, 독립적인 서브 디렉토리이다. 홈 디렉토리의 그 어떠한 간섭도 받지 않고 독립적인 하나의 사이트처럼 행동하는 디렉토리인 것이다. 그렇다면 C:\inetpub\wwwroot\ 의 하위로 폴더를 만들면 되는 것인가?
그러면 가상 디렉토리가 되는 것인가? 그렇지는 않다. 가상 디렉토리를 만들기 위해서는 약간의 세팅이 필요하다. 그냥 디렉토리를 만들었다고 가상 디렉토리가 되지는 않는다. 이제 우리는 그 세팅을 알아보고자 하는 것이다. 세팅을 해보기 전에, 두 가지 더 이야기를 할 것이 있다.
가상 디렉토리라고 해서 반드시 그 물리적인 위치가 반드시 C:\inetpub\wwwroot 이하일 필요는 전혀 없다. 하드 공간의 그 어디에다가도 만들 수 있다. 어디다가 디렉토리를 만들던 전혀 상관이 없다는 것이다. 하지만 관리적인 차원에서 wwwroot의 하위로 만드는 것이 물론 좋은 편이다. 그러나, 이 부분은 지극히 개인적이니 여러분에게 맡긴다. 우리는 아무데나 만들어 볼 것이다. (C:\에다가 말이다)
위에서 홈페이지를 이야기할 때 두루넷은 http://myhome.thrunet.com/~taeyo 라고 ~가 들어가 있는데, 우리의 예에서는 단지 www.server.com/taeyo 라고만 되어있다. 왜 우리의 예에서는 ~가 빠진 것일까? 그것은 OS의 차이이다. Unix에서의 경우이고, NT에서는 ~없이 가능하다.
- 가상 디렉토리의 세팅
특별한 툴(InterDev)이 없이 가상 디렉토리를 세팅하는 방법은 두 가지가 있다. 하나는 탐색기를 이용하는 방법이고, 또 하나는 MMC라 불리우는 인터넷 서비스 관리자를 사용하는 방법이다. 필자는 첫 번째 방법을 선택했다. 이유는 그게 더 여러분들이 접근하기가 수월하기 때문이다. 인정해 주길 바라는 것은 아니지만, 이 책은 진실로 여러분들이 읽기만 해도 ASP를 이해할 수 있도록 노력하고 있다. 진짜다.
1) 가상 디렉토리를 위한 폴더를 만든다.
탐색기를 열어서 C 드라이브에 여러분이 좋아하는 이름으로 폴더를 하나 만든다.
필자 태오는 태오라는 이름으로 아래와 같이 만들었다.

2) taeyo 디렉토리에 마우스 오른쪽 버튼을 누르고 [등록정보]를 선택한다. 그리고, 탭 중에 [웹 공유] 탭(tab)을 선택한다. 그러면 다음 그림과 같이 나올 것이다. 이 탭이 이 taeyo라는 폴더를 가상 디렉토리로 만들어 주는 곳이다. 이 곳에서 "이 폴더를 공유함(S)"을 선택해 보자.

그러면 다음 그림과 같이 어떤 이름으로 이 가상 디렉토리를 지정할 것인지를 물어올 것이다.
3) 가상 디렉토리의 이름을 지정해 주자.
이 이름으로 인터넷을 통해 접근할 수가 있다. 예를 들어 이 이름을 디렉토리 이름과 똑같이 taeyo라고 준다면 인터넷을 통해서는 이 디렉토리에 www.server.com/taeyo 라고 입력함으로 이 폴더에 억세스를 할 수가 있는 것이고, 만일 원래의 디렉토리의 이름과는 다르게 goodboy라고 가상 디렉토리 이름을 준다면 www.server.com/goodboy로 접근할 수가 있게 되는 것이다. 우리는 디렉토리 이름과 같이 한번 잡아보도록 하자. 별명을 쓰는 곳에 다음과 같이 taeyo라고 같은 이름을 주자.

4) 가상 디렉토리 생성의 확인
이제 여러분은 아래의 그림과 같이 가상 디렉토리가 생성된 것을 확인할 수가 있다. 그리고, 이 디렉토리 내에 html 페이지나 ASP 페이지가 있다면 이제 www.server.com/taeyo/a.html같은 식으로 접근할 수가 있는 것이다.

어떤가? 간단하지 않은가?
그러나, 또한 재미있는 것은 이런 모든 세팅을 마치고 탐색기로 돌아가 보자. 여러분의 탐색기의 taeyo라는 폴더에는 그 어떠한 표시도 없다. 이게 가상 디렉토리인지 아닌지 눈으로 쉽게 구분이 되어지지 않는다는 이야기이다. 사실은 이것은 큰 문제일지도 모른다. 실수로 이 디렉토리를 지우게 되면 우찌하는가? 아무 경고도 없이 누군가의 홈페이지는 날라가는 것일테니 말이다. 그러나, 지우려 시도해본다면 약간은 안심할 수 있는 메시지를 만날 수가 있을 것이다. 지울수 없다는 다음과 같은 경고 메시지가 나올 것이니 말이다.

그래도, 여전히 디렉토리들을 가상 디렉토리인지 아닌지 구분하기는 용이하지 않다. 해서 가능하다면 디렉토리들을 이렇게 C:\에 생성하지 말고, 홈 디렉토리인 wwwroot의 하위로 만드는 것이 좋은 생각이다. 적어도 그렇다면 우리는 이 안에 있는 것은 홈디렉토리의 서브 디렉토리이거나 가상 디렉토리이겠구나라고 추측할 수가 있을테니 말이다.
홈페이지를 만들려면 뭘 해야해?
친한 친구가 이렇게 물어온다. 그렇다면 여러분은 무슨 대답을 할 것인가? 아마도 이렇지 않은가? "응~ html을 공부해.." 일주일 뒤에 친구는 다시 묻는다. "html을 다했는데 이제 모해?" "그렇다면... 그럼.. ASP를 해...." 그렇다. 그만큼 이제는 ASP가 홈페이지의 기본인 것처럼 인식이 되어지고 있다. 그러나, 사실 이것은 조금은 문제거리이다. ASP라는 것은 단순히 HTML을 습득하고 가볍게 뛰어들 수준은 사실은 아니라는 것이다. ASP페이지 자체만을 다룬다면 그다지
긴장하지 않아도 될듯 하다. 하지만 사실상 ASP라는 것은 더 이상 단순한 '서버 페이지'만을 의미하는 것이 아니다. ASP를 공부하게 되면 ASP페이지 자체에 대한 이해뿐 아니라 서버와 클라이언트의 운영, 웹 서버의 관리능력, 웹 전반적인 지식등이 필수(?)로 요구되기 때문이다. 여러분은 알게 모르게 그것들에 대한 지식도 습득하게 될 것이다. 이 지식은 이 책에서 얻어질 수도 있지만, 일반적으로 스스로 서버를 조작하는 그 순간순간(가끔은 등에 식은 땀이 흐르는...) 내공이 상승하므로 많이 서버를 날려보고, 많이 테스트를 해봄으로 해서 얻어지고는 한다. 해서, 필자가 하고 싶은 말은 한가지, 열심히 하자는 것이다. 그냥 그 이야기를 할라구 한 것이다. 열심히... 자부심을 가지구~
|