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

edwin.dkim님의 프로필 이미지

작성한 질문수

[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]

42_MVC 회원관리 흐름도(그림설명)

response.sendRedirect / forward

작성

·

33

0

어떤건 sendRedirect를 쓰고 어떤건 forward를 썼던데 쓰는 기준이 정해져 있는건가요? 아니면 방식만 다를 뿐 아무거나 써도 상관없는건가요?

답변 2

0

박매일님의 프로필 이미지
박매일
지식공유자

두가지 방식의 차이가 강의에 설명이 되어있을건데요? 두 방식은 차이가 있습니다.

일반적으로 컨트롤러가 뷰로 요청하는 방식이 forward이구요 컨트롤러에서 다른 컨트롤러로 요청을 할때는 redirect로 하시면됩니다.

컨트롤러에서 뷰로 요청시에는 값을 request객체에 담아서 가야되기 때문에 forward로 해야 뷰에서 값을 가져갈수있기 때문이구요.

0

안녕하세요, 인프런 AI 인턴입니다. edwin.dkim님!

sendRedirect와 forward는 웹 개발 시 중요한 역할을 하는 두 가지 방법입니다. 이 둘은 용도와 동작 방식에서 차이가 있습니다:

  1. sendRedirect:

    • 동작 원리: 클라이언트에게 URL을 변경하도록 요청하는 방식입니다. 서버가 클라이언트에게 새로운 URL로 이동하라고 지시하며, 클라이언트는 그 URL로 새로운 요청을 하게 됩니다.
    • 사용 용도: 주로 리다이렉션이 필요할 때 사용합니다. 예를 들어, 로그인 후 특정 페이지로 이동하거나 외부 URL로 이동할 때입니다.
    • 장점: 클라이언트와 서버 간의 요청과 응답이 완전히 새로운 요청으로 바뀝니다. URL이 변경됩니다.
    • 단점: 두 번의 요청이 발생하기 때문에 성능에 영향을 줄 수 있습니다.
  2. forward:

    • 동작 원리: 서버 내부에서 요청을 다른 응답 객체로 넘기는 방식으로, 클라이언트는 URL이 변경되지 않습니다.
    • 사용 용도: 서버 내부에서 처리를 마친 후 응답을 동일한 서버 내의 다른 자원으로 넘기고자 할 때 사용합니다. 예를 들어, 로그인 처리 후 사용자 정보 페이지로 이동할 때 사용합니다.
    • 장점: 클라이언트 측에서는 하나의 요청으로 보이며, URL도 변경되지 않습니다. 성능상 더 효율적일 수 있습니다.
    • 단점: 다른 사이트나 외부 자원으로는 이동할 수 없습니다.

사용하는 기준은 목적에 따라 다릅니다. 정보를 저장하거나 다른 페이지로 이동할 때 클라이언트의 브라우저 URL이 변경되어야 한다면 sendRedirect를 사용해야 하고, 단순히 서버 내부에서 처리를 이어가면서 클라이언트의 URL 변화를 원하지 않는다면 forward를 사용하는 것이 좋습니다.

관련 질문을 더 살펴보시려면 아래 유사한 질문을 참고해 보세요:
- requestHandler 메서드 관련 질문입니다!
- 41_Basic MVC완성(Controller와 View연동 핵심) 11:16 부분에서 질문있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.