[스프링] 세션 및 쿠키 처리

웹 애플리케이션을 개발할 때 중요한 부분 중 하나는 세션과 쿠키를 효과적으로 관리하는 것입니다. 세션은 클라이언트와 서버 간에 유지되는 정보를 저장하고 관리하는 데 사용되며, 쿠키는 클라이언트 측에 저장되는 작은 데이터 파일입니다.

세션 처리

스프링은 세션을 처리하기 위해 HttpSession 인터페이스를 제공합니다. 이를 사용하여 세션에 데이터를 저장하고 검색할 수 있습니다. 다음은 세션을 활용한 간단한 예제입니다.

@Controller
public class SessionController {
    @RequestMapping("/saveSession")
    public String saveSession(HttpServletRequest request) {
        HttpSession session = request.getSession();
        session.setAttribute("username", "exampleUser");
        return "sessionSaved";
    }

    @RequestMapping("/getSession")
    public String getSession(HttpServletRequest request) {
        HttpSession session = request.getSession();
        String username = (String) session.getAttribute("username");
        return "sessionInfo";
    }
}

위 예제에서 saveSession 메서드는 세션에 사용자 이름을 저장하고, getSession 메서드는 세션에서 사용자 이름을 검색합니다.

쿠키 처리

스프링은 쿠키를 처리하기 위해 Cookie 클래스를 제공합니다. 이를 사용하여 쿠키를 생성하고 읽을 수 있습니다. 다음은 쿠키를 생성하고 읽는 간단한 예제입니다.

@Controller
public class CookieController {
    @RequestMapping("/saveCookie")
    public String saveCookie(HttpServletResponse response) {
        Cookie cookie = new Cookie("username", "exampleUser");
        response.addCookie(cookie);
        return "cookieSaved";
    }

    @RequestMapping("/readCookie")
    public String readCookie(HttpServletRequest request) {
        Cookie[] cookies = request.getCookies();
        if (cookies != null) {
            for (Cookie cookie : cookies) {
                if (cookie.getName().equals("username")) {
                    String username = cookie.getValue();
                    return "cookieInfo";
                }
            }
        }
        return "cookieNotFound";
    }
}

위 예제에서 saveCookie 메서드는 클라이언트에 사용자 이름 쿠키를 저장하고, readCookie 메서드는 쿠키를 읽어 사용자 이름을 가져옵니다.

세션과 쿠키는 웹 애플리케이션에서 중요한 역할을 하며, 스프링을 사용하여 세션과 쿠키를 효과적으로 처리할 수 있습니다.

위의 예제들은 스프링 MVC를 기반으로 한 예제이며, 스프링 부트 등의 다른 스프링 프레임워크에서도 유사한 방식으로 세션과 쿠키를 처리할 수 있습니다.

참고 자료