addFlashAttribute: 세션 기반 일회성 데이터(Flash Scope)
상위 맥락
03. 리다이렉션 데이터 관리 < 02. 요청 파라미터 바인딩 < 02. Spring MVC2 핵심 기술과 설계 < MVC < Spring < Web
핵심 정리
addFlashAttribute는 리다이렉트 시 데이터를 URL에 노출하지 않고, 다음 요청에서 한 번만 사용할 수 있도록 전달하는 방식입니다. 자료에서는 이를 Flash Scope라고 설명하며, 생명주기가 request보다 길고 session보다 짧다고 정리합니다.
동작 흐름
- 컨트롤러가 RedirectAttributes에 addFlashAttribute로 데이터를 담습니다.
- 리다이렉트 직전 스프링이 데이터를 세션에 임시 저장합니다.
- 브라우저가 리다이렉트 대상 URL로 새 요청을 보냅니다.
- 스프링이 세션에서 데이터를 꺼내 새 Request로 옮깁니다.
- 세션에 임시 저장된 Flash 데이터는 즉시 삭제됩니다.
이 흐름 덕분에 객체 타입 데이터를 URL에 노출하지 않고도 다음 화면에서 한 번 사용할 수 있습니다.
적합한 사용 상황
- 저장 성공 메시지
- 삭제 완료 메시지
- 폼 제출 후 한 번만 보여줄 알림
- URL에 노출하고 싶지 않은 일회성 데이터
주의할 점
Flash Scope 데이터는 한 번 사용되면 사라집니다. 따라서 새로고침 후에도 유지되어야 하는 데이터에는 적합하지 않습니다. 자료에서는 외부 리소스로 리다이렉트하거나 스프링 컨트롤러 파이프라인을 제대로 거치지 않는 경우 Flash 데이터가 유실될 수 있다고 설명합니다.
한 문장 요약
addFlashAttribute는 리다이렉트 직후 한 번만 필요한 데이터를 세션에 임시 저장했다가 다음 요청에서 자동으로 꺼내고 삭제하는 일회성 데이터 전달 방식입니다.