본문 바로가기
인턴

[24일차] classic ASP - 내장객체

by 당도-50% 2024. 11. 14.

* Classic ASP는 웹 애플리케이션 개발을 돕는 여러 내장 객체와 컬렉션을 제공합니다. 이들을 통해 사용자 입력을 수집하거나 서버-클라이언트 간 데이터 전송, 상태 유지 등을 효율적으로 수행할 수 있습니다. 내장 객체와 컬렉션에 대해 알아봅시다.

 

Classic ASP의 주요 내장 객체 및 컬렉션

  1. Request 객체
    • 설명: 클라이언트가 서버로 보낸 요청 데이터를 수집.
    • 주요 컬렉션:
      • Request.QueryString: URL 쿼리 문자열(GET 요청)을 통해 전달된 파라미터를 읽음.
      • Request.Form: HTML 폼을 통해 POST 방식으로 전달된 데이터를 읽음.
      • Request.Cookies: 클라이언트가 서버에 전송한 쿠키 정보를 읽음.
      • Request.ServerVariables: 서버 및 환경 변수 정보(IP 주소, 브라우저 정보 등)를 읽음.
    • 예시:
      asp
      코드 복사
      productID = Request.QueryString("productID") username = Request.Form("username") clientIP = Request.ServerVariables("REMOTE_ADDR")
  2. Response 객체
    • 설명: 서버가 클라이언트에 응답할 내용을 설정 및 전송.
    • 주요 메서드 및 속성:
      • Response.Write: 텍스트나 HTML 코드를 클라이언트로 출력.
      • Response.Redirect: 클라이언트를 다른 페이지로 리디렉션.
      • Response.Cookies: 클라이언트에게 보낼 쿠키를 설정.
      • Response.ContentType: 응답 콘텐츠의 MIME 타입을 설정.
    • 예시:
      asp
      코드 복사
      Response.Write "Hello, world!" Response.Cookies("userID") = "abc123" Response.Redirect "welcome.asp"
  3. Server 객체
    • 설명: 서버에서 특정 기능을 수행하거나 다른 구성 요소를 생성하는 데 사용.
    • 주요 메서드:
      • Server.CreateObject: COM 객체를 생성.
      • Server.HTMLEncode / Server.URLEncode: HTML 및 URL 인코딩을 처리.
    • 예시:
      asp
      코드 복사
      Set objConn = Server.CreateObject("ADODB.Connection") encodedURL = Server.URLEncode("http://example.com")
  4. Session 객체
    • 설명: 사용자의 세션 상태를 유지하여 로그인 정보나 사용자 설정을 저장.
    • 주요 메서드 및 속성:
      • Session("변수명"): 세션에 변수를 저장하거나 불러옴.
      • Session.Abandon: 현재 세션을 종료.
    • 예시:
      asp
      코드 복사
      Session("username") = "홍길동" userSession = Session("username")
  5. Application 객체
    • 설명: 애플리케이션 전역에서 공유되는 데이터를 저장. 모든 사용자에게 동일하게 적용됨.
    • 주요 메서드 및 속성:
      • Application("변수명"): 애플리케이션 전역 변수 설정 및 접근.
      • Application.Lock / Application.Unlock: 동시 접근을 방지하기 위해 잠금/해제.
    • 예시:
      asp
      코드 복사
      Application.Lock Application("totalVisitors") = Application("totalVisitors") + 1 Application.Unlock
  6. Err 객체
    • 설명: 오류 발생 시 오류 번호, 설명 등을 제공하여 오류 처리를 지원.
    • 주요 속성 및 메서드:
      • Err.Number: 오류 번호.
      • Err.Description: 오류 설명.
      • Err.Clear: 오류 상태 초기화.
    • 예시:
      asp
      코드 복사
      On Error Resume Next Set obj = Server.CreateObject("NonExistentObject") If Err.Number <> 0 Then Response.Write "오류: " & Err.Description Err.Clear End If
  7. FileSystemObject
  • 설명: 서버 파일 시스템에 접근하여 파일 생성, 삭제, 읽기, 쓰기 등을 할 수 있게 해주는 객체입니다. 서버 측 파일 조작이 필요할 때 자주 사용됩니다.
  • 주요 메서드 및 속성:
    • CreateTextFile: 새로운 텍스트 파일 생성.
    • OpenTextFile: 파일을 읽기/쓰기 모드로 엽니다.
    • DeleteFile: 파일 삭제.
    • FileExists: 특정 경로에 파일이 존재하는지 확인.
    • FolderExists: 특정 폴더가 존재하는지 확인.
  • 사용 예시:
    asp
    코드 복사
    Set fso = Server.CreateObject("Scripting.FileSystemObject") Set file = fso.CreateTextFile("C:\example.txt", True) file.WriteLine("Hello, World!") file.Close

알아두면 좋은 추가 사항

  1. Global.asa 파일:
    • ASP 애플리케이션의 전역 설정을 정의하는 파일로, Application_OnStart, Application_OnEnd, Session_OnStart, Session_OnEnd와 같은 이벤트를 정의할 수 있습니다.
    • 주로 애플리케이션 시작 시 초기화 작업이나 세션 종료 시 처리할 작업을 설정할 때 사용됩니다.
  2. ASP의 트랜잭션 처리:
    • 트랜잭션을 필요로 하는 데이터베이스 작업에서 ObjectContext 객체를 통해 트랜잭션을 관리할 수 있습니다.
    • 주요 메서드:
      • SetComplete: 작업이 정상적으로 완료되었을 때 호출하여 트랜잭션을 커밋.
      • SetAbort: 오류 발생 시 트랜잭션을 롤백.
  3. 보안 고려 사항:
    • ASP에서는 사용자가 입력한 데이터에 대해 반드시 인코딩(HTML 및 URL)을 수행하여 보안에 취약한 입력값을 처리해야 합니다.
    • Server.HTMLEncode와 Server.URLEncode는 HTML 및 URL 인젝션 방지에 유용합니다.
  4. 상태 관리:
    • Session 객체와 Application 객체를 통해 상태를 유지하지만, 지나치게 많은 데이터를 저장할 경우 서버 성능에 영향을 미칠 수 있습니다.
    • 쿠키를 통한 상태 유지 역시 한 방법으로, 사용자 데이터를 쿠키에 저장하고 필요할 때마다 읽어 올 수 있습니다.