2. ASP 돌릴라구 그러면 뭐가 필요하냐? - 그 두번째
자.. 제가 저번시간에 ASP가 돌아가려면 어떤 시스템이 필요한지, 어떤 프로그램이 필요한지 설명드렸었져... 자 그래서 컴퓨터두 있구, OS로 NT server를 사용하구 IIS가 3.0이상 깔린 컴퓨터를 갖고 계신 분을 위해서 오늘은 간단한 ASP의 기본개념에 대해 설명드리고자 함다.
자 그럼 설명 나갑니다!
① ASP는 Server Side Program이다!
이게 뭔 말인고 하냐면요.. 조 앞에서도 잠깐 언급했지만 일반적인 홈페이쥐는 걍 쥔장이 보는 사람한테 띠불띠불거리는거잖아요? 그런데 CGI(Common Gateway Interface)를 사용하면 쥔장과 손님이 쌍방향으로 통신할수 있져. 마치 이 게시판처럼요. 여러분도 잘 알다시피 홈페이지 쥔장이 되는 컴퓨터를 써버(Server), 홈페이지를 구경하는 손님을 클라이언트(client)라고 칭합니다. 그럼 이 ASP라는게 어떻게 돌아가는지 써버(이하 "써버"로 칭함)와 클라이언트("클라"이라 칭함)와의 대화를 함 들어봅시다.
먼저 클라가 써버한테 이런 명령을 내립니다.
클라 : 하잇! 네 이눔! 확장자가 ASP로 끝나는 문서를 보여랏!
이런 경우 IIS 3.0이상 안 깔린 컴퓨터는
써버 : 그게 뭐대유? 전 촌넘이라 그런거 몰라유... 배째유...
이래가 Error가 뜹니다. 뭐, 존재하지 않는 문서라느니, 빈 문서라느니 쓸데없는 소리를 클라가 보는 웹 브라우저에 내 보이게 되는거죠.
하지만 IIS 3.0이상 깔린 컴퓨터는 틀립니다...
써버 : 오호홍.. 내 오늘을 기다렸다! 너같이 쌍방향 통신하려는 넘들을 기다린지 어언 30분!
난 니가 지난 여름에 한일은 모르지만 니가 보는 웹브라우저가 HTML 형식만을 읽는 것은 알구 있다! 내 당장 니가 요청한 이 ASP 파일을 컴파일해서 HTML형식으로 만들어 보내주마!
클라 : 아앗! 잠깐! 컴파일을 한 결과를 보여준다면... 쏘스는 공개하지 않겠다는거냐? 이런 비열한...
써버 : 우하하하 그렇다! 내 네넘을 위해 쏘스를 공개하는 그따위 멍청한 짓은 하지 않겠다! 그럼 ASP로 밥 먹구 사는 사람이 씨가 마를것이 아니냐? 글구 네가 지금 보고 있는 웹 브라우저는 내 소스를 받아서 컴파일의 컴도 못할 것이니 내 너를 위해 친절히 HTML형식으로 만들어 주었는데 무슨 X소리냐? 이 XXXXX! (가톨릭 동호회 특성상 자체 검열하여 잘랐습니다.)
이런 대화가 주고 받아 집니다.
자 이들의 정신없는 대화를 정리하면 이렇습니다.
- 클라이언트는 서버에 끝자리가 ASP로 끝나는 문서를 웹브라우저를 통해 요청합니다.
- 그럼 서버측의 IIS는 그 요청을 받아들여 HTML 문서로 만들어 상대방에게 보내줍니다.
- 그럼 상대측은 HTML이 보이는 웹 브라우저라면 어떤 브라우저든지 상관없이 다 그 문서 내용을 볼수 있게 됩니다.
이게 서버 사이드 프로그램의 특징입니다. 그럼 클라이언트 사이드 프로그램도 있나요? 여러분 잘 아시는 JavaScript는 바로 소스채로 받아다가 웹 브라우저가 컴파일해서 실행시킵니다.
자, 제가 강조하구 싶은 부분은여, 바로 ASP는 넷스케이프나 익스플로러나 어느 브라우저에서 봐두 상관이 없다는 겁니다. 이걸 유식한 말루다가 "호환성"이라구 하져. *^^*
그리구 여러분이 짠 프로그램의 소스는 보호가 됩니다. ASP 문서를 마우스 오른쪽 버튼 백번 클릭해서 소스보기를 아무리 해도 여러분이 짠 프로그램은 보이지 않게 됩니다.
물론 환상적인 버그와 백도어(뒷문)를 잘 만들기로 소문난 M$사에서 소스를 볼 수 있는 방법을 다 만들어 놓았죠. (그게 바로 백도어입니다.) 그럼 그걸루 밥 먹구 사는 사람이나 소스안에 중요한 암호나 어떤 파일의 위치등이 있다면 그런 사람 다 망하게요? 그래서 ASP 프로그래머들이 거센 항의를 M$사에 했구 그래서 M$사에서는 소스를 볼 수 없는 패치파일을 내 놓았습니다. 하지만 누가 압니까? 또다른 백도어가 있는지... 쩝. -.-;;;
자, 또하나. 이건 굉장히 중요한 내용입니다!
지금 말씀드렸듯이 써버측 IIS에서 컴파일을 해서 웹브라우저에 보여준다고 했죠? 그럼 IIS를 경유하지 않으면 절대 컴파일 된 내용을 볼 수가 없습니다.
"누가 그걸 몰라? 날 바보로 알아?" 라고 외치면서 본인 컴퓨터로 ASP 파일을 만든 다음 하드에 있는 ASP를 웹 브라우저로 읽는 사람이 있었습니다. 그게 바로 저였구여. 헐~
자, 우리가 HTML로 홈페이지를 하나 만들었을때 이것이 과연 잘 만들어 졌나 보려면 여러분이 만든 HTML문서를 더블클릭해서 웹브라우저에서 봤죠? 즉 웹 브라우저에 주소란에 file:///C:/homepage/test.html 뭐 이런식으로 적어서든지 어떻게 해서든지요.
이건 IIS라는 넘을 완전히 무시한 상태입니다. IIS가 뭡니까? http형식으로 web service를 해주는 넘 아닙니까? 그러기때문에 여러분이 C 드라이브에 homepage 폴더에 test.asp라는 파일을 만들어 놓고 백날 file:///C:/homepage/test.asp 읽어 보십시오. 절대 안 읽힙니다. 이 개념을 심어드리려구 제가 앞에 써버와 클라의 말도 안되는 대화를 써 놓은 것입니다. 즉 여러분의 컴퓨터 IP adress나 Domain Name이 있는 경우, 예를 들어 여러분의 컴퓨터 IP가 100.100.111.111이라구 칩시다. 그럼 여러분이 만든 ASP 파일을 보기 위해선 브라우저에서 http://100.100.111.111/test.asp 이런식으로 봐야 보인다는 겁니다. Domain Name이 myweb.tou.com 이라구 예를 들면 http://myweb.tou.com/test.asp 이렇게 써야 함다.
자 중요함다! ASP를 볼라구 하면 web browser에서 반드시 http:// 요넘이 앞에 들어가야 볼 수 있슴다!
② ASP는 확장자가 ASP로 끝난다!
자. 여러분 위에 대화에서 보셨겠지만 클라이언트가 확장자가 ASP인 것을 요구하면 서버는 그걸 컴파일 한다고 말씀드렸습니다. 바로 이겁니다. 여러분이 잘 아는 HTML 문서는 확장자가 *.htm 또는 *.html로 끝나죠? ASP는 확장자가 *.asp로 끝나야 합니다. 그래야 써버에서 요구를 받아들여 컴파일을 하게 되여. 애써 프로그램 다 짜 놓고 확장자를 HTM으로 만든 다음 흐뭇해 하는 분이야 세상에 없겠지만여.. 그냥 베족을 달아봤심더.
③ ASP는 뭘로 만드는가?
뭘로 만들긴, 프로그램이니까 키보드로 글자 쳐서 만들지...
여기까지 써 놓음 수많은 사람이 절 돌로 치려고 벌떼같이 몰려들 것이고 예수님이 다시 오셔서 누구든지 죄없는자 이 자를 돌로 치라! 하면 모두들 "예수님 죄송합니다! 저넘만 돌로 치고 고백성사 보겠슴다!"라고 외치며 저한테 짱돌을 날리시겠죠? 헐~
HTML을 다룰 줄 모르고 바로 나모 웹 에디터나 프론트페이지로 홈페이지를 만드신 분은 다시 HTML 문법부터 공부를 하고 오십셔. ASP 소스 파일은 비쥬얼 베이직 문법의 프로그램과 HTML code로 이루어져 있거든여. 그래서 HTML을 공부할때 Web Editor 부터 공부하면 안된다는 겁니다. 만드시 Tag를 알아야만 합니다. 자, HTML 코드를 짜 보신 분은 아실겁니다. HTML 문서 만들기 위해서 뭘로 만들어야 하죠? 당근 아시다시피 메모장도 되고, Ultra Editor도 되고, 텍스트 편집기면 뭐든지 다 된다는 걸 아실겁니다. 뭐, 좀 편히 만들려면 나모 웹 에디터나 프론트 페이지 에디터로도 만들수 있구여.
ASP도 마찬가집니다. 메모장으로 만들수 있구 여러가지 텍스트 에디터로 만들수 있습니다. 걍 텍스트 쓸수만 있으면 되여. 이건 돈 안들이구 ASP 만드는 법이구여, 여러분이 홈페이지 편하게 만들기 위해서 나모 웹 에디터를 쓰듯이 ASP도 편하게 개발하기 위해 개발된 도구가 있슴다. 바로 Micro$oft Interdev라는 건데요, 이걸 쓰면 여러분이 좀 더 편안하게 개발하실수 있슴다. 이거 어디서 구하느냐구여? Visual Studio안에 포함되어 있는데요, 비쌉니다....
전 학교 다닐때 시내버스를 타구 다닙니다. 자가용을 타고 다니는 친구도 있지만 별루 부럽지 않습니다. 왜냐구여? 자가용은 운전도중 졸수도 없지, 저녁에 술도 못 먹지.. 여러모로 불편한 점이 많거든요. 대신 통학길에 편하게 안자서 기다리는 노고없이 통학할수 있겠지만 그거.. 별로 큰 메리트 같진 않네요. 마찬가집니다. 그냥 Ultra Editor나 아님 다른 텍스트 에디터를 써도 그렇게 큰 지장이 없습니다. 저 역시 필요한 경우를 빼고는 대개가 메모장으로 만듭니다.
자, 여기까지 이야기를 읽으신 분은 짜증이 날지도 모르겠습니다.
"우쒸!~~ 난 빨리 계시판 만들고 싶은데 게시판 만드는거에 대해서 여지껏 한마디도 안했잖아? 이거 어찌된거야? 왜 이렇게 매일 짜증나는 얘기만 늘어놓는거지?"
라고 말씀하시는 분.. 결코 제가 오늘까지 한 얘기 무시하면 안됩니다. 큰코 다쳐여... 모든 일에는 기본개념이 중요한겁니다. 여러분이야 이런 기본개념이 중요한걸 다 아시겠지만 극히 일부분의 분들은 이런 기본개념은 무시하고 게시판의 소스코드 어디서 얻어다가 적당히 편집해서 사용하고 싶어 하시는 분도 계시거든요. 그럼 발전이 없구여, 나중에 에러가 발생하면 어디서 발생했는지 찾을수가 없어서 사방군데 인터넷 게시판에다가 "도와주세요.. 고수님 모십니다"라는 글을 도배하고 다니게 됩니다. 자. 지겹겠지만 다음주까지는 참아주세요. 다음주에 Visual Basic Script에 대해서 간단히 공부하고 그 다음주부터 본격적으로 게시판을 만들어 가기 시작하겠습니다.
아일 비 백! 투 비 컨티뉴드...
