본문 바로가기

Web Development/ASP

[ASP] 입문

부디 그냥 가벼운 마음으로 읽어나가 주시기 바랍니다. 

1. Active Server Pages. 그 정체는?

ASP(Active Server Pages)는 1995년 말에 등장한 IIS(Internet Information Server)의
세 번째 버전으로 MicroSoft사 NT머쉰의 IIS 3.0이상에서만 동작하는 특별한 페이지입니다.

이 ASP라는 페이지는 Web을 프로그래밍 할 수 있도록 해 주는,
서버에서 동작하는 페이지로써 기존의 HTML 페이지와는 상당히 다른, 동적인 구성을 가질 수 있게 해 준다.
이 이야기는 처음 웹 프로그래밍을 접할지 모르는 여러분에게는 상당히 중요한 이야기일 것이다.
다음 그림을 보도록 하자.

HTML의 경우의 서버의 역할: 요청한 HTML 페이지의 전송


위의 그림은 클라이언트가 서버의 HTML 페이지를 요청할 경우의 동작내용을 보여주고 있다.
클라이언트란 어떤 정보나 서비스를 요청하는 사용자들을 의미한다.
즉, 웹을 서핑하는 모든 사용자들은 클라이언트들인 것이다.
그들이 어떤 서버로(예를 들면, 조선일보 서버) 접속해서 show.html을 요청한다면,
조선일보 서버는 show.html을 접속한 사용자 클라이언트의 브라우저에게 건네주게 된다.
이 건네주는 html 페이지는 태그, 스크립트 등으로 구성된, html 언어로 제작된 페이지이다.
서버가 그 html 코드를 사용자의 브라우저로 넘겨주면 서버의 역할은 그것으로 끝난다.
그 후, 그 페이지를 해석하고 우리의 눈에 보여지게 하는 것은 사용자들의 브라우저이다.
그렇기에 웹에 접속하고자 하는 사용자들은 반드시 html 코드를 해석할 수 있는 브라우저가
있어야 한다. 이미 알고 있는 이야기인지도 모르겠지만 다시 한번 그림과 같이 설명하면 다음과 같다.

왼쪽이 사용자가 서버에게 요청한 html 페이지이고, 서버는 요청받은 html 페이지를
클라이언트에게 이 모습, 이대로 넘겨주게 된다. 나머지는 클라이언트의 브라우저의 몫이니 말이다.
해서 브라우저로 이 html 페이지를 받은 사용자는 브라우저로 오른쪽 그림과 같은
결과를 보게 되는 것이다.

서버의 역할은 클라이언트가 요청하는 html 페이지를 찾아서 사용자에게 넘겨주기만 하면
되는 것이다.   나머지는 사용자의 브라우저가 알아서 해석해서 보여주는 것이니 말이다.
그렇다면, ASP 페이지는 뭔가 다르다는 것인가?
그렇다. 뭔가 상당히 다르기에 이렇게 뜸을 들이는 것이다.

ASP의 경우

ASP의 경우는 사용자가 어떤 페이지를 요청했다고 가정했을 때,
그 페이지를 html 페이지처럼 사용자의 브라우저에게 그냥 보내주지는 않는다.
사용자에게 보내주기 이전에 서버내에서 어떤 처리를 하고 그 처리 결과를 태그로 만들어,
html 형식으로 다 만든 뒤, 그 만들어진 페이지를 사용자의 브라우저에게 보내주는 것이다.
왜 그래야 하는가? 처리를 안 하면 안되는가?
잘 이해가 되지 않는 독자들이 있다. 진짜다.
먼저, 이 시점에서 바로 그런 독자들이 궁금해 하는 내용을 정리해 본다.

  무슨 처리를 서버에서 한다는 건가? HTML로 하면 안되나?

  여러분은 자신의 홈페이지를 만들어 본 적이 있는가? 
  여러분의 홈페이지를 꾸미기 위해 어떤 것들을 올려놓았는가?
  여러분 가족의 사진? 자신의 소개?  자신이 취미로 삼고있는 것들에 대한 자료?
  그렇다. 아마도 그 정도가 일반적인 수준일 것이다.  뭐~~ 그래도 좋을 것이다.
  우리 가족과 친척들 그리고 적어도 몇몇 친구들은 방문해 줄 것이니 말이다.
  그런데, 그들이 방문했었다는 것을 어떻게 알 수가 있을까?
  그들이 자신들이 왔다간 흔적을 남기지 않는 한 우리는 누가 나의 홈페이지를
  방문했었는지 알기가 어렵다. 그 흔적을 남기게 하는 방법이 무엇인가?
  일반적으로 방명록이라는 것이 있다. 사이트에 방문한 소감을 적어주는 것 말이다.
  그러나, 그것은 기존의 HTML 페이지로는 구현이 불가능하다.
  아마도 여러분은 무료로 제공해 주는 방명록을 설치해 본 경험이 있을런지도 모른다. 
  그런 것을 웹 상에서 프로그래밍으로 가능하게 하는 것이 바로 ASP인 것이다.
  (물론 CGI도 가능하다. 그러나, 우리의 주제는 ASP이다)

HTML 페이지의 한계를 대신해 등장한 ASP 페이지는 서버와 연동하는 작업이
가능한 특별한 페이지로 존재한다.
반드시 서버를 거쳐서 1차 해석이 되어지고,
그 결과로 만들어진 HTML을 사용자에게 보내게 한다.

사용자가 요청한 ASP페이지는 ASP.DLL을 무조건적으로 거치며,
ASP.DLL을 통해 해석이 되어진 뒤에 모든 ASP 코드들이 HTML 태그로 바뀌어지고,
사용자에게 건네어지는 것이다. 
(사용자는 그 HTML코드를 직접적으로 보게 되는 것이 아니라. 브라우저에 의해
다시 해석된 모습으로 보게된다. 지금 여러분이 이 페이지를 보고 있는 것처럼 말이다)

ASP는 IIS 4.0이 배급되면서 더욱 발전적인 기능들을 가지게 되었고,
실로 그 기능은 기존의 Visual Basic 언어의 많은 부분을 웹에서 사용가능하게 하고 있다.
또한, Visual Basic이 서버 컴포넌트를 제작하기에 가장 적합한 툴로 인식되어 지면서
ASP와 Visual Basic은 같이 그 인기가 상승하고 있는 실정이다

2. 그렇다면 ASP를 도전하기 위해서는? (1)

ASP를 작성하고, ASP로 사이트를 구축하기 위해서는 이제 어떤 준비가 필요한지 알아보자.

1) OS는 무엇으로 할 것인가?

ASP는 Microsoft에서 나온 것이기에 마이크로소프트사의 OS를 필요로 한다.
사실 ASP를 제대로 돌리기 위해서는 Windows NT 기반의 IIS 서버가 필요하지만,
MS에서는 기존의 Windows 9x를 사용하던 사용자들도 ASP 프로그래밍을
가능하도록 하기 위해 PWS(Personal Web Server)를 무료로 제공하고 있다.

Windows 95의 경우는 마이크로소프트의 웹 사이트에서 무료로 다운로드가 가능하다.
(하지만, 사실상 현재는 다운로드가 제공되지 않고 있는듯 하다)
Windows 98의 경우는 마이크로소프트의 웹 사이트에서 무료로 다운로드도 가능하고,
또한 Windows 98 CD 안에 addon 이라는 폴더내에 이미 포함하고 있기도 하다.
NT Workstation에서는 Peer Web Server라는 것을 설치함으로서 웹서버가 될 수 있다.
그리고, Windows NT의 경우는 NT 옵션팩을 설치함으로써
IIS(Internet Information Server) 4라는 웹 서버가 될 수 있다.
또한, Windows 2000 시리즈에서는 자체적으로 이미 웹 서버(IIS 5)를 제공하고 있다.
즉, Windows 2000 이 설치되면서 자동적으로 웹 서버도 설치가 이루어진다.
단, Professional 버전은 자동으로 설치되지는 않기에
제어판의 프로그램 추가/삭제에서 수동으로 웹 서버를 설치하여야 한다.
(인터넷 정보 서비스를 설치하면 된다)

각각의 OS 별로 웹서버가 제공되고 있기는 하지만,
NT의 IIS 서버나 Windows 2000의 IIS 5가 MS의 진정한 웹서버이며, 가장 최적의 환경이다.

기억해야 할 것은 ASP는 Windows NT의 IIS 웹서버에서 동작하는 것이 기본이라는 것이다.
(이것은 버전 4.0 이며, Windows 2000 에 들어서며 IIS 도 5.0으로 버전업하였다)

다른 MS의 OS에서는 단지 ASP 개발만이 가능할 뿐,
실제로 사이트로 돌리기에는 제한이 있다는 것이다.
해서 실제로 웹 사이트를 운영할 시에는 가능하다면 Windows NT 이상에서 동작시키기를 권유한다.

  Linux와 Unix등에서는 ASP를 동작시킬 수가 없나?

   사실은 그렇다. 기본적으로 MS의 플랫폼에서만 가능하다. 
   그러나, 현재 다른 플랫폼에서도 ASP를 가능하게 해주는 서비스를 하는 외국업체가 있다.
   칠리소프트라고 하는 곳으로 관련 사이트는 "www.chilisoft.com"이다. 
   더 자세한 내용은 그 사이트 정보를 참조하시면 될 것이다. (안타깝게도 영어이다.)

정리 : ASP를 하기 위한 OS의 준비

- Windows 2000 (IIS 5)
- Windows NT 4 (IIS 4 - 옵션팩을 설치하면 된다.)
- Windows NT 4 (IIS 3)
- Windows NT Workstation (Peer Web Server)
- Windows 98 (Personal Web Server)
- Windows 95 (Personal Web Server)

 

2) Database는 무엇으로 할 것인가?

사실상 모든 종류의 데이터베이스를 사용할 수가 있다.
그러나, 필자의 경험상 가능하다면 MS 계열의 데이터베이스를 사용하시기를 권유한다.
그것은 MS-Access 97 (Office 2000), MS SQL 7.0, MS SQL 2000 서버 등이 그것이다.
물론, 오라클을 사용하시고자 한다면 그것도 좋다.
그러한 데이터베이스를 잘 다룬다면 그것은 엄청난 플러스 요인일 것이다.
차후 느껴지시겠지만, 데이터베이스를 잘 다루는 것은 곧 프로그래밍을 잘하는 것
이상으로 중요한 것이기 때문이다. 또한, 현재 업체에서 요구하는 프로그래머는
어느 정도 데이터베이스도 다룰 수 있는 자를 요구하고 있는 실정이기도 하다. . 

만일 단순히 개인 사이트를 운영할 목적이라면,
예를 들면 대학의 동아리 사이트나 기타 소모임 사이트 말이다.
그렇다면, Access를 추천한다. 결코 얕잡아 보지 말기를 바란다.

필자의 사이트도 2년 가까이 Access와 같이 해 왔다. 그러나, 결코 문제가 없었고,
70만 카운트의 방문때까지도 필자는 Access를 사용하고 있었다.
11월 초에는 SQL 서버로 바꾸었지만 말이다. 개인 사이트에는 Access가 좋은 듯 하다.
(하지만, Access 프로그램은 트랜잭션이 지원되지 않는다던지, 동시 사용자가 많을 경우
여러 문제점을 안고 있는 편이다. 이와 관련된 이야기는 이후 중급강좌에서 만나게 될 것이다)

만일, 쇼핑몰 사이트나 중요한 데이터들을 다루는 사이트를 계획하고 있다면,
예를 들면, 인터넷 쇼핑몰 사이트나 경매, 입찰 사이트등 말이다.
그렇다면 보안면에서나, 관리면에서나 Access에 비해 탁월한 SQL 서버를 추천한다.
필자가 MS와 그 어떠한 특별한 사이가 아님에도 필자는 단지 추천한다.
필자의 경험상 아직 큰 문제는 없었기 때문이다.

물론, 다른 어떤 분들은 오라클을 추천하시는 분들도 있다.
할 수만 있다면 그것도 좋겠지만... 경제력이 문제이다.



3) Editor(Tool)는 무엇으로 할 것인가?

사실상 ASP를 위한 툴은 따로 필요치 않다.
여러분은 HTML 에디터로써 어떤 것을 사용하시는가? 그것을 그냥 사용하시면 된다.
예를 들자면,
프론트 페이지나 나모 웹 에디터등이 있을 것이다.
드림위버나 나모 웹 에디터 ... 등등 그러한 것들도 좋다.
ASP는 그 코딩상의 특성상 미리 제작된 HTML 페이지의 사이사이에 ASP코드가 들어감으로써
구성되어지기에 그냥 사용하시던 에디터를 그냥 사용하시면 된다.

하다못해, 메모장을 사용해도 된다.

어차피 텍스트 파일이기에 그 어떠한 에디터로 제작을 하던 저장시에 확장자만 .asp로 저장하면 그것으로
asp 페이지는 만들어 지는 것이다.

우리의 웹서버는 확장자로서 그 파일들을 구분하기에 어떻게 만들던 확장자만이 asp이면 되는 것이다.

그러니, 특별한 에디터가 필요할 것이라는 생각은 갖지 않아도 된다.
그러나, 이 시점에서 "인터데브"란 툴이 있다던데.. 말이쥐~~~ 라고 생각하시는 독자들이 분명 있을 것이다.

그렇다. 사실 짱이다.(지극히 개인적인 생각이다)

인터데브는 사실상 ASP를 위한 툴이라기 보다는 전반적인 웹을 관리하는 툴이라고 볼 수가 있다.

ASP를 코딩하기도 편하고... 그러나, 이것은 HTML 에디터로 사용하기에는 불편함이 있다.

해서 필자의 경우는 일단 Frontpage로 HTML 페이지를 제작하고
그 페이지를 인터데브로 불러들여 ASP 코딩을 추가적으로 하는 방식을 사용하고 있다.
인터데브를 사용해도 여전히 HTML 편집기는 있어야 할 것이다.

사실, 인터데브는 상당히 유용한 툴이기는 하지만 다루기가 그다지 쉽지는 않은 편이다.
인터데브를 다루는 책이 따로 두껍게 한권이 나와있을 정도이니 말이다.
하지만 안타깝게도 우리는 여기서 인터데브에 대한 이야기는 전혀 다루지 않기로 결정했다.

인터데브를 다루는 이야기도 조금은 나오지만..
모든 분들이 그 툴을 가지고 있는 것은 아니고 또한,
초보자로서 그 툴을 바로 접근하기에는 무리가 약간 있다고 판단되어
이 책에서는 특정 툴을 다루지 않고 여러분이 원하는 툴로 제작할 수 있게 진행하려 하는 것이다.

이 얼마나 그레이트한 배려인가?

참고로, 인터데브는 MS의 Visual Studio 6내에 포함되어져 있는 상용 프로그램이다.
무료로 구하실 수는 없고,반드시 구입해야 한다.
(간혹 태오에게 이 프로그램을 달라고 부탁하시는 분들이 있는데... 그것은 불가능하다)

또한, 2001년 후반에는 Visual Studio의 차기 버전인 Visual Studio.NET 이 등장한다.
이 제품에서 기존의 비쥬얼 인터데브는 사라기게 되며,
Visual Studio.NET으로 통합된다.

그러므로, 반드시 Visual interDev를 공부해야 하는 것은 아니다.

참고로 이러한 비쥬얼 스튜디오 제품군의 사용자 모임이 웹상에 생겨났다.
Microsoft에서 상당한 지원을 해주는 곳으로 웹 사이트를 방문해서 더 많은 정보를 얻어보시기 바란다.

MS의 개발자를 위한 사이트 - 데브피아

 

4) 자그마한 세팅 하나. (Lan Card)

여러분은 이미 회사나 학교에서 인터넷을 하고 있기에,
이미 랜 카드가 하는 역할이 무엇인지는 다들 알고 있다.

그러나, 문제는 집에서 개인적으로 웹을 개발할 때이다.
가끔, 집에서 인터넷이 안 된다면,
ASP 개발도 안되는 것으로 착각하시는 분들이조금은 있는 듯하다.

집에서 웹서버용 어플리케이션을 개발하기 위해 반드시 인터넷에 언제나 연결이 되어져 있어야 하는 것은 아니다.
인터넷에 연결이 되어지지 않은 오프라인으로도 얼마든지 개발이 가능하다.

단순히 여러분의 PC에 랜 카드만이 있다면 그리고,
지정된 고정 IP만이 있다면 문제가 될 것이 없다.
바로 나홀로 인터넷이 되는 것이다.

실제로 인터넷은 쓸 수가 없지만 나 혼자서 존재하며, 개발을 할 수가 있는 공간을 만들 수가 있는 것이다.

그래서 랜 카드를 서버(아마도 여러분의 PC)에 달기만 하고, IP를 지정해 주면 되는 것이다.
어차피 나홀로 인터넷이니 IP주소가 충돌이 날 리가 만무하다.

그러니, IP주소는 반드시 실제로 존재하는 것이 아니어도 상관은 없다.
그러나, 형식에는 맞아야 한다.

만일, 그 형식이 무엇인지 잘 모른다면 회사나 학교, 심지어는 PC방이어도 좋다.
그곳에서 실제 사용중인 아무 IP번호를 가져다가 적어주면 된다.
(DNS와 gateway도) 적어도 형식에는 맞으니 말이다.

어차피 가상으로 나홀로 사용하는 인터넷이니 상관은 없다.
물론 차후에 실제로 이 PC에 랜선을 연결해서 사용할 경우는 IP를 다시 세팅해 주어야 할 것이다.

그러나, 여기서 하고자하는 이야기는 여기서 끝이 아니다.
랜카드가 없는 사용자의 경우를 위한 가상 랜 카드의 세팅을 살며시 알려드리고 넘어가려 하는 것이다.
만일 랜카드를 살만한 여유가 안된다거나, 굳이 살 이유가 없다면

그런 경우(?)를 위해 MS에서는 가상 랜 카드를 제공하고 있다.
(하지만, 현재 랜카드는 만원정도면 산다.
이제는 랜카드가 필수인 시대가 되어가고 있으니가급적 구입해서 사용하기를 바란다.
그런 경우 이하의 내용은 필요없을 것이다)

실제로 그 어떤 카드도 장착하지 않고 마치 장착된 것처럼,
랜 카드가 있는 것처럼 컴퓨터를 속이는 것이다.

그것은 MS LoopBack Adapter를 사용해서 가능해진다.

이제 바로 그 방법을 간단히 알아보자.

만일 아직 이 방법을 모르고 계셨다면 나름대로 유용할 정보일 것이다.
이제 랜카드가 없는 상태에서 가상 랜카드를 설치하는 방법을 알아보자.

ⓐ 네트웍 환경 아이콘에서 마우스 오른쪽 버튼을 클릭해서 등록정보로 가자.
그리고, 탭 중에서 어댑터로 찾아가자. 그리고, 아래의 그림과 같이 [추가] 버튼을 누른다.

ⓑ 위의 그림처럼 어댑터 탭에서 MsLoopBack 어댑터를 추가한다.

ⓒ 그리고, 확인을 누르면 다음과 같은 그림이 나오며, IP를 달라고 할 것이다.
형식에 맞게 적절한 IP를 부여하자. (아래의 그림은 특정 컴과는 관계없는 내용이다)

ⓓ 자동으로 리부팅을 요구할 것이다. 리부팅을 하자.

이제 여러분은 가상으로 랜 카드를 잡은 것이다.
이 상태로는 실제의 네트웍에서도 아무것도 할 수가 없지만,
asp를 이용한 웹 컨텐츠의 제작은 가능하게 된 것이다.

차후 이 pc를 실제로 네트웍상에 달때는 랜카드를 구입해서 달아주고,ip를 제대로 주기만 하면 된다.
물론 MsLoopBack 어댑터는 지워버리고 말이다.   

'Web Development > ASP' 카테고리의 다른 글

[ASP] 사용자에게 정보 얻기  (0) 2009.06.06
[ASP] 기본 문법 에 대하여  (0) 2009.06.06
[ASP] 기초튼튼 입문강좌  (0) 2009.06.06
[ASP] ASP로의 첫번째 도전!!  (0) 2009.06.06
[ASP] 기초 입문 강좌  (0) 2009.06.06