입문 ASP - ASP 객체 모델: Session 객체

ASP 객체 모델: Session 객체

ASP (Active Server Pages)에서 Session 객체는 웹 애플리케이션의 사용자 세션을 관리하는 중요한 도구입니다. 사용자가 웹 사이트에 방문할 때, 서버는 각 사용자에게 고유한 세션을 생성하여 그들의 상태 정보를 유지합니다. 이는 여러 페이지를 탐색하더라도 동일한 사용자의 데이터를 추적하고 관리할 수 있게 해줍니다.

Session 객체의 주요 기능

  1. 상태 유지:

    • HTTP 프로토콜은 무상태(stateless) 프로토콜이기 때문에, 기본적으로 요청 간에 클라이언트의 상태를 기억하지 않습니다. Session 객체를 사용하면 특정 사용자에 대한 정보를 저장하여 다음 요청 시 사용할 수 있습니다.
  2. 데이터 저장:

    • Session 객체는 키-값 쌍 형태로 데이터를 저장합니다. 예를 들어, 로그인한 사용자의 이름이나 장바구니 내용을 저장할 수 있습니다.
  3. 세션 종료 관리:

    • 세션은 일정 시간 동안 활동이 없으면 자동으로 종료됩니다. 이를 통해 자원을 효율적으로 관리할 수 있습니다.

Session 객체 사용법

Session 객체를 사용하는 방법은 매우 간단합니다:

  1. 데이터 추가하기:

    <% 
        '사용자 이름을 세션에 저장
        Session("UserName") = "홍길동" 
    %>
    
  2. 데이터 읽기:

    <% 
        '세션에서 사용자 이름을 가져오기
        Dim userName
        userName = Session("UserName")
        
        Response.Write("안녕하세요, " & userName)
    %>
    
  3. 데이터 삭제하기:

    <% 
        '세션에서 특정 데이터 삭제하기
        Session.Remove("UserName") 
    
        '모든 세션 데이터 삭제하기
        Session.Abandon() 
     %>
    
  4. 세션 타임아웃 설정하기:

    • 기본적으로 ASP에서는 20분 후 세션이 만료됩니다.
    • 이 시간을 조정하려면 global.asax 파일 내에서 Session_OnStartSession_OnEnd 이벤트 핸들러를 구현하거나 IIS 설정을 통해 변경할 수 있습니다.

Practical Example: 쇼핑 카트 구현

쇼핑 웹사이트에서는 고객이 선택한 상품들을 임시로 보관해야 합니다. 이를 위해서도 Session 객체가 유용하게 활용될 수 있습니다.

<%
'상품 ID와 개수를 받아서 장바구니에 추가하는 함수 정의
Sub AddToCart(productId, quantity)
    If IsEmpty(Session("Cart")) Then
        Set cart = Server.CreateObject("Scripting.Dictionary")
        Set Session("Cart") = cart        
    Else
        Set cart = Session("Cart")
    End If
    
    If cart.Exists(productId) Then
        cart(productId) = cart(productId) + quantity ' 기존 개수 증가    
    Else  
        cart.Add productId, quantity ' 새로운 제품 추가    
    End If  
End Sub

'장바구니에 제품 추가 예시 호출   
AddToCart(101, 2)
AddToCart(102, 1)

'장바구니 내용 출력    
Response.Write("<h2>장바구니</h2>")
For Each key In Session("Cart").Keys()
     Response.Write(key & ": " & Session("Cart")(key) & "<br/>")
Next      
%>

위 예제에서는 사용자가 선택한 상품과 그 개수를 장바구니(Session)에 저장하고 출력하는 과정을 보여줍니다.

결론

Session 객체는 ASP 웹 애플리케이션 개발 시 필수적인 요소로써 사용자 경험을 개선하고 데이터를 효과적으로 관리하는 데 큰 역할을 합니다. 다양한 상황에서 적절히 활용함으로써 더 나은 웹 서비스를 제공할 수 있습니다!

Subscribe to shimdh.log

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe