입문 ASP - ASP 객체 모델: Session 객체
ASP 객체 모델: Session 객체
ASP (Active Server Pages)에서 Session 객체는 웹 애플리케이션의 사용자 세션을 관리하는 중요한 도구입니다. 사용자가 웹 사이트에 방문할 때, 서버는 각 사용자에게 고유한 세션을 생성하여 그들의 상태 정보를 유지합니다. 이는 여러 페이지를 탐색하더라도 동일한 사용자의 데이터를 추적하고 관리할 수 있게 해줍니다.
Session 객체의 주요 기능
-
상태 유지:
- HTTP 프로토콜은 무상태(stateless) 프로토콜이기 때문에, 기본적으로 요청 간에 클라이언트의 상태를 기억하지 않습니다. Session 객체를 사용하면 특정 사용자에 대한 정보를 저장하여 다음 요청 시 사용할 수 있습니다.
-
데이터 저장:
- Session 객체는 키-값 쌍 형태로 데이터를 저장합니다. 예를 들어, 로그인한 사용자의 이름이나 장바구니 내용을 저장할 수 있습니다.
-
세션 종료 관리:
- 세션은 일정 시간 동안 활동이 없으면 자동으로 종료됩니다. 이를 통해 자원을 효율적으로 관리할 수 있습니다.
Session 객체 사용법
Session 객체를 사용하는 방법은 매우 간단합니다:
-
데이터 추가하기:
<% '사용자 이름을 세션에 저장 Session("UserName") = "홍길동" %>
-
데이터 읽기:
<% '세션에서 사용자 이름을 가져오기 Dim userName userName = Session("UserName") Response.Write("안녕하세요, " & userName) %>
-
데이터 삭제하기:
<% '세션에서 특정 데이터 삭제하기 Session.Remove("UserName") '모든 세션 데이터 삭제하기 Session.Abandon() %>
-
세션 타임아웃 설정하기:
- 기본적으로 ASP에서는 20분 후 세션이 만료됩니다.
- 이 시간을 조정하려면
global.asax
파일 내에서Session_OnStart
및Session_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 웹 애플리케이션 개발 시 필수적인 요소로써 사용자 경험을 개선하고 데이터를 효과적으로 관리하는 데 큰 역할을 합니다. 다양한 상황에서 적절히 활용함으로써 더 나은 웹 서비스를 제공할 수 있습니다!