본문으로 바로가기

왜 웹개발툴로 asp를 사용합니까?

category 웹/웹.도움말 2008. 4. 17. 15:13

최근에 몇몇 델파이 개발자들과 이야기를 나누던 중에 기가 막힌 사실을 알았습니다. 웹서버 개발툴로 델파이 대신에 asp를 대부분 사용하고 있다는 것입니다. 델파이는 업무용 개발툴이지, 웹개발툴로 적합치 않다는 생각을 가진 개발자가 많다는 사실을 알았습니다. 델파이는 웹서버 프로그래밍에서도 기가 막힌 존재입니다. 이미 몇몇 개발자들은 asp의 단점을 알고 델파이나 순수 C나 C++로 cgi를 개발하고 있습니다.

먼저 asp의 단점을 지적해 보겠습니다.

1. 소스코드와 html 태그 코드가 하나의 파일내에 존재하여 관리가 매우 힘들다. 후일 분석하거나 수정하려면 정말 장난이 아니다.(닷넷 asp는 이문제를 별로 만족할 수준은 아니나 어느 정도 해결함)

2. 전역 함수 개념이 없다. 반복하여 사용하는 함수가 있다면 이는 별도의 파일에 집어넣고 include해서 사용해야 한다. 이는 결국 리소스 가중 사용을 유발한다.
(닷넷 asp는 이 문제 완벽하게 해결)

3. 세션 개념이  아주 미약하다. 문자열 형태 이외에 복잡한 자료형을 세션에 보관하려면 아주 골치아픈 코딩을 해야 한다.
(닷넷 asp는 이문제를 좀더 개선함. 그러나 일반 개발자 입장에서 봤을 때 여전시 세션처리는 골치 아픔)

4. 리소스 사용이 만만치 않다. 대다수 개발자들이 cgi 실행파일이 asp보다 리소스를 더 많이 사용한다고 착각하고 있다. 그러나 실제는 그 반대이다. 사용자가 url로 asp파일을 참조하면, asp 스크립터 엔진이 그 asp 소스 파일을 해석(컴파일과정과 비슷)해서 사용자에게 반환한다. 만일 100명이 이 asp파일을 참조한다면 이 해석과정이 100번 일어난다. asp파일 자체는 윈도우nt가 캐쉬할지 몰라도, asp는 매번 새로인 컴파일된다. (닷넷 asp는 이 문제를 해결함)

5.  asp로 만든 홈페이지를 다른데 설치/배포하려면 아주 골치 아프다. 이는 asp가 IIS, ODBC, asp스크립트 엔진 등의 버전에 매우 민감하기 때문이다. 이 때문에 혼자서 사용할 웹서버 프로그램이 아니고, 다른데 팔려는 목적으로 asp로 홈페이지를 만들려면 정말 신중에 신중을 기해야 한다. asp는 스크립트이기 때문에 소스가 훤히 들여다 보이는 문제도 있다. 이는 소스 유출 위험성 뿐만 아니라, 사용자가 이부분 저부분 맘대로 수정할 수도 있다는 말이 된다. 텍스트 편집기만 있으면 asp 소스는 얼마든지 수정 가능하다. 이것이 처음에는 편리하게 보일지 몰라도 후일 엄청난 AS 를 감당해야 할 수도 있다. 사용자가 맘대로 건드릴 수 있다는게 절대로 좋은 것이 아니다.

6. asp는 스크립트 언어이기 때문에 그 문법이 상당히 제약적이다. 함수 개념이 있는것 처럼 보이지만, 실제로는 함수 호출 개념이 거의 없는거나 마찬가지이다.  클래스, 함수 포인터, 재귀호출 등 일반 컴파일러 언어에서 사용할 수 있는 코딩 기법들은 전혀 사용할 수 없다. 만일 그림파일을 동적으로 처리하여 경우에 따라서 다르게 보여줘야 한다면 C나 C++같은 외부 언어에 의존해야 한다. asp 문법에는 비트 처리나 그림파일 처리 같은 문법이 없다. 설사 있다 하더라도, 인터프리터 방식이기에 처리 속도가 매우 느리다.

7. 디버깅이 거의 환상적일 만큼 어렵다. 델파이에서 일반 업무용 프로그램 디버깅은 매우 편하다. 라인단위 추적, 함수별 실행, 변수값 추적 등을 즉각 행할 수 있지만, asp에서는 이런 디버깅은 거의 불가능하다. html 문 중간 중간에 출력 문장을 집어 넣어서 추적하는 방법 정도의 원시적 디버깅 방법만 가능하다.

결론적으로 말해서, asp는 처음에는 배우기 쉬울지 몰라도 나중에 복잡한 코딩이 필요할 경우 거의 속수무책인 툴입니다. 나도 처음에 이 배우기 쉽다는 점에 asp를 사용했지만 위와 같은 단점들을 깨닫고 즉각 asp를 포기했습니다.

앞서 지적한 단점들 때문에 ms는 닷넷 asp를 만들었다고 해도 과언이 아닙니다. 그러나 유감스럽게도 닷넷asp가 asp의 이런 단점들을 모두 해결한 것은 절대로 아닙니다.

이런 블편한 asp를 우리 델 개발자들은 전혀 사용할 필요가 없습니다. 델파이 7에는 인트라웹이란 콤포넌트가 있읍니다. 이 콤포넌트는 델파이로 웹서버 프로그램밍을 가능하게 합니다. 이 콤포넌트는 앞서 언급한 이러한 asp의 단점들이 전혀 없습니다. 이 콤포넌트의 장점을 알아 봅시다.

1. html 태그나 자바스크립트에 대해 공부할 필요 없이,  순수 델파이 코드로 웹서버 프로그래밍 가능. 다시 말해서 델파이 오브젝트 파스칼의 막강한 기능을 모조리 사용할 수 있습니다.

2. 일반 어플리케이션 만드는 방식과 동일하게 웹서버 프로그램 가능. 델파이로 일반 프로그램을 만들려면 폼을 만들고 버튼과 에디트 박스를 두고 이런 저런 이벤트 메서드를 만들 것입니다. 인트라웹은 이 방식과 완전히 같은 방법으로 웹서버 프로그램을 만들 수 있습니다. 이 말은 디버깅시 델파이 통합환경의 모든 디버깅 기능을 그대로 사용할 수 있다는 것을 의미합니다.

3. 세션처리 아주 파워풀함. 일반적 어플리케이션에서 전역변수와 폼의 멤버필드로 폼 사이에 정보를 교환하듯이 세션간에 필요한 정보도 같은 방식으로 코딩합니다. 이말은 세션처리시 오브젝트 파스칼이 허용하는 어떤 데이타형도 전달할 수 있다는 것입니다.

4. 자체 스레드 방식임으로 리소스 사용 최소화. 일반 cgi 프로그램의 단점이 여러번 실행 종료되기 때문에 리소스를 많이 사용하는 단점을 없애기 위해서 인트라웹은 사용자 요청에 대해 스레드 생성, 처리, 응답 방식을 사용합니다. 다시 말해서, 일반 cgi와는 달리 호출할때 마다 별도의 실행 종료 방식이 아닙니다.

5. 인트라웹으로 만든 프로그램 자체가 웹서버이기 때문에, 설치 배포가 아주 간단함. 다시 말해서 일반 어플리케이션처럼 폴더하나 만들고 실행 파일만 복사하면 즉각 실행가능한 웹서버가 됩니다. 당연히 IIS나 아파치같은 웹서버에 전혀 의존할 필요가 없고, 따라서 이런저런 가상 디렉토리 만들고 폴더 권한주고 할 필요가 없습니다. 내가 만든 웹서버 프로그램을 돌리기 위해서 외부 웹서버(IIS나 아파치같은)에 의존할 필요가 없다는 것은 매우 강력한 개념입니다.

6. 융통성이 뛰어 납니다. HTML 전문가와 델파이 개발자가 작업을 병행할 때 아주 편리합니다. HTML 디자인 부분과 웹서버 코딩은 완전히 별도 파일로 분리되기 때문에, 둘이 서로의 작성 부분을 잘 못 건드려서 망칠 위험이 없습니다.

지금까지 asp나 perl, php 등으로 웹서버 프로그램을 만들엇다면 델7의 인트라웹을 당장 사용해 보십시요. 배우기도 매우 쉽고, 개발도 매우 쉽고, 배포 또한 거의 거저입니다. 인트라웹 콤포넌트는 델파이 5,6,7 버전 모두를 지원하는 것으로 알고 있습니다. 5,6 버전 사용자는 별도로 구입을 해야할 것입니다. 그러나 진정 값어치를 하는 제품입니다 조만간 인트라 웹 6버전이 나오면 저도 정식 등록할 예정입니다.

웹사이트 주소..

http://www.atozedsoftware.com/intraWeb/intros/Borland.html

추신 : 절대로 인트라웹 개발 관계자들에게 한푼의 뇌물을 받은적이 없습니다. 어떤 이익적 목적 때문에 이 콤포넌트를 소개하는 것이 아닙니다.

인트라웹은 kylix에서도 동작합니다. 즉 리눅스에서도 사용가능합니다.

출처 : http://www.delmadang.com/cwb-bin/CrazyWWWBoard.exe?backdepth=1&db=dmdlec3&mode=read&num=1956