일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 백엔드부트캠프
- 유데미부트캠프
- 청년취업사관학교
- 부트캠프후기
- 포트폴리오
- SeSAC
- 백엔드
- gradle
- 스프링
- 취업부트캠프
- 개발자부트캠프
- IntelliJ
- 자바
- MVC패턴
- 개발자취업
- 유데미코리아
- SpringBoot
- 꿀팁
- 취업특강
- Spring Framework
- 새싹
- 용산캠
- Frontend
- IDE
- 유데미
- springmvc
- redirectAttributes
- Flash
- Backend
- 스타터스부트캠프
- Today
- Total
훌륭한 개발자 동료로 성장하길 꿈꾸며
[SpringMVC] Model vs RedirectAttributes 본문
[SpringMVC] Model vs RedirectAttributes
CHOIALTH 2023. 4. 24. 03:57
SpringMVC에서 자주 등장하는 `Model`과 `RedirectAttributes`에 대해 정리해보고자 한다.
*MVC 패턴 : Model - View - Controller
**SpringMVC : Spring Framework의 모듈의 일종으로, @Controller, @RequestParam 등 다양한 어노테이션을 제공함
두 객체 모두 데이터를 저장하고 컨트롤러에서 뷰로 전달하는 공통된 기능을 제공하지만, 사용처와 동작 방식에 차이가 있다.
Model
`Model` 객체는 Controller에서 View로 데이터를 전달하는 데 사용되는 객체로, 주로 Controller 메서드에서 생성되고 반환되는 View에 데이터를 전달하는 데 사용된다. `Model` 객체를 사용하여 View에서 사용할 수 있는 데이터를 추가하고, View에서는 이 데이터를 사용하여 렌더링해준다.
적절한 사용처 :
- Controller에서 View로 데이터를 전달해야 할 때
- View에서 사용할 데이터를 설정할 때
RedirectAttributes
`RedirectAttributes` 객체는 리다이렉트하는 동안 데이터를 전달하는 데 사용되는 객체이다. 일반적으로 리다이렉트 요청이 발생할 때 사용되며, 데이터를 다른 Controller 메서드로 전달하는 데 사용된다. 이 객체를 사용하면, 리다이렉트를 실행하는 동안 데이터를 다른 요청 범위로 전달할 수 있다.
`RedirectAttributes`객체가 제공하는 `addFlashAttribute` 메서드는 리다이렉트 시 일회성 데이터를 전달하는 데 사용된다. 이 메서드를 사용하여 속성을 추가하면, 해당 속성은 Flash 스코프에 저장되어 리다이렉트 후 바로 다음 요청에서만 사용할 수 있다. 데이터는 일회성이며 다음 요청 이후에는 사용할 수 없고, 단일 리다이렉트 후에 데이터가 소멸한다.
적절한 사용처 :
- 리다이렉트하는 동안 데이터를 전달해야 할 때
- 일회성 데이터를 다른 컨트롤러 메서드로 전달할 때
Flash 스코프(scope)란, Controller에서 리다이렉트 시 일회성 데이터를 전달하는 목적으로 사용되는 특별한 스코프이다. Flash 스코프에 저장된 데이터는 일시적으로 저장되어 리다이렉트 후 바로 다음 요청에 사용되고, 그 이후에는 자동으로 삭제된다.
이러한 특징으로 사용자가 뒤로 가기나 새로 고침을 하더라도 이전의 데이터가 노출되지 않도록 보장한다.
***스코프 : 프로그래밍에서 변수나 객체의 생명주기(어디서 생성되고, 언제 소멸되는지)·접근 범위를 정의하는 것.