이식성 높은 폼과 데이타베이스 클래스
처음 설계하기란 책 제목 자체가 다소 ASP 웹 사이트 제작과는 어울리지 않는다고 생각해 선뜻 손에 잡히지 않았다. 그러나 읽으면서 전혀 기대하지 않았던 큰 소득을 얻었다. 3.0의 많은 장점과 실무에 곧바로 적용할 수 있는 이식성 높은 소스가 바로 그것이었다.
근 2년간에 걸쳐 ASP를 이용해 웹사이트를 구축해왔지만 매번 새로운 웹 사이트를 구축할 때마다 비슷한 쇼핑몰임에도 걸리는 시간은 항상 일정했다. 끊임없이 반복되는 작업을 효과적으로 줄이는 방법은 없을까? 나와 똑같은 고민을 바로 이 책 스콧미첼의 친구가 고민하였고 이는 모든 사이트 개발자들의 공통된 고민이었을 것이다.
이를 해결하기 위하여 저자는 객체지향프로그래밍과 ASP의 접목을 시도하였다. 클래스를 만들어 두고 이를 인클루드를 이용해 파일 안에 포함시킴으로써 필요할 때마다 클래스 파일을 인클루드하여 코드의 반복작업을 줄였다. 이러한 코드 설계로 ASP의 파일의 개수가 줄고 그만큼 버그의 수도 줄여 전체적인 작업 과정이 단축될 뿐만 아니라 다른 웹 사이트 개발에도 동일한 클래스를 사용함으로써 전체적인 업무의 효율을 기할 수 있게 되었다.
크게 두가지였다. 폼 클래스와 데이터베이스 클래스.
사용자 입력을 받는 폼을 클래스와 VBScript 5.0의 새로운 함수를 이용해 다양한 폼을 하나의 클래스로 통합시켰다.
또한 데이터베이스 작업을 통합한 클래스를 만든다. 레코드 읽어오기, 저장하기, 수정하기, 삭제하기 등등의 작업을 ADO 스키마를 이용해서 테이블과, 칼럼정보, 참조테이블 정보등을 수집하여 처리한다. 어느 테이블, 어느 데이터베이스라도 접근하여 동일한 관리페이지에서 관리가 가능해 진다.
그러나 위 두가지 외에도 다른 사이트의 컨텐츠 끌어오기나 암호화 컴포넌트도 유용하고 실무에서 활용도가 높은 컴포넌트이다. 좋은 컴포넌트의 소개도 프로그래머의 노력을 단축시키는 좋은 정보이다.
소스를 보면서 저자의 실무 경험에서 나온 값진 산물임을 실감하였다. 업체를 다니면서 아직도 클래스를 사용하지 않는 구태의연한 방식으로 제작하는 업체가 있는가 하면, 이미 이러한 클래스 방식을 도입한 업체도 보았다. 이 방법을 모르는 사람들은 약간 불편할 뿐이라고 생각할 수 있다. 그러나 이 방법을 알게 되면서 몇 배의 시간을 절약하였다.
이제 ASP 기본서는 보았다면 이 책을 권하고 싶다. VBScript5.0과 의ASP 3.0을 제대로 알고 활용한 책이다. 닷넷으로 넘어가는 시점에서 쉽게 클래스를 이용해 보고 싶다면 이 책을 권하고 싶다. 진정한 ASP 프로로 가는 시점에서 꼭 읽어야 할 필독서라고 생각한다.
왜 이 책을 보아야 하는가?
최근 몇 년간 IT 산업의 급격한 성장과 더불어 특히 두드러진 것이 인터넷 관련 분야이다. 그 성장의 속도와 양에는 혁명이라는 단어를 사용해도 무방할 것이다. 웹의 여러 장점 중 하나인 개발에 대한 부담이 상대적으로 낮다는 점에서 우후죽순처럼 웹사이트가 개발되었고, 또 이를 개발하는 데 필요한 도구나 언어의 성장이 빠르게 이루어 졌다. 그러나 개발 기법의 발전은 상대적으로 크게 뒤쳐져 있는 게 사실이다.
이는 웹사이트 개발에 요구되는 시간은 점점 줄어들고 비용은 낮아지고 있으며, 급격한 수요만큼 폭증한 개발 회사들과 인력으로 경쟁이 더욱 심화되어, 충분한 개발 단계를 거칠 시간과 환경이 갖추어지지 못했기 때문이다. 게다가 실제 개발자들 조차 웹 프로그래밍 언어를 간단한 스크립트 정도로 가볍게 여기는 경향이 있다. 여러 환경적인 문제가 있지만 그렇다고 해서 다른 개발 환경에서처럼 충분한 시간과 비용 등을 요구할 수만은 없다. 그래서 이런 문제를 해결하기 위해서는 기능 구현 측면보다는 효율적인 웹 프로그래밍 기법을 고려하지 않을 수 없다.
그에 대한 요구가 낮았던 만큼 적합한 책을 찾기 힘들었는데, 널리 쓰이고 있는 웹 개발 언어 중 하나인 ASP에 관한 『ASP 설계하기(Designing Active Server Pages)』란 책이 그 해결책을 제시해 줄 수 있으리라 생각된다. 이 서적의 목차를 살펴보자.
1장. 개요
응용 프로그램 설계
ASP 설계의 문제점
ASP 설계 기법이 발전하지 못한 이유
ASP 설계 기법을 향상시키기 위한 방법
관련 사이트
2장. 서버측 스크립트 언어 선택하기
비주얼베이직 스크립트의 대중성
스크립트 언어 명시하기
JScript로 ASP 페이지 만들기
PerlScript로 ASP 페이지 만들기
파이썬으로 ASP 페이지 만들기
관련 사이트
3장. 예외 처리
관련 용어
예외 감지하기
예외에 대한 대응
사용자 정의 오류 페이지의 작성
관련 사이트
4장. 정규 표현식, 클래스, 동적 연산과 실행
RegExp 객체 사용
비주얼베이직 스크립트 객체지향 프로그래밍
동적 연산과 실행
관련 사이트
5장. 폼 재사용
코드 재사용의 중요성
폼 사용 입문
폼 유효성 검사
재사용 가능한 서버측 폼 유효성 검사 루틴 만들기
재사용 가능한 폼 생성 루틴을 개발하기
재사용의 실용성
관련 사이트
6장. 데이터베이스 재사용
데이터베이스 사용법
재사용 가능한 관리 페이지 생성
재사용 가능한 관리 페이지 작성하기
관련 사이트
7장. 컴포넌트 사용
COM 개요
마이크로소프트 COM 컴포넌트
마이크로소프트의 COM 컴포넌트 확장하기
컴포넌트 구축
관련 사이트
8장. 서드 파티 컴포넌트로 웹 사이트 확장하기
ASPExec로 웹 서버의 도스와 윈도우 응용 프로그램 실행시키기
사용자의 브라우저에 대한 자세한 정보 얻기
다른 웹 서버로부터 정보를 알아내기
정보 암호화
브라우저에서 웹 서버로 파일 업로드하기
왜 똑같은 실수를 범하는가?
관련 사이트
위와 같은 내용으로 구성된 이 서적의 강점을 세세히 얘기해보면 다음과 같다.
ASP로 개발할 때 쉽게 간과했던 문제에 대한 날카로운 지적
ASP라는 제한된 범위이고 깊이 있는 소프트웨어 개발 방법론적인 접근이라고는 할 수 없지만, 개발 여건의 제약이나, CASE 툴(Computer Aided Software Engineering Tool)에 모두 적용하기 힘든 웹의 특성 등을 고려할 때 지나치게 원론적인 접근보다는 실제 사용되는 도구를 가지고 중요하지만 쉽게 간과해 버리는 문제점을 지적하고, 프로그램의 재사용성을 향상시키는 기법을 제시하면서 동시에 여러 개발 방법을 제시하고 있다.
구조적인 로직 설계를 통해 프로그램의 재사용성을 향상시키는 방법 제시
특히 ASP 3.0에서 추가된 Server 개체의 Excute와 Transfer 메소드에 대한 내용은 가장 유용하게 쓰이고 있는 SSI(Server Side Include)의 큰 문제점인 동적 포함에 대한 해결책을 제시하고 각각의 특성을 잘 비교하여, 로직 설계의 부분이나 코드의 재사용성, 그리고 프로그램 코드와 디자인 코드와의 분리 등의 페이지 설계에 큰 도움을 줄 것이다.
익숙하지 않은 다른 스크립트 언어에 대한 길잡이 역할
시스템적인 제약으로 비주얼 베이식(Visual Basic), VBScript 등에 익숙하지 않은 개발자들에게 Jscript, 펄(Perl), 파이썬(Pyton) 등의 스크립트 코드를 사용할 수 있는 방법을 제시해 주고 있어, 누구나 쉽게 접근이 가능한 ASP의 장점을 또 한번 느끼게 해 주었다.
ASP 기능의 확장으로 중대형 사이트 개발 가능
기존의 책에서 볼 수 없었던 ASP를 통한 데이터베이스 접근 방법과 다양한 클래스에 대한 내용을 통해 재사용과 일관성이란 프로그래밍 기법을 익히게 함과 동시에 컴포넌트를 사용하여 웹사이트를 확대할 수 있는 내용은 ASP라는 스크립트로 중대형 웹사이트 개발이 가능하도록 날개를 달아 줄 수 있을 것이다.
예외 처리에 대한 명쾌한 해결책 제시
웹사이트는 다양한 접근 경로로 많은 접속자 수, 비접속성(접속성의 특성을 일부 가지고 있지만) 등으로 인해 예기치 못한 에러가 발생할 수 있는 빈도 수가 상대적으로 높음에도 불구하고, 전자상거래나 인증이 필요치 않는 사이트의 경우 에러를 임의대로 처리하거나 혹은 그것조차도 무시하는 사례를 간혹 발견하게 된다. 이는 에러를 처리하는 것이 쉽지 않을 것이라는 막연한 부담감과 웹사이트의 일부 에러에 대해(TimeOut이나 메뉴상의 UI 관련 (자바)스크립트 에러) 너무 가볍게 생각하고 있기 때문인지도 모른다. 이런 예외 처리에 관한 내용에 쉽고 체계적으로 접근하여 운영상에서 필요한 문제점을 기술하고, 해결 방안을 제시하여, 웹사이트의 오류에 대한 원활한 처리가 가능하도록 해줄 것이다.
누가 봐야 하는가?
이 책에서는 각 단원의 주제에 대해 프로그램 로직의 흐름을 상세히 기술하고, Jscript와 비교를 통해 여러 관점에서 쉽게 접근이 가능하게 함으로, 논리적인 내용에서 오는 어려움과 난해함을 줄여 누구나 쉽게 이해하도록 세심한 배려를 아끼지 않았다
ASP의 입문자들에게는 꼭 알아야 되는 기본 지식을 제공하여, 많은 경험과 노력을 통해서 어렵게 얻게 되는 지식들을 빠르게 습득할 수 있게 할 것이고, 중급 개발자에게는 그 동안 쉽게 간과해온 중요한 문제를 다시금 상기시키고 해결하도록 하는 대안을 제시하면서, 쉽게 접할 수 없었던 고급 기법을 알려준다. 이 책에는 실무 작업에 기초한 작업 코드가 포함되어 있지 않지만, 안정적이고 구조적인 프로그램을 빠르게 개발할 수 있도록 개발 효율성을 높이는 데는 참고 도서로서 손색이 없을 것이다.
이원재(NeoArti@hotmail.com)씨는 현재 nTech9에 근무하고 있는 전문 프로그래머로 부동산 중계 C/S 프로그램 제작, 엠파스 결혼정보 서비스 개발, SPOS site 시스템 설계, iMBC.com 결혼서비스 개발, 대한치과기공사협회 사이트 개발 등의 화려한 경력을 가지고 있다.