Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP 스코프(Scope)의 4가지 값 완벽 정리: page, request, session, application

JSP 스코프(scope)란 무엇인가?

JSP에서 scope(스코프) 속성은 액션(Action) 요소의 생명주기(lifecycle)를 정의하는 핵심 개념입니다. 대표적으로 <jsp:useBean> 같은 표준 액션 태그에서 객체가 얼마나 오래 유지되고 어느 범위까지 접근 가능한지를 결정합니다.

scope 속성은 id 속성과 밀접한 관계를 가집니다. id로 지정된 객체의 수명이 바로 scope 속성에 의해 결정되기 때문입니다. 즉, 어떤 스코프를 선택하느냐에 따라 해당 객체가 생성·유지·소멸되는 시점이 달라집니다.

JSP 스코프의 4가지 값

scope 속성에는 다음과 같은 네 가지 값을 사용할 수 있습니다.

1. page (페이지 스코프)

객체가 현재 JSP 페이지 내에서만 유효합니다. 페이지 실행이 끝나면 객체는 소멸하며, 다른 페이지에서는 접근할 수 없습니다. 가장 좁은 범위의 스코프입니다.

2. request (요청 스코프)

객체가 하나의 클라이언트 요청(request)을 처리하는 동안 유효합니다. forward 방식으로 페이지가 이동해도 같은 요청이므로 객체에 접근할 수 있으며, 응답이 완료되면 객체는 소멸합니다.

3. session (세션 스코프)

객체가 사용자 세션이 유지되는 동안 유효합니다. 로그인 정보처럼 사용자별로 유지해야 하는 데이터를 저장하기에 적합하며, 세션이 만료되거나 명시적으로 종료될 때 객체가 소멸합니다.

4. application (애플리케이션 스코프)

객체가 웹 애플리케이션 전체에서 공유되며, 서버가 종료되거나 애플리케이션이 재시작될 때까지 유지됩니다. 모든 사용자가 공통으로 사용하는 설정값이나 카운터 등을 저장할 때 활용됩니다.

스코프 범위 비교

스코프의 크기를 순서대로 나열하면 다음과 같습니다.

  • page < request < session < application

범위가 넓어질수록 객체의 생존 기간이 길어지고 메모리 점유도 커지므로, 용도에 맞는 적절한 스코프를 선택하는 것이 성능 최적화와 안정적인 애플리케이션 설계에 매우 중요합니다.