addFlashAttribute: 세션 기반 일회성 데이터(Flash Scope)

상위 맥락

03. 리다이렉션 데이터 관리 < 02. 요청 파라미터 바인딩 < 02. Spring MVC2 핵심 기술과 설계 < MVC < Spring < Web

핵심 정리

addFlashAttribute는 리다이렉트 시 데이터를 URL에 노출하지 않고, 다음 요청에서 한 번만 사용할 수 있도록 전달하는 방식입니다. 자료에서는 이를 Flash Scope라고 설명하며, 생명주기가 request보다 길고 session보다 짧다고 정리합니다.

동작 흐름

  1. 컨트롤러가 RedirectAttributes에 addFlashAttribute로 데이터를 담습니다.
  2. 리다이렉트 직전 스프링이 데이터를 세션에 임시 저장합니다.
  3. 브라우저가 리다이렉트 대상 URL로 새 요청을 보냅니다.
  4. 스프링이 세션에서 데이터를 꺼내 새 Request로 옮깁니다.
  5. 세션에 임시 저장된 Flash 데이터는 즉시 삭제됩니다.

이 흐름 덕분에 객체 타입 데이터를 URL에 노출하지 않고도 다음 화면에서 한 번 사용할 수 있습니다.

적합한 사용 상황

  • 저장 성공 메시지
  • 삭제 완료 메시지
  • 폼 제출 후 한 번만 보여줄 알림
  • URL에 노출하고 싶지 않은 일회성 데이터

주의할 점

Flash Scope 데이터는 한 번 사용되면 사라집니다. 따라서 새로고침 후에도 유지되어야 하는 데이터에는 적합하지 않습니다. 자료에서는 외부 리소스로 리다이렉트하거나 스프링 컨트롤러 파이프라인을 제대로 거치지 않는 경우 Flash 데이터가 유실될 수 있다고 설명합니다.

한 문장 요약

addFlashAttribute는 리다이렉트 직후 한 번만 필요한 데이터를 세션에 임시 저장했다가 다음 요청에서 자동으로 꺼내고 삭제하는 일회성 데이터 전달 방식입니다.