ASP
기본 정보
- 이름: ASP (Active Server Pages)
- 분류: 서버 사이드 스크립트 기술
- 개발사: Microsoft
- 최초 공개: 1996년
- 실행 환경: IIS (Internet Information Services)
- 기본 언어: VBScript, JScript
- 주요 용도: 동적 웹페이지 개발, 기업 웹 시스템
- 관련 주제: #ASP #VBScript #IIS #백엔드 #웹개발
개요
ASP(Active Server Pages)는 Microsoft에서 개발한 서버 사이드 웹 기술이다.
HTML 안에 VBScript 또는 JScript 코드를 삽입하여 동적인 웹페이지를 생성할 수 있으며, 1990년대 후반부터 2000년대 초반까지 기업 홈페이지, 쇼핑몰, 게시판, 그룹웨어 등에서 널리 사용되었다.
현재는 대부분 ASP.NET 또는 ASP.NET Core로 대체되었지만, 많은 레거시 시스템에서 여전히 운영되고 있다.
주요 특징
- 서버에서 실행
- HTML과 스크립트 혼합 가능
- IIS 기반 실행
- COM(Component Object Model) 지원
- ADO를 통한 데이터베이스 연동
- Windows 서버 환경에 최적화
실행 구조
브라우저
↓
ASP 요청
↓
IIS
↓
VBScript 실행
↓
HTML 생성
↓
브라우저 출력
기본 예제
<%
Response.Write("Hello ASP")
%>
변수
<%
Dim name
name = "구름"
Response.Write(name)
%>
Dim 키워드로 변수를 선언한다.
조건문
<%
If age >= 20 Then
Response.Write("성인")
Else
Response.Write("미성년자")
End If
%>
반복문
<%
For i = 1 To 5
Response.Write(i)
Next
%>
함수
<%
Function Add(a,b)
Add = a+b
End Function
%>
HTML과 함께 사용
<h1>
<%= name %>
</h1>
<%= %> 구문은 값을 화면에 출력할 때 사용한다.
Form 데이터 받기
<%
name = Request.Form("name")
%>
QueryString
<%
id = Request.QueryString("id")
%>
URL 파라미터를 가져올 수 있다.
Session
<%
Session("id") = "admin"
%>
조회
Session("id")
로그인 상태 유지 등에 활용된다.
Cookie
<%
Response.Cookies("user") = "cloud"
%>
브라우저에 데이터를 저장할 수 있다.
데이터베이스 연결 (ADO)
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open connectionString
Classic ASP에서는 ADO를 사용하여 데이터베이스와 연결한다.
SQL 실행
sql = "SELECT * FROM member"
Set rs = conn.Execute(sql)
Recordset 조회
Do Until rs.EOF
Response.Write(rs("mb_name"))
rs.MoveNext
Loop
Include
<!--#include file="header.asp"-->
공통 파일을 포함할 때 사용한다.
Server 객체
대표 메서드
- Server.MapPath()
- Server.CreateObject()
- Server.URLEncode()
- Server.HTMLEncode()
예시
Server.MapPath("/")
실제 서버 경로를 반환한다.
주요 객체
| 객체 | 설명 |
|---|---|
| Request | 요청 데이터 |
| Response | 응답 출력 |
| Session | 세션 관리 |
| Server | 서버 기능 |
| Application | 전역 데이터 |
| ObjectContext | 트랜잭션 관리 |
주요 활용 분야
- 기업 홈페이지
- 쇼핑몰
- 게시판
- 그룹웨어
- ERP
- 회원관리 시스템
- 레거시 업무 시스템
장점
- 배우기 쉬운 문법
- HTML과 쉽게 결합
- Windows 서버 환경에 최적화
- 빠른 웹 개발 가능
- IIS와 높은 호환성
단점
- VBScript 기반으로 확장성이 제한적
- 객체지향 기능 부족
- 유지보수가 어려운 구조가 되기 쉬움
- 최신 웹 기술 대비 생산성이 낮음
- 신규 프로젝트에서는 거의 사용되지 않음
실무 메모
레거시 ASP 유지보수 시 권장 사항
- SQL Injection 방지를 위한 입력값 검증
Server.HTMLEncode()로 XSS 방지- 공통 함수 분리
- Include 파일 구조 개선
- DB 연결 객체 명시적 종료
Option Explicit사용으로 변수 선언 강제- UTF-8 환경 적용 검토
- 가능하다면 ASP.NET 또는 최신 기술로 점진적 마이그레이션 고려
ASP와 함께 사용하는 기술
ASP와 ASP.NET의 차이
| ASP | ASP.NET |
|---|---|
| VBScript 기반 | C#, VB.NET 기반 |
| 스크립트 방식 | 컴파일 방식 |
| 객체지향 지원 제한 | 완전한 객체지향 지원 |
| 유지보수 어려움 | 구조화된 개발 가능 |
| 레거시 시스템 중심 | 현재 Microsoft 웹 개발 표준 |
관련 문서
출처
- Microsoft IIS Documentation
- Microsoft Legacy ASP Documentation
- 위키백과 「Active Server Pages」