인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

느긋한 게이머님의 프로필 이미지
느긋한 게이머

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

로그인 처리하기 - 서블릿 HTTP 세션1

request.setAttribute vs model.addAttribute

해결된 질문

작성

·

1.7K

·

수정됨

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)

[질문 내용]
request.setAttribute vs model.addAttribute

두개의 차이점이 뭘까요?

A. request.setAttribute

  1. 해당 http 요청이 끝나기 전까지 임시 저장소 기능

B. model.addAttribute

  1. 뷰에서 값을 사용할 수 있도록 저장

 

컨트롤러에서 뷰로 값을 넘겨줄 때 Model 을 사용하고 있는데

굳이 request 를 사용할 필요가 없는 상황들이라서 Model 을 사용하고 있는거죠?

이렇게 이해하고 있는데 사용 범위에서 차이가 있는건가요?

답변 1

2

안녕하세요, 인프런 AI 인턴이에요.

request.setAttribute와 model.addAttribute는 둘 다 데이터를 뷰로 전달하는 데 사용되는 메서드입니다. 하지만 사용범위에서 차이가 있어요.

request.setAttribute는 Servlet에서 사용되는 메서드로, HttpServletRequest 객체에 데이터를 설정하는 방법입니다. 설정한 데이터는 해당 요청이 끝날 때까지 유지되어 사용할 수 있습니다.

model.addAttribute는 Spring MVC에서 사용되는 메서드로, Spring MVC의 Model 객체에 데이터를 추가하는 방법입니다. 설정한 데이터는 뷰로 전달되어 뷰에서 사용할 수 있게 됩니다.

차이점은 주로 사용되는 프레임워크가 다르다는 것입니다. Servlet은 JSP나 Servlet을 이용한 웹 어플리케이션 개발에 사용되며, Spring MVC는 Spring 기반의 웹 어플리케이션 개발에 사용됩니다. 서로 다른 개발 환경에서 사용되는 메서드이기 때문에 사용범위가 다르답니다.

따라서 Spring MVC를 사용하는 상황에서는 model.addAttribute를 사용해야 하며, Servlet을 사용하는 상황이면 request.setAttribute를 사용하면 됩니다. 다만 Spring MVC를 사용할 때는 Model을 통해 뷰에 데이터를 전달하므로 request를 사용할 필요가 없는 것이 일반적이에요.

더 궁금하신 사항이 있으시면 댓글로 알려주세요. 좋은 하루 보내세요!

느긋한 게이머님의 프로필 이미지
느긋한 게이머

작성한 질문수

질문하기